Forum: Mikrocontroller und Digitale Elektronik Entprellen


von Christian Müller (Gast)


Lesenswert?

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

von Carsten S. (carsten)


Lesenswert?

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.

von Christian Müller (Gast)


Lesenswert?

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

von tex (Gast)


Lesenswert?


von Peter Dannegger (Gast)


Lesenswert?

"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

von Christian Müller (Gast)


Lesenswert?

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

von Niels H. (monarch)


Lesenswert?

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.

von Sssssss (Gast)


Lesenswert?

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
::)

von Niels H. (monarch)


Lesenswert?

Sssssss:

Schaut gut aus. So in etwa hätt ichs auch gemacht.

von Christian Müller (Gast)


Lesenswert?

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

von bernd (Gast)


Lesenswert?

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

von Christian Müller (Gast)


Lesenswert?

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

von Niels H. (monarch)


Lesenswert?

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.

von Ithamar G. (antimon)


Lesenswert?

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.

von Trollon (Gast)


Lesenswert?

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)

von Christian Müller (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.