Hallo, Ich habe diesen Sensor: http://www.conrad.at/ce/de/product/150391/Durchflussmesser-Flow-Meter-FCH-m-POM-LC-001-35-lmin-BIO-TECH-eK-FCH-m-POM-LC-mit-Duese-1-mm-001-10-lmin an einem Atmega8 angeschlossen (PD4) um die Impulse zu zählen per Counter aber ich komme nicht auf den Fehler drauf... 1) ist es normal das ich am PD4(T0) +4,9V messe ? 2) Wenn ich den PD4 gägen masse schalte dann zählt er soll auch so sein. Den Sensor habe ich versucht mit 5V bzw. 12V zu betreiben ohne bei 5V -> zählt er überhaupt nicht (ob Wasserfliesßt oder nicht ist egal) bei 12V -> zählt er immer (ob Wasserfliesßt oder nicht ist egal) ich habe auch einen Widerstand verwendet von 1,6kOhm wie in der Anleitung beschrieben, macht jedoch keinen unterschied. Das ist mein Code (zum Testen)... #define F_CPU 16000000UL #include <avr/io.h> #include "lcd-routines.h" #include <stdlib.h> #include <util/delay.h> #include <avr/interrupt.h> int main(void) { LCD_DDR = 0x0FF; lcd_init(); DDRD &= ~(1 << DDD4); // Clear the PD4 pin // PD0 is now an input PORTD |= (1 << PORTD4); // turn On the Pull-up // PD4 is now an input with pull-up enabled //TCCR0 |= (1 << CS02) | (1 << CS01); // Turn on the counter, Clock fall Rise TCCR0 |= (1 << CS02) | (1 << CS01) | (1 << CS00); // Turn on the counter, Clock on Rise sei(); while (1) { // we can read the value of TCNT0 hurray !! lcd_setcursor(0, 0); char Buffer[50]; itoa(TCNT0, Buffer, 10 ); lcd_string(Buffer); } }
Patrick schrieb: > Wenn ich den PD4 gägen masse schalte dann zählt er soll auch so sein. Ohne Kommentar.
ja das hab ich zum Testen gemacht, daher ich mir nicht sicher war ob vl. der atmega was abbekommen hat oder das Programm falsch ist...
du musst die impulse je Zeiteinheit messen: 1. Impulszähler auf Null 2. Timer starten 3. Impulse zählen 4. Timer stoppen und gezählte Impulse auswerten
So wie ich das im Code mache (per external clock) müsste ich doch impulse bekommen, weshalb soll ich da etwas zeitlich zählen ?
Mach dir mal eine LED mit 1k gegen +5V mit an den Ausgangspin des Sensors (das kannst du auch gleich als Pullup mitverwenden) und schau, ob da was rauskommt, denn ein Oszi wirst du nicht haben. Ich denke mal, das du evtl. was an den Anschlüssen des Sensors verwurschtelt haben könntest, denn wenn Tippen gegen Masse läuft, sollte der Sensor ja auch tun. Oder Klaus hat dir was kaputtes geschickt. Patrick schrieb: > char Buffer[50]; Schön ist das so mitten im Code nicht. Setzt das doch einfach als global.
Oszi hab ich jetzt nicht, aber wenns mit einer led auch gehen sollte Probier ichs ... Das beim T0 obwohl er als Eingang gesetzt ist +5V anliegen finde ich auch eigenartig
Patrick schrieb: > Oszi hab ich jetzt nicht Solltest du dir beschaffen, ein Oszi kann mehr als aufschlussreich sein bei der Fehlersuche ;)
Patrick schrieb: > Das beim T0 obwohl er als Eingang gesetzt ist +5V anliegen finde ich > auch eigenartig Was dachtest du denn, welche Auswirkung die Aktivierung des internen Pull-Up hat?
Der sensor liefert bei der signal leitung ca. 5V und beim einem impuls zieht er ihn gegenmasse aber mein T0 liefert auch 5V wegen des aktivierten pullups funktioniert das so eigentlich ? eigentlich müsste das zählen der impulse per polling auch funktionieren oder nicht (wär ja einfacher aber nicht so schön) ?
Patrick schrieb: > mein T0 liefert auch 5V wegen des > aktivierten pullups funktioniert das so eigentlich ? Ja.
Ich hab das jetzt mit der led versucht. Sensor versorgt mit 14V 1,6kOhm pullup widerstand vom sensor Led vorwiderstand 1kOhm.. Wenn ich den sensor leicht bewege dann flakert die led. Wenn ich das so an den T0 hänge zählt er aber einfach drauf los.... Hat jemand noch eine idee ?
Patrick schrieb: > Hat jemand noch eine idee ? Du lässt aber schon den internen Pullup aktiviert, oder? Die LED zieht das ganze nicht auf 5V hoch, sondern nur auf etwa 3,5V und das ist bei 5V am MC im 'wackeligen' Bereich, sprich, nicht ganz high und auch nicht low. Dem Sensor und dem MC musst du unbedingt Abblockkondensatoren verpassen, wie in jeder Schaltung, die CMOS involviert.
ja der interne Pullup ist aktiviert, gemessen hab ich am T0 4,99V. Ich werde Kondensatoren dazu hängen aber meine vermutung liegt eher daran das der Sensor ca 2V liefert (hab ich so gemessen beim versuch mit der LED) und er mir die Spannung zu wenig runterzieht...
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.