Ich habe folgende Ausgangslage:
Ich möchte folgende 2 Zustände nach dem Strom angelegt wurde mit dem
Analogeingang eines Mikrocontrollers unterscheiden:
(1) Die Spannung bleibt bei 0V
(2) Es gib einen kurzen Spannungsimpuls. Hier steigt die Spannung von 0
auf 3,3V und fällt wieder auf 0V. Das ganze passiert innerhalb einer
halben Sekunde.
Es ist kein Problem diese 2 Zustände zu unterscheiden, allerdings nach
dem die Spannung in Fall (2) ebenfalls wieder 0V erreicht hat, sind die
Zustände nicht mehr zu unterscheiden. Sollte es also später erneut nötig
sein den Zustand zu unterscheiden, ist es nicht möglich.
Wie kann ich ohne Schmitt Trigger oder D-Type Flip-Flop mit einem
möglichst einfachen & kostengünstigen Aufbau diesen kurzen
Spannungsimpuls in eine andauernde Spannung verwandeln? So dass es nur
noch diese beiden Zustände gibt:
(1) Die Spannung bleibt bei 0V
(2) Die Spannung ist größer oder gleich 1V und bleibt stabil.
Liebe Grüße
Andrea
Andrea Stier schrieb:> Wie kann ich ohne Schmitt Trigger oder D-Type Flip-Flop mit einem> möglichst einfachen & kostengünstigen Aufbau diesen kurzen> Spannungsimpuls in eine andauernde Spannung verwandeln?
Nimm ein RS Flip-Flop.
Andrea Stier schrieb:> Es ist kein Problem diese 2 Zustände zu unterscheiden, allerdings nach> dem die Spannung in Fall (2) ebenfalls wieder 0V erreicht hat, sind die> Zustände nicht mehr zu unterscheiden. Sollte es also später erneut nötig> sein den Zustand zu unterscheiden, ist es nicht möglich.
Das ist aber nicht die Versorgung des µC mit dem Analogeingang? Sonst
geht das nur, wenn du in der Zeit z.B. das EEPROM beschreiben kannst.
Im µC hast du doch alles in der Hand.
Nach dem Reset ist ein Zählvariable mit 0 initialisiert.
Stellst du einen solchen Spannungspeak fest, dann merkst du dir in der
Variable das Ereignis.
Danach erfolgt die Auswertung des Ereignisses und du kannst die Variable
wieder mit 0 belegen für den nächsten Event.
Kann aber auch sein, dass ich wieder mal alles missverstanden habe oder
dass deine Spezifikation zu unklar ist ....
Andrea Stier schrieb:> Es ist kein Problem diese 2 Zustände zu unterscheiden, allerdings nach> dem die Spannung in Fall (2) ebenfalls wieder 0V erreicht hat, sind die> Zustände nicht mehr zu unterscheiden. Sollte es also später erneut nötig> sein den Zustand zu unterscheiden, ist es nicht möglich
Ganz einfach: merken.
Dein uC kann sich das meeken, sogar per PinChange Interrupt.
Was bringt es aber ?
Hast du einmal gemerkt, dass die Spannung high war, ist deine Schaltung
defekt, denn sie kann nie wieder merken ob ein Impuls kommt. Der Merker
ist ja dauerhaft high.
Du brauchst wieder einen Weg des Rücksetzens, bei Verarbeitung des
Zustands dur h ddn uC, und das kann am besten ddin uC.
Du brauchst keine Hardware, nur Software. Programmieren müsste man hakt
können.
Vielen Dank für die vielen Antworten :)
Mein Problem ist, dass einer der beiden genannten Zustände direkt nach
dem Anlegen des Stroms auftreten. Mein µC bootet nicht immer schnell
genug. bzw. muss zwingend noch andere Aufgaben erledigen. Mein Vorteil
ist, dass sich der Zustand nicht ändert bis zu einem Neustart, bei dem
der Strom kurz wegfällt. Kann ich durch dieses Zurücksetzen nicht
einfach einen Transistor nehmen um den Trigger Implus in einen
beständigen Impuls zu ändern, indem der Triggerimpuls einen
Stromkreislauf eines Transistors schließt? Sollte das nicht möglich
sein, oder stehe ich auf dem Schlauch?
LG
Andrea
ek13 schrieb:> Du sprichst von kurzen und langen Impulsen und hast uns bis jetzt> noch> nichts über die Impulsdauer gesagt.
Ganz zu schweigen vom "andauernden Spanungsimpuls"...
Ok, das ist natürlich quatsch ;) Ich möchte einfach das eine konstante
Spannung gehalten wird, damit die beiden mögliche Zustände
auseinanderzuhalsen sind, bis der Strom unterbrochen und neu angelegt
wurde.
1
hastunsbisjetztnoch
2
nichtsüberdieImpulsdauergesagt.
Der Impuls verläuft wie eine Sinuskurve. 0V; 0,3V; 0,6V;...;3,3V;...
0,6V;0,3V;0V. Das ganze dauert etwa 500 Millisekunden. Hängt man eine
LED dran, blinkt diese für etwa 300 Millisekunden auf.
Warum willst du dann kein FF? Ein 1G74 ist kaum größer als ein
Transistor + Widerstände. Das kann man auch als RS-FF betreiben. Setzen
mit dem Puls, Rücksetzen mit dem μC, wenn er soweit ist und den Zustand
gelesen hat. Oder mit dem nächste Power-Cycle.
Ich glaube ich habe eine funktionierende Schaltung mit 2 Transistoren
gefunden. Dabei wäre meine "An-Taste" der kurze Spannungsimpuls (Zeit:
4:16) - eine "Aus-Taste" wäre in meinem Fall nicht notwendig.:
https://www.youtube.com/watch?v=Foc9R0dC2iI
Andrea Stier schrieb:> Mein µC bootet nicht immer schnell genug. bzw. muss zwingend noch andere> Aufgaben erledigen.
Kannst du wenigstens sagen, wie lange dein umständlich programmierter µC
im schlimmsten Fall zum Booten braucht?
Andrea Stier schrieb:> Das ganze passiert innerhalb einer halben Sekunde.
In einer halben Sekunde kann ein handelsüblicher µC zig Millionen von
Befehlen ausführen.
> (2) Es gib einen kurzen Spannungsimpuls.
Was ist die Quelle dieses Impulses? Wieviel Energie steckt in diesem
Impuls? Aber wenn sogar eine LED damit angesteuert werden kann, dann
könnte man auch ein "analoges Monoflop" nehmen:
1
Signal ----->|----o----o--- µC ADC
2
| |
3
| -
4
=== | |
5
| | |
6
| -
7
| |
8
GND ----------o----o---
Denn wenn du sagst: der µC hat nach 5 Sekunden dann endlich sicher mal
Zeit, sich nach diesen Signal zu erkundigen, dann reicht es ggfs. aus,
über eine Diode einen Kondensator zu laden. Der hält dann bei passender
Auslegung die Ladung so lange, bis der trödelige µC mal Zeit findet, den
Wert einzulesen.
Lothar M. schrieb:> dann könnte man auch ein "analoges Monoflop" nehmen
Ja, daran hatte ich auch schon gedacht. Zudem sich herausstellte, dass
der Puls wohl eher eine Sinushalbwelle für 500ms ist. Da ist ein
digitaler Baustein (z.B. RS-FF), wie in meinem Ansatz, nicht so
geeignet.
Und es sind auch etwas weniger als "zig Millionen" von Befehlen ... :-)
Aber immer noch genügend!
Man könnte Lothars Schaltung noch erweitern um eine Diode gegen die
Versorgungsspannung, wenn die weg ist wird auch der Kondensator
entladen, quasi ein Reset.
Alternativ könnte ein Interrupt eine Variable setzen ohne dass
"muss zwingend noch andere Aufgaben erledigen"
nennenswert unterbrochen wird.
Hast Du eine Ahnung was ein Interrupt ist?
Was für einen yC verwendest Du? Wenn es sich um irgendwas in der
Richtung Raspberry handelt, das erst ein Betriebssystem laden muß, sehe
ich das Problem.
Ansonsten erscheint es etwas seltsam wenn ein yC eine viertel Sekunde
lang derart beschäftigt ist, dass er einen Impuls am Eingang nicht
feststellen kann.
@ Andrea
Die nächst einfachere Variante wäre vielleicht ein Kondensator, der von
dem Impuls aufgeladen wird. Wenn die Quelle ausreichend niederohmig, der
Kondensator groß genug ist und das auslesen entsprechend hochohmig
erfolgt, müsste das gehen. Mit dem im AVR (wir wissen ja nicht, welcher
uC verwendet wird) eingebauten Komparator sogar mit einer gewissen
Toleranz, solange recht früh den Wert ausliest.
Zur Berechnung wären Angaben über die Quelle und den uC hilfreich und ob
an dem Signal noch weitere Bauteile angeschlossen sein sollen.
Wie auch immer: Irgendeine Art von Speicher ist unvermeidbar, solange
der uC das Signal nicht ständig abtasten kann.
Warum eigentlich kein Schmitt-Trigger oder sonstiges Bauteil?
Kombination aus Schmitt-Trigger und Flip-Flop wäre eigentlich
konstruktiv fast ideal.
Theor schrieb:> Wenn die Quelle ausreichend niederohmig... Ist
Dann entlädt sie ohne die Diode den Kondensator ziemlich genau so
schnell, wie sie ihn aufgeladen hat.
Markus schrieb:> Man könnte Lothars Schaltung noch erweitern um eine Diode gegen die> Versorgungsspannung
Diese Diode ist mit hoher Wahrscheinlichkeit schon im uC Pin
eingebaut... ?