Hi,
ich habe als Facharbeit ein Foucaultsches Pendel gebaut und es mittels
eines Elektromagneten in der Mitte entdämpft, der es immer wieder
anstößt.
Da sich das Pendel nur sehr langsam dreht, etwa 1 mal alle 32,2 stunden
(http://de.wikipedia.org/wiki/Foucaultsches_Pendel), wollte ich eine art
Fortschrittsanzeige einbauen. Sie sollte aus 36 Sensoren und 36 LEDs
bestehen die beim betätigen des Sensors immer aus- bzw. eingeschaltet
werden. Sie sollen kreisförmig, mit jeweils 10° Abstand, auf dem
Untergrund angeordnet werden. Als Sensoren wollte ich Reed-Kontakte
verwenden da durch den "Antrieb" schon baubedingt ein Dauermagnet im
Pendelkörper eingebaut ist.
Leider kenne ich mich noch nicht so sonderlich gut mit Mikrocontrollern
aus und arbeite mich gerade erst ein, aber ein Problem geht mir einfach
nicht aus dem Kopf: Ich finde einfach keinen Controller der 72 Ein- und
Ausgänge hat. Soweit ich gehört habe lassen sich auch mehrere Controller
miteinander verbinden, da ich jedoch da keinen Durchblick habe wäre es
nett wenn ihr mir dazu ein paar Tipps geben könntet.
Ach ja ein anderes Problem wird wohl auch die Rechenleistung sein da
alle Sensoren entprellt werden müssen und ich dies gern Softwaremäßig
erledigen würde.
Vielen Dank schonmal im Vorraus!!
Phil
Phil schrieb:> Leider kenne ich mich noch nicht so sonderlich gut mit Mikrocontrollern> aus und arbeite mich gerade erst ein, aber ein Problem geht mir einfach> nicht aus dem Kopf: Ich finde einfach keinen Controller der 72 Ein- und> Ausgänge hat.
Das ist auch Overkill.
Mit Schieberegistern kann man sich beliebig viele Eingänge (na ja)
zurechtzimmern.
http://www.mikrocontroller.net/articles/AVR-Tutorial:_Schieberegister> Soweit ich gehört habe lassen sich auch mehrere Controller> miteinander verbinden, da ich jedoch da keinen Durchblick habe wäre es> nett wenn ihr mir dazu ein paar Tipps geben könntet.
Das willst du mit Sicherheit noch nicht.
Probleme werden meistens nicht einfacher, je mehr Prozessoren man auf
das Problem ansetzt.
> Ach ja ein anderes Problem wird wohl auch die Rechenleistung sein
Ganz sicher nicht.
Dein µC wird sich zu Tode langweilen.
Wie erwähnt Schiebe Register oder mehrere µCs
Frage ist wie weit du gehen willst ;-)
Für den Anfänger sehen mehrere µCs am anfang einfacher aus- aber Schiebe
register helfen dir mehr
Ok also erst ma vielen Dank für die schnelle antwort (hätt gedacht ich
muss bis morgen warten :)). Also wärs deiner Meinung nach am besten
möglichst viele Eingänge an eine Controller zu zimmern oder? Was mir
noch gekommen ist es müsste egtl. immer nur ein Eingang überprüft werden
nämlich einfach der nächste der an der Reihe wäre. Denkst du ich könnte
das schaffen (hab Zeit bis Dezember) oder ist es einfach so gut wie
unmöglich?
Phil
Hmm, bei 10° Genauigkeit bei einem Pendel brauch ich nur 18 Sensoren
(die jeweils Gegenüberliegenden sind redundant zueinander, du brauchst
also nur einen Halbkreis)
"Entprellt" im herkömmlichen Sinne müssen die auch nicht werden. Der
n*10Grad Zustand wird einfach mit dem ertsen Schließen desentsprechenden
Reeds aktiv. Weitere Impulse (sowohl Preller als auch einfach durch die
Pendelbewegung ausgelöste Wiederholungen) werden einfach ignoriert. Erst
der erste Kontakt des nächsten Sensors löscht diesen Zustand und setzt
den Nächsten.
D.h. Prell-Impulse haben sowieso keine Wirkung.
Ah vielen Dank für den Tipp mit den 18 Sensoren :) wieso bin ich da nich
draufgekommen xD. Naja dann könnte ich mir egtl ein Board mit einem
Atmega 128 besorgen. Der hat ja soweit ich weiß 54 Anschlüsse die dann
ja reichen würden. Das müsste dann die einfachste Möglichkeit sein denk
ich mal (wenn auch nich Preisgünstigste aber das mal beiseite).
Mfg Phil
Die übliche billiglösung wäre eine "Tastenmatrix" für die Reed-Schalter
und eine LED Matrix für die Anzeige.
Alles andere wäre eigenlich Verschwendung.
Viele LEDs, von denen jeweils nur eine Leuchten soll kann man gut als
Matrix oder mit Charliepixeling anstuern. Da braucht man für 36 LEDs nur
12 bzw. 5 IO-Ports. Etwas ähnliches ist eventuell auch für die Sensoren
möglich. Die Sensoren werden dann nacheinander abgefrage, schließlich
geht das ganze ja realtiv langsam.
Reed Relas könnten ein Problem werden, wegen der Rückwirkung auf das
Pendel. Weniger Rückwirkung hätte man mit Hall Sensoren oder einfach
Induktionsspulen (ohne Kern). Je nach Art des Sensors wäre es auch
möglich mit weniger Sensoren auszukommen, weil man Zwischenwerte, wo 2
Sensoren ansprechen auch verwenden kann. Eine andere Alternative wären
auch Reflexlichtschranken wie CNY70.
Naja, Herrn Buchegger nicht vergessen.
Mit seinem Vorschlag brauchst du 2 Pins für jedes beliebige
Ausgabemuster.
Schieberegister in Reihe. Ein Signalausgang, einen Schiebetakt.
Gleiches Prinzip lässt sich dann auch nochmal bei den Sensoren anwenden.
du musst zu jedem Zeitpunkt immer nur einen beobachten, den Nächsten. Du
kannst also in dem du einfach nur einen dieser Reeds "befeuerst" (Also
je den nächsten den du erwartest, nur dran denken keine Kurzschlüsse zu
verursachen) den Fortschritt auswerten. Sprich auch hier reicht ein die
Ansteuerung eines Schieberegisters. Also nochmal 2 Ausgänge und einen
(von allen Reeds angesteuerten) Eingang.
Wenn du davon ausgehst, dass du die Anzeige immer an hast und immer nur
eine An ist, dann kannst du das Anzeige-Schieberegister auch zur
Versorgung des nächsten Reeds hernehmen. Brauchst dann ganze 2
Ausgangspins und einen Eingang für alles. Das dürfte deine uC wahl
vereinfachen :-P
Maxx schrieb:> Brauchst dann ganze 2> Ausgangspins und einen Eingang für alles.
Dafür brauchst du aber auch Schieberegister und eine Menge Leitungen.
Immer nur einen Reed-Schalter zu beobachten ist unsicher... was
passiert, wenn jemand das Pendel von Hand anstösst ?
Ohforf Sake schrieb:> Maxx schrieb:>> Brauchst dann ganze 2>> Ausgangspins und einen Eingang für alles.>> Dafür brauchst du aber auch Schieberegister und eine Menge Leitungen.
Eine Menge Leitungen brauchst du sowieso. Egal wie du's machst. Da hab
ich lieber rund um den 'Pendelkreis' regelmässig eine kleine Platine
sitzen, die alle miteinander und mit dem µC mit einer 5-Draht-leitung
verbunden sind.
> Immer nur einen Reed-Schalter zu beobachten ist unsicher... was> passiert, wenn jemand das Pendel von Hand anstösst ?
OK. Überzeugt.
Dann eben 2 Schieberegister pro Platine.
Eines für die Relais, eines für die LED.
Und statt der 5-Draht Leitung dann eben eine mit 7
Eine Matrix würde ich nicht bauen. Das würde ja nur funktionieren, wenn
immer nur ein Kontakt schließt. Es ist aber nicht sichergestellt, dass
der Magnet in einer Zwischenposition am Kreis nicht zwei Schalter
betätigt. Eine gewisse Überlappung der Schaltbereiche ist eventuell
sogar sinnvoll.
So ein großer Aufwand ist das mit den Schieberegistern jetzt nicht.
Vielleicht kann man auch einfach ein Banking für die Ports bauen.
Dabei werden über Buffer jeweils 8 Schalter an einen 8-bit-Port des
Mikrocontrollers geschaltet.
Wenn es 18 Eingänge sein sollen, reichen 3 Buffer aus. Über drei weitere
Portpins selektiert man einen der Buffer, der die jeweiligen 8 Eingänge
auf den Leseport durchschaltet.
Grüße,
Peter
Karl heinz Buchegger schrieb:> Eine Menge Leitungen brauchst du sowieso. Egal wie du's machst. Da hab> ich lieber rund um den 'Pendelkreis' regelmässig eine kleine Platine> sitzen, die alle miteinander und mit dem µC mit einer 5-Draht-leitung> verbunden sind.
Hast du schon mal ausprobiert, wie lang die Leitungen sein dürfen ?
Wenn ich dich richtig verstehe, kommen die Schieberegister in die Nähe
der Reed-Schalter und der Controller wird einige Meter entfernt sein.
Ich meine Signale mit TTL-Pegel (oder so) sind ziemlich störempfindlich.
Erst mal Entschuldigung für Doppelpost. Soweit ich das mit den
Schiberegistern mitbekommen habe Schieben diese die Signale einfach
weiter und diese werden dann der Reihe nach vom Controller ausgewertet.
Entsteht dabei nich das Problem, dass diese genau zum "flaschen"
Zeitpunkt weiter geschoben werden wenn das Pendel sich schon wieder
auserhalb des Einflussbereiches des Kontaktes befindet? oder ist die
Abrufrate so hoch, dass dies keine Rolle spielt?
Phil
Die Schalter werden mit einer höllischen Geschwindigkeit abgefragt.
Wenn du zum beispiel einen aktuellen PIC16 Controller (20Mhz) benutzt,
hast du immerhin 5 Millionen Befehle pro Sekunde.
Billige Atmel AVRs sind bei gleicher Taktfrequenz sogar 4 mal so
schnell.
Hier ein guter Artikel über AVRs und Schieberegister :
http://www.mikrocontroller.net/articles/AVR-Tutorial:_Schieberegister
Ohforf Sake schrieb:> Hast du schon mal ausprobiert, wie lang die Leitungen sein dürfen ?
Jep.
Ich hatte so um die 50 cm zwischen den Platinen und von den Platinen 30
bis 40cm zu den jeweiligen LED.
Gesamtlänge des Strangs mit 8 Stück 595 so um die 2 bis 2 1/2 Meter.
Die Schieberegister mit Volldampf angesteuert, damit ich jede LED
einzeln mit Software PWM dimmen kann.
Phil schrieb:> Entsteht dabei nich das Problem, dass diese genau zum "flaschen"> Zeitpunkt weiter geschoben werden wenn das Pendel sich schon wieder> auserhalb des Einflussbereiches des Kontaktes befindet? oder ist die> Abrufrate so hoch, dass dies keine Rolle spielt?
Du unterschätzt massiv die Geschwindigkeit der Teile.
Dein µC kann die Eingangsschieberegister so schnell abfragen, dass sich
zwischen 2 Abfragen das Pendel um keinen ganzen Millimeter bewegen kann.
Wahrscheinlich noch nicht einmal einen Zehntelmillimeter.
Peter Diener schrieb:> Eine Matrix würde ich nicht bauen. Das würde ja nur funktionieren, wenn> immer nur ein Kontakt schließt. Es ist aber nicht sichergestellt, dass> der Magnet in einer Zwischenposition am Kreis nicht zwei Schalter> betätigt. Eine gewisse Überlappung der Schaltbereiche ist eventuell> sogar sinnvoll.
ZB um die Anzahl der Sensoren abermals zu halbieren:
Ordnet man die Sensoren so an, daß bei entsprechender Position zwei oder
ein Sensor ansprechen, kommt man mit der Hälfte+1 aus.
1
-> Winkel
2
222 444 666 8...
3
1 333 555 777...
Der µC empfängt nacheinander 1+2,2,2+3,3,3+4,4,4+5,5,...
Problem wird sein, die Sensoren so zu platzieren, daß sich die
Einzugsbereiche entsprechend überlappen.
Eine weitere Reduzierung der Eingänge auf ganze 2 bringt eine
Gray-Codierung der Sensoren:
Alle geraden bzw. alle ungeraden Reed-Relais werden parallel geschaltet,
was einem ODER entspricht. Die Auswertung funktioniert dann genau wie
bei einem Drehgeber. Der Nachteil dabei ist, daß man die absolute
Position nicht kennt bzw. erst einmal kennen muß, indem das Pendel immer
an der gleichen Winkelposition gestartet wird.
Johann L. schrieb:> Ordnet man die Sensoren so an, daß bei entsprechender Position zwei oder> ein Sensor ansprechen, kommt man mit der Hälfte+1 aus.
äh... das geht schon mit rund 1/3, also
1
-> Winkel
2
A222 444 666 888 AA...
3
11 333 555 777 9991...
Das wären 10 Sensoren, die 18 unterschiedliche Positionen liefern. A
überdeckt sich mit 1 weil sie fast diametral gegenüber liegen.
Wäre es jetzt overkill hier PCF8574 (oder die 16-Bit SMD-Variante
PCF8575) vorzuschlagen? Sind I2C Expander und können aber auch einen
Interrupt auslösen bei Änderung.
Meine Idee: 3 PCF8574 in "Input mode" schalten, sprich die Ports auf H
setzen. Über einen Vorwiderstand gegen +Vdd werden alle LED (mit der
Kathode zum Port) versorgt, da immer nur eine leuchtet. Die Ports des
I2C werden gleichzeitig über die Reed-Kontakte (mit X markiert) gegen
masse geschaltet. Somit passiert folgendes:
Im Einschaltzustand, wenn alle Ports auf H liegen, sind die LED aus.
Wird nun ein Port durch den Reed auf 0 gezogen, löst der Chip einen
Interrupt aus. Die Bausteine werden eingelesen und der entsprechende
Port auf "L" gezogen und die anderen auf H. Damit löst dieser 1) keinen
weiteren Interrupt aus und die LED leuchtet. Den aktiven Port muß man
sich merken
Wenn das Pendel nun einen anderen Reed-Kontakt aktiviert und einen INT
auslöst, dann werden alle Ports bis auf den neuen(!) auf H gesetzt und
das Spiel beginnt von neuem.
Alternativ könnte man auch die letzten 2 aktivierten Ports auf L
lassen,als Beispiel:
Reed 0 (an IO 0) wird aktiviert -> LED 0 leuchtet, alle anderen aus.
Reed 1 wird aktiviert -> LED 1 leuchtet zusätzlich.
Reed 2 wird aktiviert -> LED 2 leuchtet, LED 0 geht aus.
Reed 3 wird aktiviert -> LED 3 leuchtet, LED 1 geht aus.
usw.
damit würde man auch die überschneidungen in den Griff bekommen.
Widerstände sind zwar nicht so teuer, aber man könnte jeweils alle LED
an den ungeraden IO-Ports über einen Widerstand versorgen, und über
einen zweiten die anderen LED (es würde ja - eigentlich - nur aus jedem
Zweig eine LED leuchten).
Ich hoffe da hat sich kein Denkfehler eingeschlichen :)
Gruß Torsten
Wenn immer nur die LED leuchten soll über die der Pendel
schwingt braucht man keinen µC.
Jede LED kriegt eine kleine Nachlaufelektronik mit Reedschalter.
Die Nachlaufzeit natürlich länger als die Schwingungsdauer.
Beispiel:
http://www.ferromel.de/tronic_1879.htm
(Schaltung 4)
Verdrahtung ist dann nur Versorgung.
Aber warum einfach wenn es auch kompliziert geht ;)
avr
Die LEDs sollen doch sicher eine ganze Weile an bleiben, um so etwas wie
die Sandspur im Wikipedia-Beitrag zu emulieren, oder?
Da würde ich CD4093 mit hochohmigen RC GLieder im Eingang und eben den
Reed austatten und somit Leuchtzeitpunkt und -dauer und die Nachlaufzeit
jeder einzelnen LED mit je einem Gatter lösen.
Ja genau es sollte so eine Art "Spur" ergeben. Ich dachte mir dass
jeweils alle LEDs aktiviert und dann im 2. Umlauf nach und nach wieder
deaktiviert werden und dann im 3. wieder angeschaltet usw. Natürlich
sind andere Möglichkeiten auch willkommen es ist halt nur wichtig in
etwa den Zeitverlauf zu erkenn dass auch Leute die nicht unbedingt ein
paar Stunden daneben warten wollen erkennen können, dass sich das Pendel
bewegt.
Mfg phil
Darauf wollte ich hinaus...
Also völlig neuer Ansatz und ist doch ein wenig mehr Logik drinnen, als
nur mal eben die Letzte, vorletzte, und übernächste LED zu steuern, sach
ich jetzt mal so ;)
Läuft irgentwie auf Multiplexing hinaus mit Eingangsüberwachung in den
Leuchtpausen der LED.
habe ich leider iM keine Zeit, mir etwas dazu auszudenken, schade...
Gruß
Axelr.
Hallo,
nur mal so als Gedanke am Rande ...
Der Fragesteller ist neu im Gebiet, die Aufgabe aber (leicht) machbar.
Er sollte lieber was mit viel statischen Signalen machen, und wenig
dynamisch.
Also finde ich einen Prozessor mit vielen IO wesentlich besser für ihn
als Multiplexer, Matritzen oder sonstwas. Dynamisches Debugging mit
einfachen Meßmitteln ist nicht immer einfach, und der Frust kann dann
ganz schön wachsen.
Ciao, Günter
Alles ist für einen Neuling besser als eine Unzahl an Controllern nur
aus dem einen Grund miteinander verbinden zu wollen, um auf die
benötigte Anzahl an Pins zu kommen.
Es gibt viele Alternativen, wie man auch mit wenig vorhandenen
Controller-Pins diese Menge an I/O Leitungen bekommen kann. Matrix ist
sicherlich anspruchsvoller, Schieberegister sind eigentlich ziemlich
banal. Aber egal wofür man sich entscheidet: Die Lösung, mehrere
Controller zu benutzen wäre meine absolut letzte Wahl.
Hmm, soweit ich das sehe sind für die Position nur ganze 2 Eingänge plus
evtl. noch einen dritten für eine Nullposition nötig, Schieberegister
werden keine gebraucht.
Warum? Ganz einfach: das Pendel dreht sich nur in eine bestimmte (vorher
bekannte) Richtung weiter, und das auch noch mit grössenordnungsmässig
bekannter Winkelgeschwindigkeit. Alle Sensoren (Schliesserkontakte in
irgendeiner Form) an gerader Position werden parallel geschaltet an den
einen Pin gehängt, alle ungeraden Positionen auch wieder parallel an den
anderen.
Nehmen wir an, die aktuelle (und bekannte) Position des Pendels ist
gerade auf einem "geraden" Sensor n. Dann kann als nächstes nur der
Sensor n+1 (ungerade) auslösen, sobald dies geschieht wird im Controller
um eine Position weitergeschaltet. Anschliessend ist dann wieder ein
Sensor an gerader Position an der Reihe.
Jetzt ist es denkbar, dass das Pendel, wenn es sich genau auf der Grenze
von zwei Sensorbereichen befindet, mal den einen und mal den anderen
auslöst. Hier kommt die bekannte Drehgeschwindigkeit ins Spiel, es muss
einfach z.B. via Timer verhindert werden, dass viel zu schnell schon
wieder weitergeschaltet werden kann. "Entprellung" ist damit dann im
Prinzip auch gleich erledigt.
Selbst mit Hallsensoren, um auch Zwischenpositionen erkennen zu können,
lässt sich das Prinzip anwenden, allerdings könnte es hier dann evtl.
Probleme wegen den vielen parallel geschalteten Hallsensoren geben.
Auch noch zu bedenken: es muss (bzw. sollte!) nur der halbe Kreis mit
Sensoren ausgestattet werden. Das Pendel schlägt in beide Richtungen
gleich aus, deshalb ist aus Sensorsicht bereits nach 180 Grad Drehung
wieder der gleiche Zustand erreicht, nicht erst nach 360 Grad (zeitlich
nach 16,1 Stunden, nicht nach 32,2).
Für die Anzeige mit LEDs kann man dann Schieberegister, Matrixschaltung
mit Multiplexing, etc. benutzen, um die Zahl der Controllerpins zu
reduzieren.
Andreas
Man muß ja nicht so extrem mit Pins sparen. Eine Matrixschaltung für die
LEDs ist auch für einen Anfänger noch realtiv einfach. Für tests kann
man das ganze einfach extrem langsam laufen lassen, dann ist auch ein
Test an einem Dynamischen System nicht so schwer.
Wenn man die Matrix fast entartet macht, z.B. als 18 x 2, hat man auch
auch keine Problem alle LEDs an zu haben. Man kann dann die 18 Leitungen
zusätzlich zur Steuerung des LEDs auch zum Abfragen der Sensoren nutzen.
Wenn man die Sensoren passend auf die Gruppen aufteilt (sofern man mehr
als 18 Sensoren braucht) , hat man auch kein Problem, wenn 2 benachbarte
Sensoren gleichzeitig ansprechen.
Man kommt dann auf 21 oder 22 IO Leitung, ein Bereich in dem sich gut
lötbare µCs finden lassen.
Warum nicht Charlieplexing verwenden? Wurde weiter oben schon genannt.
Geht auch mit Schaltern. Es reichen 5 Eingänge für max. 20 Schalter und
5 Ausgänge für max. 20 LED.
Artikel gibt es hier an Bord oder auf Hoher See:
http://en.wikipedia.org/wiki/Charlieplexing
Zur Positionsbestimmung würde ich mir überlegen, zwei Spulen im Zentrum
mit 90-Grad-Versatz einzubauen, also eine Achse z.B. in
Nord/Süd-Ausrichtung, die andere Ost/West. Der Verlauf der induzierten
Spannung eines Magneten (ist der nicht eh schon vorhanden?) im Pendel
ergibt die Pendelrichtung.
Mir auch.
Dazu müsste Phil (erster Beitrag, erster Satz) näheres sagen.
Da stellt sich mir gleich die Frage ob das Ganze nicht auch mit z.B. 3
oder mehr Lichtschranken im Pendelbereich machbar ist. Wenn ich die
Lichtschranken als gleichseitiges Dreieck innerhalb des Pendelbereichs
anordne und die Zeit zwischen dem Hin- und Rücklauf des Pendels (einer
Seite) messe sollte sich das doch auch berechnen lassen oder?
Hmm interessante Fragestellung.
Ich denke aber, dass sich daraus die aktuelle Schwingungsebene nicht
eindeutig errechnen lässt.
Begründung: Siehe Zeichnung.
die beiden grün eingezeichneten Wege sind gleich lang und du misst daher
identische Zeiten.
Aber mit 2 gegeneinander verdrehten Dreiecksanordnungen könnte es gehen.
Das Charlieplexing ist gut, wenn man nur eine oder wenige LEDs
gleichzeitig Leuchten lassen will, denn es brennt zu jeder Zeit nur eine
LED. Wenn mehr als etwa 5 LEDs gleichzeitig hell sein sollen geht,
reicht dann oft der Strom der IO Ports nicht mehr aus, und externe
Treiber sind kaum praktikabel, weil man ja nicht nur H/L sondern auch
einen Off Zustand braucht.
Das Magnetfeld wird schon am Pendel nach unten zeige. Schon deshalb,
damit von dem magenten kein Drehmement auf das Pendel wirkt und den
Effekt verfälschen könnte. Die Methode mit der Spule in der Mitte könnte
gehen, allerdings hat man im Zentrum auch die Spule für den Antrieb.
Solange der Antrieb arbeitet wird man vermutlich zu viel Störungen
bekommen.
Wenn man Lichtschranken nehmen will, sollten Refelxlichschranken von
unten einfacher sein. Mit der Auswertung der Zeiten und einer Menge
Mathematik könnte man wohl auch Zwischenwerte herausbekommen.
>Elektromagneten in der Mitte entdämpft, der es immer wieder anstößt.
Ich denke das er durch diese Anordnung den Zeitpunkt des Nullpunktes
genau bestimmen kann. Wenn man den in die Rechnung einbezieht und die
kürzeste Zeit bis zur ersten Lichtschranke auswertet weiß man auch in
welchen Quadranten das Pendel ist.
Interssantes Thema :)
Karl heinz Buchegger schrieb:> Hmm interessante Fragestellung.> Ich denke aber, dass sich daraus die aktuelle Schwingungsebene nicht> eindeutig errechnen lässt.>> Begründung: Siehe Zeichnung.> die beiden grün eingezeichneten Wege sind gleich lang und du misst daher> identische Zeiten.>> Aber mit 2 gegeneinander verdrehten Dreiecksanordnungen könnte es gehen.
hmmm, sollte gehen, wenn man nicht die Zeitdifferenzen hernimmt sondern
den durch das Pendel erzeugten Zeitintervelle misst. Dann reichen sogar
2 Lichtschranken, die den Halbkreis überdecken.
Von der AUswertung her wird das allerdings sportlicher als mit
Reed-Relais :-)
Hmm, wenn wir schon bei gänzlich exotischen Ansätzen sind, hätte ich
auch noch einen ;-)
Im Pendel einen Ultraschallsender unterbringen, und mit zwei um 90%
versetzten Empfängern die Dopplerverschiebung messen. Die Richtung
ergibt sich aus relativer Amplitude und Phasenlage der beiden Signale
nach Frequenz-Demodulation.
Andreas
Ich hab auch noch einen exotischen Ansatz:
Man baue einen digitalen Kompass in die Mitte des Kreises. Das Pendel
hat einen senkrecht stehenden Magnet. Sobald der Magnet außerhalb des
Zentrums ist, jedoch noch nahe daran, zeigt der Kompass die Richtung des
Pendels an. Damit man das auch gut messen kann, muss man zum Zeitpunkt
der Messung die Antriebsfeldspulen kurz abschalten.
Grüße,
Peter
Hi,
ja genau der Magnet im Pendel ist ein Stabmagnet und zeigt nach unten.
Anders wäre es auch schwer zu realisieren und bei diesem Pendel sollten
die Störfaktoren möglichst klein gehalten werden. Vielen Dank schonmal
für eure Ideen. Interessant finde ich auch die letzte mit dem Kompass^^
Mfg phil
Und warum nicht einfach für jede LED ein SR-Flip-Flop? Die Lösung kommt
ohne Mikrocontroller aus und ist um längen einfacher. Der Reed-Kontakt
kommt an das S und das R wird von einem Taster fest verdrahtet.
mfg, Stefan.
Mir ist auch noch eine Messvariante eingefallen:
Da diese Pendel meist einige kg haben, könnte man das Pendel an einem
Biegestab aufhängen und die Kräfte mittels DMS in 2 Achsen messen.
Daraus sollte man relativ einfach die Pendelebene berechnen können. Der
Analogteil ist allerdings etwas aufwendig (wobei es davon abhängt, wie
viel man selbst bauen möchte).
ich finde die Idee ohne µC nicht schlecht. Sie ist sehr gut erweiterbar
auf eine beliebige genauigkeit.
Ich würde es mit einfachen Flip-Flops machen. Der Reed kontakt setzt den
Ausgang und resetet alle anderen FF. Wenn das setzen Vorrang hat dann
bleibt dann immer eine LED an.
man bräuchte dafür nur eine kleine Platine mit Reed, FF, LED und
Widerstand, eventuell noch ein Tranistor für die LED. Die Platinen
müssten nur mit 3 Leitungen verbunden sein( Masse, Spannung, Reset ).
Oder überseh ich was?
Hallo!
Ich schließe mich der Meinung von Ulrich an: Reed- Kontakte sind sehr
problematisch. Hatte mal ein "normales" Pendel mit elektromagnetischem
Antrieb gebaut. Zur Erkennung des Nulldurchganges kam ein
Schlitzinitiator zum Einsatz und das Pendel funktionierte sehr gut.
Dann hatte ich probeweise einen kleinen Magneten ans Pendel gebaut und
mit einem Reedkontakt den Nulldurchgang gemessen. Die Ausschwingzeit des
unangetriebenen Pendels hatte sich dadurch halbiert, auch der
Antriebsstrom bei laufender Elektrik mußte verdoppelt werden. Für das
Pendel hatte ich ca. 35 kg Bleigewicht verbaut, Pendellänge ca.2,25m.
Beim Foucaultschen Pendel stelle ich mir den Einfluß der Reedkontakte
als besonders problematisch vor, weil dann das Pendel in der Ebene eines
Reedkontaktes "einrastet", d.h. die Kraft zwischen Magnet/ Reed kann das
Pendel in einer Schwingungsebene festhalten.
Die Wirkung läßt sich aber im Vorfeld gut testen, dazu reicht bereits
eine Testanordnung der Reedkontakte mit Klebeband.
Ein Foto bzw. ein paar Daten zum Pendel wären hier interessant...
ulf.
Wenn der Einfluß so groß ist, dann könnte das Magnetfeld immer noch mit
einer Spule, in welcher ein Strom induziert wird, oder mit einem
Hall-Sensor detektiert werden. Der Hall-Sensor dürfte den geringsten
Einfluß haben.
mfg, Stefan
Die WW mit dem Erdmagnetfeld und andere Effekte sorgen sicher ein wenig
dafür dass man aus so einem Pendel kein "Messgerät" bauen kann, jedoch
lässt sich der Effekt auf jeden Fall nachweisen. Ich habe schon viele
Pendel gesehen die mittels eines solchen Magneten und Spule angetrieben
wurden. Auch habe ich schon ein Pendel gesehen das auch mit
Reed-Kontakten LEDs schaltet.
Jedoch gebe ich Ulf recht und werde das erst noch testen und einfach ein
paar Reed-Kontakte aufstellen. Dann kann ich erkennen in wie weit diese
Einfluss auf das Pendel haben. Ansonsten wären wohl Spulen oder Hall
Sensoren eine weitere Lösung jedoch müsste ich da ein bischen auf die
Kosten achten, da diese normalerweise etwas teurer sind.
Mfg phil
Hab jetzt nicht alles genau durchgelesen, aber wie wärs mit folgender
Anordnung:
- Auf einen Schrittmotor kommt eine Scheibe (~10-20cm). Das Ganze steht
unter dem Pendel.
- In die Mitte der Scheibe kommt deine Entdämpfungsspule
- Am Rand der Scheibe kommen zwei Laserpointer die zwei Referenzstrahlen
mit einem Öffnungswinkel von ~ 5° oder so. Mit ihnen lässt sich das
weiterdrehen der Pendelebene optisch sehr gut verfolgen. Die
Pendelspitze läuft zwischen den Strahlen.
- Ebenso sind 2 Hallsensoren jeweils in der Achse der Laserpointer
angebracht. Mit ihnen wird die Entdämpfungsspule getriggert und die
momentane Schwingungseben zwischen den Referenzstrahlen kann vom µP
abgeschätzt werden.
- Droht die Schwingungsebene aus dem Messbereich zu laufen wird die
Scheibe durch den Schrittmotor entsprechend dem Öffnungswinkel
weitergedreht.
- Sind 360° voll wird die Scheibe um -360° Grad zurückgestellt damits
keine Kabelstrangulation gibt.
- Beim Einschalten wird mit einem Suchlauf solang weitergedreht, biss
die aktuelle Schwingungsebene zwischen den Referenzstrahlen liegt.
- Auf der Scheibe kann mit ein paar LEDs noch so Sachen wie
Periodendauer, Drehgeschwindigkeit etc. angezeigt werden.
- Natürlich kann statt 2 auch mehrere LPs angebracht werden und unter
Programmkontrolle an und ausgeschaltetet werden um weitergehende Effekte
zu erreichen.
> Das Charlieplexing ist gut, wenn man nur eine oder wenige> LEDs gleichzeitig Leuchten lassen will, denn es brennt zu> jeder Zeit nur eine LED.
Das stimmt einfach nicht. Du kannst Problemlos alle LEDs brennen lassen.
Es leuchten immer n-1 gleichzeitig.
Ich denke auch an magnetische Sensoren, die KMZ51, KMZ52 oder die
Drehwinkelsensor AS5040 oder AS5020, und zwar genau in der Mitte der
Anordnung positioniert, so brauchst Du nur einen Sensor, und mit 0,3
Grad Auflösung siehst Du den Fortschritt alle 113,2 Sekunden. Allerdings
muss man schauen, ob ihm die kurze Verweildauer im Mittelpunkt (höchste
Geschwindigkeit) für eine Messung ausreicht. Außerdem muss für die volle
Genauigkeit das IC genau in der Mitte "überflogen" werden und der
Abstand (Temperaturausdehnung des Seils!) auch stimmen.
Ähnlicher Ansatz: drei Spulen in der Mitte, aus deren unterschiedlich
induzierter Spannung der Winkel berechnet wird. Drei deshalb, weil Du so
die Veränderlichen (Abstand, "Unzentrität") herausrechnen kannst.
Michis Vorschlag ist auch sehr interessant und kann mit den genannten
kombiniert werden: Evtl. kannst Du die Entdämpfungsspule auch als
"Empfänger / Detektor" verwenden, wenn man sie richtungsabhängig
(länglich) baut. Ein paar Schwingungen messen (und dazwischen den
Schrittmotor drehen (Winkelmessung über das
Induktionsspannungs-Maximum)) und dann wieder antreiben.
Viele Wege führen nach Paris (wo Foucault lebte).
Korrektur:
> Es leuchten immer n-1 gleichzeitig.
Bei "alle LEDs an" leuchten jeweils n-1 gleichzeitig.
> Eine Matrix würde ich nicht bauen. Das würde ja nur funktionieren,> wenn immer nur ein Kontakt schließt.
Stimmt genauso wenig, die Schalter kann man mit Dioden entkoppeln.
Bei LEDs sind diese Dioden intrinsic.
Nachtrag:
- Da man normalerweise keine Nebelmaschiene am laufen hat braucht man
für dei LPs eine Projektionsfläche. Entweder am Umkehrkreis, oder man
richtet die Strahlen auf die Kugel, dann muss man aber die LPs am
Umkehrpunkt kurz ein/aus schalten weil man sonst keinen fixen
Anhaltspunkt hat.
- Es gibt auch sog. Linien Laser Pointer, die Projezieren statt eines
Punktes einen Strich in die Landschaft. Diesen Strich kann man durch
geeignete Neigung des Pointers entlang des Bodens bis zum Umkehrkreis
laufen lassen um so eine sichtbare Referenzmarke zu haben.
- Alternativ kann mann auch auf der Drehscheibe anstelle der LPs mittels
eines Strichgitters und einer kleinen Projektionslinse ein
Referenzmuster projezieren um mittels der Pendelspitze das Weiterdrehen
zu beobachten.
Das Prinzip der adaptiven Nachführung könnte man auch anders umsetzen:
- Unter dem Umkehrkreis wird etwas Bewegliches mit Eigenantrieb und
Stromzuführung installiert (z.B. kleine E-Lok auf Schienen, oder etwas
anderes verrücktes/lustiges)
- Darauf befindet sich die Anzeigen Show und wird wie bei der
Drehscheibe stückweise nachgefahren.
- als Drehebenen Anzeig kann dann wieder eine handvoll LEDs dienen
- Alternativ kann man auch ein paar "Kegel" anbringen (wie beim Pendel
im Münchner? Technikmuseum), die von der Pendelspitze umgehauen werden.
- Als Kegel kann man einfache Blechstreifen nehmen die drehbar gelagert
sind. Nachdem alle umgekippt sind richtet eine kleiner E-Motor mit
Exzenter Nockenwelle durch eine 360° Drehung sie wieder auf.
Moin Phil,
Dein Post ist zwar schon ein bisschen her, aber regelst du den
Elektromagneten auch über einen Mikrocontroller? Ich habe eine Schaltung
gelötet, aber leider ist diese sehr störanfällig. Ich versuche nun auf
einen Mikrocontroller umzusteigen.
Gruß Martin