Forum: Mikrocontroller und Digitale Elektronik Atmega8 und PIR Sensor Conrad


von Thorsten S (Gast)


Lesenswert?

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

von madler (Gast)


Lesenswert?

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 
?

von Thorsten S. (Gast)


Lesenswert?

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/Shop/Sensormodule/PIR/PIR_STD_DBD.pdf

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

von Analog (Gast)


Lesenswert?

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.

von Thorsten S. (Gast)


Lesenswert?

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!

von Gast (Gast)


Lesenswert?

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.

von Alex B. (Firma: Ucore Fotografie www.ucore.de) (alex22) Benutzerseite


Lesenswert?

Hallo zusammen!

Ich habe mir das oben genannte Datenblatt ( 
http://www.hygrosens.com/fileadmin/user_upload/Shop/Sensormodule/PIR/PIR_STD_DBD.pdf 
)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.

von Thorsten S. (Gast)


Lesenswert?

@ 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

von Gast (Gast)


Lesenswert?

@ 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

von Thorsten S. (Gast)


Lesenswert?

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

von Gast (Gast)


Angehängte Dateien:

Lesenswert?

@ 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

von Thorsten S. (Gast)


Lesenswert?

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

von Gast (Gast)


Lesenswert?

@ 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

von Berthold (Gast)


Lesenswert?

Hallo!

Der Thread ist zwar schon einige Jahre alt - trotzdem möchte ich kurz 
meine Erfahrung mit den genannten Sensoren schildern:

2 Stk gekauft, mit 5V versorgt und den "digitalen Ausgang" an einen 
digitalen I/O pin (Eingang; interner Pull up aktiviert) eines AtMega8 
gehängt.

Es funktionierte alles super - ohne "Aufwärmzeit". Doch nach einigen 
Minuten war plötzlich kein Signal mehr am digitalen Ausgang des Sensors 
- bzw nur ganz gering: Multimeter zeigte kleine Signale (wenige mV) an - 
am Oszi war ein Rechteck mit Tastverhältnis 1:1 und Amplitude von ca. 2V 
zu sehen, wenn der Sensor eine Bewegung detektierte, und 0V wenn alles 
ruhig war.

Das kam mir komisch vor - ich dachte, dass ich vll irgendwann, irgendwie 
einen Fehler gemacht hätte und den Sensor zerstört hätte (wär nicht das 
erste mal, dass ich ein Bauteil/Modul zerstöre). Natürlich wurde 
stundenlang alles nachgeprüft, aber kein Fehler gefunden.

Also habe ich am nächsten Tag den zweiten Sensor ausgepackt, mit 
Spannung versorgt und den digitalen Ausgang gemessen -> selbes Ergebnis 
wie beim ersten Sensor....

Naütrlich habe ich diesen Thread schon gekannt, und habe auch lange 
"Aufwärmzeiten" ausprobiert. Aber bei meinen Exemplaren liegt Vref und 
die analoge Ausgangsspannung eigentlich sofort nach dem Einschalten an 
den Pins an.

Um die Sensoren noch nutzen zu können, lese ich jetzt einfach den 
analogen Wert mit ADC vom Atmega8 ein und vergleiche gegen einen 
Schwellwert.

Fazit: der digitale Ausgang des ersten Sensors hat ganz sicher für 10 
Minuten funktioniert! Der zweite Sensor zweigte von Anfang an dieses 
komische Verhalten am digitalen Ausgang.

mfg

von geschockter (Gast)


Lesenswert?

Wer kauft den teuren sensor denn bei conrad ??? den gibt es fuer 2,99 
bei ebay...

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
Noch kein Account? Hier anmelden.