Hallo, ich versuche gerade über einen Tiny12 das Tachosignal eines PC-Lüfters auszulesen. Ich habe schon oft gelesen, dass es sich beim Tachoausgang um einen Open Collector Ausgang handele. Der uC lässt sich auch programmieren, die LEDs lassen sich ebenso problemlos ansteuern, nur der Lüfter scheint das Signal nicht richtig an den Controller zu geben. Alle Pullups sind 10k Ohm groß, die Basisvorwiderstände alle 1k. Die Lötverbindungen habe ich mehrmals überprüft. Das Programm soll einfach nur die LEDs anschalten, sobald der Tachoanschluss auf Masse liegt: .include "tn12def.inc" ldi r16, 0b0000100 out DDRB, r16 ldi r18, 0x00 ldi r19, 0xFF out PORTB, r18 ;aus loop: sbic PINB, 4 rjmp leds rjmp loop leds: out PORTB, r19 ;an rjmp loop Die LEDs bleiben jedoch permanent dunkel. Vielleicht weiß ja einer von euch Rat.
Miss doch erstmal, ob das Signal am Col von Q1 korrekt ankommt. Oder andersrum, schau doch mal ob die LED's blinken, wenn du PB3 toggelst.
R12 und R14 ist überflüssig. Wenn das Tachosignal wirklich open Collector ist das Gedöns mit den Transistoren auch zuviel.
wenn du den internen pullup aktivierst, kannst du das Tachosignal von normalen PC-Lüftern direkt anschließen.
PB4 ist doch bei Dir als Ausgang geschaltet aber im Programm fragst Du diesen PIN als Eingang ab? sbic PINB, 4
Und wierum hast du die LED dran? Weil ne 1 aufm Port die LED ausschaltet fals sie mit der Kathode am Port hängt.
Danke an alle, es funktioniert jetzt. Habe nun das Signal direkt am uC, die internen Pullups aktiviert und die Software entsprechend korrigiert (bezüglich der Pins).
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.