Hallo, ich komme mit dem Analog Comparator nicht klar. Ich möchte einfach einen Spannungsteiler an die AIN0 und AIN1 legen, natürlich mit Potis. Je nach dem welche Spannung anliegt soll irgendwo eine LED oder die andere LED leuchten. Leider klappt das nicht. Die Abfrage ob ein Zustand sich ändert erfolgt im Interrupt, der aber meiner Meinung nach nie angesprochen wird. Was mache ich den falsch? An beiden Eingängen sind zwei 4,7kOhm Potis angeschlossen. Egal wie ich drehe, nie wird der Interrupt angesprchen, wenn es toggelt. Irgenwie blick ich es nicht. Der AC ist auch eingeschaltet. Ich dachte immer, sobald der eine Eingang höher wie der andere bzw. umgekehrt ist, muss eine der entsprechenden LEDs leuchten, oder liege ich da falsch? Danke im Voraus. MFG Thomas
Potis wie angeschlossen? INTs (globaler und Comparator) eingeschaltet? Probier's doch erstmal mit GNDund +5V (Vcc). Einfach mal umpolen, dann muss er schalten.
Hallo, jetzt steht die Schaltung, und der Analog Comparator erfüllt seine Funktion zu fast 100%, aber leider nur fast. Ich möchte jetzt keine Schaltung als Grafik schicken, da sie zu simpel ist. An AIN1 liegt via Teiler eine Spannung von ca. 1V. An AIN0 ist eine LDR angeschlossen. An PortB0 ist eine weiße Led und an PortB7 eine rote Led. Wenn es hell ist, befindet sich die Spannung am LDR unter der des Teilers und es leuchtet die rote Led. Wird es dunkel, so wird die Schwelle überschritten und die weiße Led leuchtet. So weit okay. Folgender Codeausschnitt aus dem AC Interrupt sollte doch eigentlich funktionieren (Übrigens ist AC auf toggeln eingestellt) ... com schalter cpi schalter, 0xFF ; hell brne pc+3 ldi copy, 0b11111110 out PortB, copy tst schalter ; dunkel brne pc+3 ldi copy, 0b01111111 out PortB, copy ... Eine frühere Version war, dass ich einfach den Portzustand mit com negierte. Dies hatte aber zur Folge, das irgendwas statisch wurde, und der LDR nicht mehr reagiert hat, wahrscheinlich hatte ich damit auch die Pull-Ups deaktiviert, wer weiß. Mit dem obigen Code passiert aber folgendes: Wenn Zustand = hell -> rote Led leuchtet. Ändert sich der Zustand auf dunkel, leuchtet die weiße ganz kurz auf, dann leuchtet im dunklen die rote und im hellen die weiße Led. Da ich noch neu in der Thematik bin, vermute ich das die LDR am AC Eingang prellt, liege ich da richtig? Jedenfalls hat ein 10nF von AIN0 auf Masse das Problem erheblich verbessert. Trotzdem passiert es selten, dass eine Zustandsänderung nicht sofort erkennt wird, vor allem wenn ich ganz schnell von hell nach dunkel oder umgekehrt verfahre. Meine Fragen: - Muss ich den Analog Comparator entprellen, bzw., eine Hysterese einbauen? - Später soll eigentlich nur das Bit ACO ausgelesen werden, erübrigt sich dann das Problem? - Können mögliche Störlichtquellen den Sensor verwirren, wie z.B. die weiße Led (eigentlich ne dumme Frage)? Gruß und Danke Thomas
> Da ich noch neu in der Thematik bin Drum sehen wir dir auch einiges nach. > Ich möchte jetzt keine > Schaltung als Grafik schicken, da sie zu simpel ist Aha. Drum beschreibst du es lieber und überlässt es der Fanatasie deiner Leser, was da draus wird. Mach einen Schaltplpan und poste ihn! > Folgender Codeausschnitt Poste dein komplettes Programm! Gib uns alle Unterlagen die du hast. Das verhindert, dass hier geraten werden muss. > LDR am AC Eingang prellt ein LDR kann nicht prellen. Prellen entsteht, wenn sich mechanische Kontakte schliessen.
Hallo, also gut. Im Anhang ist die Schaltung und mein kompletter Code. Danke für die Tips. MFG Thomas
Thomas Jung wrote: > Hallo, > > also gut. Im Anhang ist die Schaltung Aha. Und wie soll deiner Meinung nach der LDR am AIN0 Eingang eine bestimmte Spannung bewirken. Du musst mit dem LDR und einem Widerstand genauso einen Spannungsteiler aufbauen wie du ihn am anderen Eingang hast. Denk dir einfach den Aufbau vom AIN1 dupliziert auf den AIN0 Eingang. Und dann ersetzt du einen der Widerstände durch die LDR Ins Pgm hab ich noch nicht reingeschaut
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.