PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : sensorpegel zu niedrig



joschi911
24.07.2007, 17:35
hallo,
vielleicht kann mir mal jemand elektrotechnisch auf die sprünge helfen.
ich will einen sensor mit einem atmel avr auslesen. laut datenblatt des sensors kommt da ein pulsweitenmoduliertes signal zwischen 0V und +5v raus. mit dem multimeter messe ich aber nur pegel bis max. 2V. gemäß datenblatt habe ich bereits einen 10kO pullup zwischen signalpin und +5v geschaltet. bei diesem geringen pegel interprtiert der avr das signal leider nicht als logische 1, sonder mißt durchweg "0". villeicht kann mir ja jemand einen tip geben.
im voraus danke.

gruß

joschi

Gock
24.07.2007, 18:47
Hi!
Mit dem Multimeter ist es schwierig eine PWM Signal zu messen, weil das MM beliebigen Käse anzeigt. Ergo: Oszi dranhängen.
Wie hast Du denn den AVR messen lassen?

joschi911
24.07.2007, 18:51
oszi habe ich leider nicht.
habe das signal einfach auf einen digitalen input gelegt und wenn der "1" ist, sollte einfach eine led an einem output angehen. da die pulse in 0,2 bis 1,5 sekunden kommen, sollte das doch eigenlich gehen, oder?

gruß

joschi

shaun
24.07.2007, 19:01
Wie lang sind denn die Impulse und die Pausen des PWM-Ausgangs? Deine Angabe über "kommende" Impulse kann ich nicht so recht in einen fachlich sinnvollen Kontext einordnen ;)
Wenn die Frequenz zu hoch für eine digitale Auswertung (eine Flanke löst Interrupt aus, Timer starten, warten auf nächste Flanke, Timer auslesen, ggf auch beides per Interrupt) sind, würde ich einen RC-Tiefpass dahinter setzen und mit dem ADC die Spannung messen, geht natürlich etwas auf die Genauigkeit.

Gock
24.07.2007, 19:12
Geht denn die LED an, wenn Du den Port auf eindeutigem Wege auf high legst, zb durch Anlegen von 5V?
Wenn ja, weiß Du wenigstens, dass Dein Programm halbwegs tut.

joschi911
25.07.2007, 07:03
also, der sensor schickt drei signale nacheinander. je nachdem welcher wert übermittelt werden soll, wird dabei der pegel zwischen 0,2 und 1,5 sekunden pro impuls auf high gesetzt. danach kommt eine pause von zwei sekunden. das genaue messen mit interrupts kommt später. jetzt wollte ich eigentlich erst mal sehen, ob der atmel den impuls überhaupt mitbekommt. und genau das tut er anscheinend nicht.
das programm funktioniert. wenn ich eine bedingung á la "led an, wenn sensor=0" schreibe, geht die led die ganze zeit an. nur wenn die bedingung lautet "led an, wenn sensor=1", passiert gar nix.

Gock
25.07.2007, 08:33
Ja aber weißt Du denn, ob Dein Eingang, der den Sensor ausliest richtig konfiguriert ist und Dein Code auch stimmt?
Das würdest Du wissen, wenn Du einfach mal 5V anlegst und die LED beobachtest. Dann sollte sie dauerhaft brennen.

joschi911
25.07.2007, 16:02
problem hat sich erledigt. ich weiß zwar nicht warum, aber aus irgeneinem grund funktioniert die schaltung an portc.4 einwandfrei und an portd.6 überhaupt nicht. und das alles bei unverändertem code.

naja, soll´s eben so sein.

trotzdem vielen dank für die hilfestellung =D> =D> =D>