Datum: 12.05.2008 21:33
Hallo, ich habe ein kleines Problem mit meinem PIR Sensor von Conrad. Das Teil ist ein PIR SMD-MODUL 3-12 V/2 mA. Ein Auszug aus der Beschreibung sagt: Integrierter Fensterkomparator, TTL- und CMOS-kompatibler Open-Kollektor-Ausgang mit Pullup, der auch direkt LEDs oder Relais ansteuern kann. Betriebsspannung: 3 - 12 V/1.4 mA Ausgangsstrom: Open-Kollektorausgang 20 mA Meine Frage ist nun.. kann ich den Sensor-Ausgang direkt an einen Digitaleingang des Atmega8 anschließen? Habe die Spannung am Ausgang mit einem Multimeter gemessen..da kommen standartmäßig 0,3-0,5V raus..normal sollten dort doch 5V anliegen und wenn der Sensor schaltet sollte das ganze doch auf 0 fallen oder kann mein Messgerät so kurze Spannungsschwankungen nicht ermitteln? Wäre wirklich dankbar wenn jemand ein bisschen Licht ins Dunkle bringen könnte! Grüße Throsten
Datum: 12.05.2008 22:02
Naja ganz auf Null wirds wohl nicht runtergehen, über CE fällt ein bißchen was ab. Aber ansonsten hast Du schon recht. Entweder Du kriegst es nicht hin zu messen ohne den auszulösen ;) oder da ist doch kein pull-up. Bau doch mal einen pull-up dazu (vielleicht so 4.7k) und schau ob es dann geht. Du bist auch sicher, dass die Anschlüsse richtig belegt sind ?
Datum: 13.05.2008 02:44
Ich komme einfach nicht weiter, der Sensor liefert am Digitalausgang dauerhaft nur wenige mV, wenn ich mich davor bewege scheint er auf Masse zu ziehen.Das ist das einizige Lebenszeichen. Natürlich interpretiert der Atmega die Leitung immer als low..da geht garnichts (trotz aktivierter, interner Pullup Widerstände). Hier ist ein Link zum Schaltplan bzw zur Beschreibung des Sensors http://www.hygrosens.com/fileadmin/user_upload/Sho... Könnte Sich bitte jemand die Mühe machen und mir erklären wie der Sensor richtig an den Mikrocontroller-Eingang angeschlossen gehört? Habe leider noch nicht so viel Erfahrung mit der Materie. Vielen Dank schonmal! Grüße
Datum: 13.05.2008 10:15
Hallo, ich hab mir mal den Schaltplan des Sensormoduls im Datenblatt angesehen. Eigentlich sollte der Ausgang bei keiner "Anwesenheit" auf 5V sein. Kann es sein, daß der Sensor durch Deine persönlich Anwesenheit ständig durchsteuert und deshalb auf "0" ist ??? Ich habe gelesen das er eine Empfindlichkeit von 4-12m hat.
Datum: 13.05.2008 11:46
Hallo, vielen dank für die Information! Der Sensor besitzt die Möglichkeit, die Empfindlichkeit per Lötbrücke einzustellen. Diese steht im Moment auf maximal, sprich 8m. Bin mir nicht sicher ob ich den Sensor auslöse..wenn er vom Körper weg zeigt (z.B. gegen die Wand) solle er doch nichtsmehr messen können ?! Werde mal die niedrigste Empfindlichkeitsstufe probieren und dann hier berichten. Kann ich den Sensor also direkt mit dem Ausgangsport an den Eingang des Atmega anschließen (ohne zus. Widerstand)? Ach ja, noch etwas, muss die Spannungsversorgung des Sensors identisch mit der der Atmega8 Schaltung sein oder kann ich den Sensor mit einem 5V Netzteil betrieben und den Mikrocontroller mit einem anderen Netzteil? Wäre natürlich auch möglich dass der Sensor irgendwie defekt ist... Danke für die Mühe!
Datum: 13.05.2008 14:14
Hallo, von den Sensoren habe ich einige im Betrieb. Nach dem Anlegen der Betriebsspannung schaltet das Teil für einige Zeit (ca. 1 Minute ?) auf Masse (oder möglicherweise auch VCC) ... Etwas Geduld haben, dann liegt am "analogen" Ausgang die halbe Betriebsspannung an und schlägt nach "oben" und "unten" aus, sobald der Sensor etwas detektiert.
Datum: 13.05.2008 14:39
Hallo zusammen! Ich habe mir das oben genannte Datenblatt ( http://www.hygrosens.com/fileadmin/user_upload/Sho... )auch mal angeschaut. Leider werd' ich daraus nicht ganz schlau, also rein interessehalber: 1) Ich sehe da nur einen JFET, d.h. wenn überhaupt verfügt der Sensor über einen open-drain-Ausgang?! 2) Welcher der im Schaltplan eingezeichneten Widerstände soll da der Pull-Up sein? 3) Was bewirkt die Diode D2?? Wenn der Ausgang (out) wirklich open-collector (oder open-drain) ist und ich lege dort die im Datenblatt angegebenen 30V an (über ext. pull-up) dann sorgt D2 doch für einen (nahezu) Kurzschluss gegenüber der 5V-Betriebsspannung?! Wie gesagt, ich stelle die Fragen nur aus reiner Neugierde. Schöne Grüße, Alex Ach so, noch was zum Thema: Ich würde mich nicht drauf verlassen, dass der Sensor, wenn du ihn von dir weg hältst, nichts wahrnimmt. Ich würde den kompletten Sensorbereich an deiner Stelle mit irgendetwas lichtdichtem gut verdecken und es dann nochmal versuchen.
Datum: 13.05.2008 15:42
@ Gast,
du hast vollkommen recht, dieses Verhalten habe ich auch schon
festgestellt. Der Sensor hat wohl so etwas wie eine
Einschaltverzögerung. Danach liegen am Analogausgang 2,56V an. Wird
etwas detektiert, fällt die Spannung kurz auf ca. 0,5V und steigt danach
auf 3,5V bevor sie sich wieder auf den 2,56V einpendelt. Wie benutzt du
diesen Sensor dann um etwas zu schalten? A/D Wandler am Mikrocontroller?
Das wäre jetzt meine Idee gewesen... allerdings müsste man dann erstmal
sehen welche Messwerte der Atmega8 vom Sensor liest (->Per RS232
monitoren)...aufwendig
@ alex22,
nach dem PullUp habe ich auch schon gesucht .. allerdings versprechen
die in der Anleitung einen solchen ("2,2K Pullup", "Ruhemodus xxmA,
Ausgang: HIGH"..)
hab dem Hersteller mal ne Email geschickt, er möge doch bitte bestätigen
dass es sich tatsächlich um einen opencollector Ausgang handelt -> mal
sehen was kommt.
Habe den Sensor schonmal per Verlängerungskabel in einen anderen Raum
gebracht..selbes Verhalten.
Wofür hat man einen Digitalausgang der dann doch nicht funktioniert...
ich verstehe es langsam nichtmehr.
Grüße
Datum: 14.05.2008 09:22
@ Thorsten S. meine Auswertung sieht wie folgt aus: Bei ersten Tests hatte ich festgestellt, dass der "digitale" Ausgang sich schon mal stören lässt (etwa durch Einschalten einer Halogenlampe im näheren Umfeld). Daher habe ich auf diese, sicherlich einfachere Auswertung dieses Ausgangs verzichtet. Statt dessen messe ich mittels ADC den "analoge" Ausgang des PIR (ca. 10x Sek.). Der Neutralwert liegt bei 128 +- , sofern Vref == VPir und der ADC auf 8Bit Auflösung reduziert wird (reicht völlig aus). Nach meiner Erfahrung erzeugen schwache Bewegungen (wenn die "Empfangkeulen" des Sensors in großer Entfernung durchquert werden) leichtere Schwankungen der Ausgangsspannung, die immer um den Mittelwert schwankt. In näherer Entfernung oder bei starken Temperaturunterschieden schlägt die Ausgangsspannung dann bis GND bzw. VCC durch. Ich differenziere bei der Auswertung zwischen "leichten" Spannungswechseln und "starken" Spannungswechseln (wenn fast GND/VCC erreicht werden). Wichtig ist, dass bei einer Bewegung quer zum Sensor auf eine negative Spannungsabweichung immer eine positive folgt - unabhängig vom Spannungspegel. Um keine Fehlalarme zu erhalten, schalte ich erst dann, wenn mindestens x "kleine" Spannungswechsel oder y "starke" Spannungswechsel innerhalb eines Zeitfensters von z Sekunden erfolgen. Und als mc verwende ich einen kleinen Tiny15. Geht natürlich auch auf einem Mega8. mfg
Datum: 14.05.2008 11:56
Hallo Gast, klingt nach einem beinahe genialen Konzept, vielen Dank für die Information. Programmierst du deinen Tiny in Assembler oder in C? Wäre interessant gewesen ein paar Einblicke in die Software zu bekommen. Wie hast du das Verhalten des Sensors so detailliert herausgefunden? Grüße
Datum: 14.05.2008 13:21
@ Thorsten S. ob das Konzept wirklich genial ist, naja ... aber zumindest läuft es seit 2 Jahren. Und heute würde ich den Code wahrscheinlich anders formulieren. Aber egal, wenn du dich durchwurschteln willst, den ASM-Code kannst du gerne haben. Das Programm schaltet übrigens nur das Licht ein - und wenn länger als 30 (?)Minuten keine Bewegung erkannt wurde, dann schaltet es wieder aus. Die freien Ports wurden für LED's genutzt, die zeigen, was der PIR so gerade tut (Initialisierung bzw. Erkennung von Bewegung). mfg
Datum: 14.05.2008 14:52
Hallo Gast, vielen dank für den Code. Finde die Sache ist sehr strukturiert aufgebaut und besonders das Konzept finde ich klasse .. eben optimal an das Verhalten des Sensors angepasst. Jetzt noch eine kleine Frage: Sehe ich richtig dass du als Referenzspannung eine externe, nämlich die Versorgungsspannung des Sensors selbst nutzt? Finde ich jedenfalls super dass du mir hier ein bisschen helfen konntest, die analoge Auswertung des Sensors scheint doch die deutlich präzisere Lösung zu sein! Werde mich am WE mal daran versuchen, jetzt ist erstmal uni dran... grüße
Datum: 14.05.2008 16:18
@ Thorsten S. bezüglich der Referenzspannung: ja. Bei diesem Programm kommt es nicht darauf an, eine konkrete Spannung mit einem absoluten Wert zu ermitteln (deswegen ist die Höhe der Referenzspannung auch ziemlich gleichgültig). Wichtig ist nur, dass im Ruhezustand der Sensor die halbe Versorgungs- spannung ausgibt - egal, ob das nun 2.35 oder 2.49 Volt sind. Deswegen hängen mc und Sensor an ein und derselben Spannung. Gibt der ADC nun im 8-Bit Modus 128 aus, dann liegt genau die halbe Versorgungs- (=Referenz-)Spannung an. Die Höhe der Spannung darf sich übrigens auch ändern, denn die Hälfte ist bei allen Spannungen am mc immer der Wert 128 (+-). mfg
Antwort schreiben
Die Angabe einer Email-Adresse ist freiwillig. Wenn Sie automatisch per Email über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.
Wichtige Regeln - erst lesen, dann posten!
- Suchfunktion und Betreffsuche benutzen - vielleicht gibt es schon einen ähnlichen Beitrag
- Aussagekräftigen Betreff wählen
- Im Betreff angeben um welchen Controllertyp es geht (AVR, PIC, ...)
- Groß- und Kleinschreibung verwenden
- Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang
- JPEG-Dateien (.jpg) nur für Fotos und Scans verwenden
- Schaltpläne, Screenshots usw. als PNG oder GIF anhängen
Formatierung (mehr Informationen...)
- [c]C-Code[/c]
- [avrasm]AVR-Assembler-Code[/avrasm]
- [pre]vorformatierter Text (z.B. Code in anderen Sprachen)[/pre]
- [math]Formel in LaTeX-Syntax[/math]
- [[Titel]] - Link zu Artikel