Ich habe für meine Photovoltaikanlage (fast 9m2 Panele) mit Hilfe der CControl M-Unit 2.0 einen "suntracker" entwickelt, der die Panele den ganzen Tag lang optimal in beiden Ebenen in die Sonne richtet. Um Beschädigungen bei starkem Wind zu vermeiden habe ich einen "Winddetektor" gebastelt. Er besteht aus einem Pendel das in einem kreisrunden Metallring hängt und bei starkem Wind mit dem Ring Kontakt macht. Diesen Kontakt führe ich zum FREQ1 Eingang, den ich als Ereigniszähler konfiguriert habe. Soweit so gut. Es schien alles gut zu gehen ausser: die Resultate waren sehr erratisch. Bei einem Kontakt erhilt ich ein Resultat von z.B. 267. Offensichtlich muss der "Schalter" entprellt werden. Die Lösungen, die ich im Forum gefunden habe, sind vor allem für Taster geeignet und das schöne an meiner Lösung (falls sie je zum Laufen kommt...) wäre, dass ich den Ereigniszähler im Programm zu beliebigem Zeitpunkt abfragen kann, ob es einen Kontakt gegeben hat. Ich habe versucht, einen ELKO von 10 nF und dann einen von 100nF gegen 5V zu schliessen, aber das Resultat war ernüchternd. Ebensowenig geholfen hat ein RC Glied, wie an einem Ort vorgeschlagen. Hat da jemand einen Vorschlag, wie das zu lösen ist? Besten Dank im voraus. Christian
Und wenn du das ganze per Software entprellst? Also 1. Kontakt, ab dann 10ms keine weiteren Kontakte zählen. Dann müsste das prellen eigentlich beendet sein.
Ja, dann müsste ich mit Interrupts arbeiten und das geht über meine bescheidenen Möglichkeiten (sprich Kenntnisse) hinaus. Ich programmiere in mBasic... Danke trotzdem Christian
"die Resultate waren sehr erratisch." Das war exakt so zu erwarten. Der Wind drückt ja das Pendel permanent gegen den Ring. D.h. die Anzahl der Kontakte hat überhaupt nichts mit der Windstärke zu tun, sondern ist höchstens etwas abhängig von der Anzahl der Windrichtungswechsel. Die Windstärke kannst Du nur mit einem Windrad erfassen. Auch die allerbeste Software kann nicht ein falsches Meßprinzip ausgleichen. Peter
Der Pendel macht nur dann Kontakt, wenn der Wind stark genug ist, weil es einen bestimmten Weg zurücklegen muss, bis es an den Ring stösst. Das ist so gewollt. Ich will nicht die exakte Windstärke messen, sondern nur wissen, ob eine durch die Konstruktion des Pendels bestimmte "Windstärke erreicht, resp. überschritten wurde. Es ist mir auch gleich, wenn der Kontakt etwas prellt, denn ich will nur wissen, ob ein oder mehrere Ereignisse eingetreten sind. Ob 10, 100 oder tausend ist gleich. Solagne der Wind bläst, lasse ich die Panele in horizontaler Lage. Was nun aber geschieht ist, dass ich nach einher wiederholten Messung (trotz mehrsekundiger Pause) wider ein Ereignis gemeldet bekomme, obschon keines vorgefallen ist und obschon ich den FREQ1 Eingang zweimal (mit Pause) auf null setze (eine Art Hall?). Dies geschieht nur in meinem Hauptprogramm, in meinem Testprogramm hallt es nicht nach. Mein Hauptprogtramm ist aber sehr einfach: Es prüft, ob ein Ereignis stattgefunden hat (FREQ1 > 0). Wenn ja, werden die Panele in horizontale Lage gebracht und das Programm geht in eine Schlaufe, die ca. alle 10 Sekunden testet, ob wieder Ereignisse eingetreten sind. Wenn ja, wird ein Zähler inkrementiert, sonst dekrementiert. Wenn der Zähler einen bestimmten Wert erreicht hat, d.h. keine Ereignisse mehr aufgetreten sind, so können die Panele wieder in die Sonne gerichtet werden. Also: eigentlich ist nicht so sehr das Prellen mein Problem, sondern das "Nachhallen". Es ist mir unerklärlich, woher das kommt. Christian
Hat das ding auch im Kontaktlosen zustand einen definierten Pegel? PullUp oder PullDown vieleicht vergessen? Also spätestens ein RC-Glied sollte die Aparatur ausreichend entprellen... wenn nicht, haste definitv was falsch gemacht.
Versuchs mal so: Winddetektor Mitte o--------------------------- 5V Winddetektor RING o------x--[33K]--x---------- GND |---||----' 100n `-------------------- uC Oder halt umgekehrt mit 5V/GND. Evtl auch R/C Werte ändern. So, nun hoff ich das die Forensoftware meine asciiart nicht zerstoert ::)
Besten Dank an Niels und Ssssssssss. Werde das mit dem Pull-up und der Art des RC Gliedes morgen gleich ausprobieren und kann dann hofdfentlich mit einer Erfolgsmeldung aufwarten. Gruss Christian
Hallo da alle. falls die einfache RC Variante nicht gut genug ist, ein RS-FlipFlop durch das Pendel triggern und nach dem auslesen wieder löschen. Bernd
Endlich Erfolg! Habe den ganzen Tag gekämpft. Ausgehend vom Vorschlag von Sssss habe ich die Werte des RC Gliedes mit trial and error verändert. Nun scheint sich eine Lösung abzuzeichnen: Seit ca. 2 Stunden läuft eine Variante mit einem RC Glied von 47nF und 47 kOhm soweit problemlos (Vedrdrahtung wie von Sssss vorgeschlagen). Ein Grund für gewisse Probleme war auch die rel. unstabile Hardware, die ich inzwischen verbessert habe. Herzlichen Dank für die Hilfe! Trotzdem würde mich die Lösung mit dem RS-FlipFlop interessieren. Ist es unverschämt zu fragen, was ein RS-FlipFlop ist und wie so eine Lösung in etwa aussehen würde? Gruss Christian
Ein Flip-Flop ist eine art 1-Bit speicher. Es ist typischerweise ein Glied mit zwei Eingängen und einem Ausgang. Eine "1" am ersten Eingang setzt den Ausgang und eine "1" am zweiten Eingang löscht ihn wieder. Das Verhalten des FlipFlops wenn beide Eingänge "1" sind, typisiert das Flipflop. Ein J/K-FlipFlop wechselt beispielsweise dann den Pegel am Ausgang, wärend beim R/S-Flipflop dieser Zustand am Eingang "nicht erlaubt" ist. Wie dir ein FlipFlop jetzt bei deinem Problem geholfen hätte? Keine Ahnung.
Tja ein FF hilft eigentlich nur dann wenn man einen Umschalter hat - denn beim Einschalten wird das FF gesetzt und selbst wenn der Pegel dann wieder abfällt bleibts FF gesetzt... und erst wenn der Reset betätigt wird, ändert das FF den Zustand - und das geschieht erst wenn der andere Kontakt betätigt wird... In diesem Fall könnte ich mir nur vorstellen ein FF zu verwenden, wenn in der Mitte noch irgendwie ein Kontakt geschaffen würde, der dann betätigt wird, wenn das Pendel in Ruhe ist. Quasi der Reset. Und wenn das Pendel an den Aussenring kommt, wird das FF gesetzt, und bleibt gesetzt auch wenn das Pendel ein klein wenig vom Aussenring zurückfedert und weder mit Mittelkontakt noch mit Aussenring eine Verbindung hat. Is aber glaub ich zu aufwändig/kompliziert und mit dem RC-Glied besser zu lösen.
Hab zwar von eurem Bereich keine Ahnung, aber so ein FlipFlop hällt doch die Information gespeichert, bis eine andere Inormation (0 oder 1) kommt, oder ein Reset stattfindet (wie das geschiht, ist natürlich von der Art des FlipFlop abhängig (R/S J/K ...)) Ich könnte mir noch vorstellen, so ein FlipFlop so zu nutzen, daß das Pendel einen Impuls auslöst, der, sagen wir mal am S-Eingang eines R/S FlipFlop ankommt und solange gespeichert bleibt, bis der Kontroller ihn ausgewertet hat und an den R-Eingang einen Reset-Impuls gesendet hat, womit das Konstrukt dann wieder bereit ist, einen neuen Impuls zu empfangen...... Gruß Trollon (P.S. Keine Gewähr für 100%tige Richtigkeit des oben gesagten, ist einur ne Vorstellung)
Also die FlipFlop Lösung scheint eine echte Alternative zum RC Glied zu sein. Die FlipFlop Lösung wäre wahrscheinlich zuverlässiger. Das RC-Glied hat den Vorteil, dass ich dank dem Vorhandensein des Ereigniszähler Eingangs im mC keine zusätzliche Hardware benötige. Speziell brauche ich keine zusätzlichen digitalen Ports (die ich mit der jetzigen Lösung gar nicht habe). Trotzem sehr interessant und vielen Dank allen. Christian
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.