Hallo Forum, Ich versuche mit einem AVR-Controller ein normales (?) 12V PC Lüfter Tacho Signal auszuwerten. Bisher hatte ich nur bei 1 von 4 Lüftern sowohl mit dem ATMega8 als auch ATTiny2313 Erfolg. Jedoch können auch die restliche 3 via PC (Mainboard/BIOS) ausgelesen werden. Irgendwas muss ich also falsch machen. Der Aufbau ist dabei denkbar einfach: FAN_GND => GND FAN_12V => 12V TACHO => µC-Pin PWM => nicht verbunden µC_GND => GND µC_VCC => 5V (µC-Grundschaltung mit 10k-Ohm Reset gegen VCC etc.) Der µC-Pin wird via internem Pull-Up auf 5V gezogen (PORTxy auf 0, extern hab ich auch versucht) und sollte ja durch den Lüfter periodisch nach GND gezogen werden. Weder per Pin-Change-Interrupt noch per Dauer-Polling bekomme ich diesen Zustand abgefragen. Immer liegt HIGH an. Warum funktioniert das bei dem einen, bei den anderen allerdings nicht? Wird da noch eine Zusatzschaltung benötigt? Ich bedanke mich schonmal für eure hilfreichen Beiträge.
Daniel H. schrieb: > Der µC-Pin wird via internem Pull-Up auf 5V gezogen (PORTxy auf 0 Dazu macht man den zugehörigen Port auf 1 und nicht 0. Andere Ideen (weil ja der angebliche externe Pu auch nicht tut): - Widerstand zu groß (son Lüfter is flott) ? - Mit dem Multimeter nachmessen ob der offene Port 1 wird - LED anschließen (zwischen Vcc und Tachosignal, mit Vorwiderstand) die müsste dann flackern.
Max D. schrieb: > Port auf 1 und nicht 0 PORTxy war für internen Pull-Up natürlich auf 1 gesetzt, sorry ;-) Max D. schrieb: > der angebliche externe Pu auch nicht tut > Widerstand zu groß Interessantes Phänomen ohne internen Pull-Up: µC-PIN > VCC (gibt HIGH, sonst LOW) µC-PIN > Widerstand > VCC (gibt LOW bei 10k oder 330ohm?!?) Das scheint mir das Problem zu sein. Aber wie kommt es dazu? Max D. schrieb: > LED anschließen (losgelöst) Tacho -> LED -> 330ohm -> VCC Bei schnellen Umdrehungen ist das Flackern nicht wahrzunehmen. Drossle ich den Lüfter (via Finger), flackert die LED. (Tacho scheint also nach GND bzw. <VCC zu ziehen) Max D. schrieb: > Mit dem Multimeter nachmessen ob der offene Port 1 wird Mit externem wie internem Pull-Up liegt VCC an. Wobei der Controller wie oben beschrieben bei externem Widerstand nicht 1 liefert.
€dit2: liest du wirklich PINxy ein? Und nicht zufällig PORTxy? Is mir auch schon passiert.
Jap, lese PINx ein. Er zeigt ja auch 1 an, wenn ich ihn direkt mit Vcc verbinde. Via externem Pull-up Widerstand allerdings nicht o.O
Man sollte DDRx richtig setzen -.-' Jetzt klappt alles.
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.