ADC und Schmitt-Trigger

Gast #399549
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
Gast
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.
Gast
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.
Gast
Den Analog-Comparator habe ich auch schon probiert, aber da geht es auch
nicht. Wie könnte ich das ganze mit dem Comparator realisieren?
Gast
@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.
Gast
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.
Gast
@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. :-)
Gast
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
Gast
@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...
Gast
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.
Gast
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 20 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.