Hallo zusammen, ich habe folgendes Problem: ich lese bei einem ATTiny2313 über den ADC eine Spannung ein. Wenn diese größer wie 2,5 V wird, wird eine LED eingeschaltet und ein Befehl über UART abgesetzt. Diese Spannung wird mit einem LDR erzeugt. Jetzt habe ich das Problem, dass wenn die Lichtverhältnisse gerade so sind, dass +/- 2,5V entstehen, die LED flackert und der Zustand immer hin und her springt. Jetzt habe ich mir überlegt, ob ich einen Schmitt-Trigger dazu verwenden kann, dass der Zustand stabil bleibt, sobald die Schaltschwelle einmal überschritten wurde. Leider habe ich noch keinerlei praktische Erfahrung mit Schmitt-Trigger-Bauteilen. Hat mir vielleicht jemand einen Tip, welcher zu meinem Problem passen würde? Habe im Forum schon gesucht und auch einen gefunden, aber ich weiß nicht, ob Schmitt-Trigger mir bei meinem Problem generell überhaupt helfen. Bin für jeden Tip dankbar. Danke und Gruß Markus
mach es einfach so das wenn 2,5V erreicht sind die LED an geht und erst wieder aus wenn ein bestimmter Wert unterschritten wird. Also einen Schmitt Trigger per Software.
Auch 'Hysterese' genannt. Könntest Du nicht den Analog-Comparator benutzen, oder brauchst Du den Analogwert noch für andere Zwecke? Ist einfacher als ADC zu handhaben.
Den Analog-Comparator habe ich auch schon probiert, aber da geht es auch nicht. Wie könnte ich das ganze mit dem Comparator realisieren?
Seit wann hat der Tiny2313 ADC? Im Datenblatt steht nichts davon. Da gibt es nur einen Analogcomparator.
@Markus Reichert Also Schmitt-Trigger ist schon der richtige Ansatz. Den sollte man aber mit einem OpAmp realisieren, um die Schaltschwellen im Griff zu haben. Alternativ kann man dazu auch den internen Komparator verwenden. Da der Ausgang aber nicht direkt nach außen geführt wird, muss man das noch in Software nachbilden. Also nach dem Auslesen des Komparatorausganges dieses Bit auf einem anderen Port ausgeben und so die Rückkopplung realisieren.
Bei AC-Interrupt-Auslösung einen Timer (immer wieder von vorne) starten und eine erneute Ausführung der Aktion (LED schalten usw.) erst nach ablauf einer bestimmten Zeit freigeben.
@Hubert.G sorry, falsche Bezeichnung erwischt: ist ein Mega8 @Detlev wie würde denn eine Schaltung so grob mit einem OpAmp aussehen? Ich habe noch nie so etwas in der Richtung auch nur ansatzweise realisiert und wäre für ein paar Tips für den Einstieg sehr dankbar. :-) @THM Diese Lösung kommt leider nicht in Frage. Trotzdem danke. :-)
Hallo, ich wäre ja jetzt sowas von gemein... ;) Wenn ich noch einen freien Portpin hätte: Reihenwiderstand von 1..10k zwischen ankommender Spannung und ADC.Eingang. Zwischen dem freien Portpin und dem ADC-Eingang hochohmigen Widerstand (keine Lust jetzt zu rechnen, vermutlich 1M). Portbit auf L. Wenn jetzt die Spannung das erste mal über 2,5V steigt, den Portpin auf H. Jetzt ist die Spannung durch den 1M über der alten Schaltschelle. Beim ersten unterschreiten Portpin wieder auf L. Ist ein Schmidt-Trigger in Software... Das Widerstandsverhältnis bestimmt die Hysterese, der Quellwiderstand der Spannung geht da aber mit ein. Gruß aus Berlin Michael
Hi nochmal, hab die OP-Grundschaltungen mal zusammengeschmiert. Für genaueres kannst Du Googeln, gibt's jede Menge Stoff drüber!
Ich verstehe nicht warum du die Hysterese nicht SW-mäßig einstellst, warum diesen zusätzlichen Hardwareaufwand?
@Sonic vielen Dank fürs "zusammenschieren"... ;-) @Hubert.G wie kann man die Hysterese SW-mäßig einstellen? Davon habe ich noch gar nichts gehört, dass das geht...
Dafür muss man die Spannung kontinuierlich messen und den Grenzwert entsprechend auslösen (max oder min). Der Rückschaltwert wird nach Abzug/Addition der entsprechenden Hysterese ausgelöst.
Wie @Sonic schon geschrieben hat. Du misst ja jetzt auch die Spannung am ADC-eingang. Weiss nicht mit was du programmierst aber es müsste so etwa aussehen if(ADC-Wert >=135) schalte LED ein If(ADC-Wert <=125) schalte LED aus Wenn der Wert >135 ist wird eingeschaltet und wenn er dann kleiner als 125 wird wieder ausgeschaltet. Eine Hysterese von 10.
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.