www.mikrocontroller.net

Forum: Mikrocontroller und Elektronik Atmega8 und PIR Sensor Conrad

Autor: Thorsten S (Gast)
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
Autor: madler (Gast)
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
?
Autor: Thorsten S. (Gast)
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
Autor: Analog (Gast)
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.
Autor: Thorsten S. (Gast)
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!
Autor: Gast (Gast)
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.
Autor: Alex Bürgel (alex22) Benutzerseite
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.
Autor: Thorsten S. (Gast)
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
Autor: Gast (Gast)
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
Autor: Thorsten S. (Gast)
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
Autor: Gast (Gast)
Datum: 14.05.2008 13:21
Dateianhang: tn15-Bewegungsmelder-05.zip (5 KB, 13 Downloads)

@ 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
Autor: Thorsten S. (Gast)
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
Autor: Gast (Gast)
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






webmaster@mikrocontroller.netImpressumWerbung auf Mikrocontroller.net