ATMega8a-PU ADC für PIR Sensor (ADC Einstellungen)

OP #4505677
Lesenswert?

Hallo,
ich bin gerade über meiner Studienarbeit und soll aus einem PIR Sensor 
Signal eine Bewegung erkennen. Mein Problem ist, dass ich schon mal ein 
halbwegs vernünftiges Signal hatte. Jedoch war das Programm vom 
Unterricht und ich komme jetzt nicht mehr an die ADC Einstellungen.
Kurz: Ich weiß dass es geht, weiß aber nicht wie :-(


Verwendet wird:
ATMega8A-PU
LHI 878RF mit Minimalbeschaltung laut Datenblatt
SiSy C++ zur Programmierung


Was soll rauskommen:
Der Sensor liefert am Ausgang ca 0,82V bis 0,89V (Multimeter). Als 
Ausgangssignal kommt eine sehr kleine Spannungsspitze. Multimeter ist 
zur Erfassung zu langsam, Oszi zu schnell.

Zuvor hatte ich ein Signal von ca 2 bis ca 72 von 256(1Byte) bei starker 
Bewegung. Also ein Ausschlag von ca +-35. Signallänge ca 100-200ms.
Der Wert im Ruhezustand war ca 45-50. Nun ist es 100 bei 2,56V. 
Vermutung liegt nahe, dass es Vref(5V) war.


Das kommt raus:
Ein Signal welches nur um ca +-1 ausschlägt. Damit kann ich nichts 
erfassen. Je nach Vref ca 50 oder ca 100 als Mittelwert.


Bisherige Versuche:
ADC läuft auf 10Bit(Maximum) im FreeRunning Modus.
Abfrage per UART von 100ms auf 10ms (falls sich das Signal "versteckt") 
hat nichts gebracht.
ADMUX:
REFS habe ich die Referenzspannung auf 2,56V eingestellt, damit kam ich 
auf +-2. Die anderen Einstellungen brachten keinen Vorteil. 1,1V hat er 
laut Datenblatt nicht.
ADPS Einstellungen brachten eher eine Verschlechterung (115kHz, 230kHz, 
57,5kHz).
Eine Verstärkung wäre naheliegend. Ist jedoch laut Datenblatt nicht 
enthalten.
Mehr konnte ich aus dem Datenblatt und Suche zur ADC Signalverbesserung 
nicht entnehmen.

Frage am Rande:
https://www.mikrocontroller.net/articles/AVR-Tutorial:_ADC
Was bedeutet bei der Kanalwahl(MUX) die 1,23V Vbg? Ist das mit den 0V 
zum Kalibrieren des ADC?

Sensor funktioniert, auf ein Feuerzeug reagiert er mit einem schön 
großen Ausschlag. Das ist aber nicht Sinn der Sache, den Bewegungsmelder 
mit einem Feuerzeug zu schalten ;-)
Am Aufbau wurde nichts verändert, nur am Programm. Irgendwo muss da noch 
was sein, womit man den Ausschlag des Signals verstärkken kann.

Danke für die Hilfe.
Gast #4505738
Lesenswert?

Heinz M. schrieb:
> Was bedeutet bei der Kanalwahl(MUX) die 1,23V Vbg? Ist das mit den 0V
> zum Kalibrieren des ADC?

Du schaltest damit nur alle Kanäle quasi weg und hängst vor dem ADC, an 
dessen Eingang, eine Spannung von 1,23 Bandgap. Im net mal Bandgap 
eingeben was das ist.
(Bandabstandsreferenz) ;-)

Programm und Schaltplan fehlt.
OP #4505786
Lesenswert?

Schaltung:
VCC des PIR mit 10Ohm gegen 5V vom Controller
GND mit GND
Signalleitung mit 47kOhm und 22µF gegen GND

Gemessen wir direkt an der Signalleitung gegen Masse. Also über die 
47kOhm und 22µF.
Es ist für die ganze Studienarbeit wichtig die Minimalbeschaltung 
beizubehalten. Wie gesagt hatte ich mit der Beschaltung bereits ein 
Signal.

Programm:
Es wurden die Bibliotheken von SiSy verwendet und die grafische 
Oberfläche. Hier mal als Pseudocode:
1
//onStart
2
ADMUX = (1<<REFS0)
3
ADMUX = (1<<REFS0)
4

5
//ADMUX = (1<<ADPS0) //Auskommentiert weil liefert nur noch Vollausschlag(256)
6
//ADMUX = (0<<ADPS1)
7
//ADMUX = (1<<ADPS2)
8

9
//onWork
10
uint8_t wert; //vordersten zwei Bits des ADC sind unwichtig, da die Spannung zu klein ist
11
wert=sensor2.getValue(); //Sensor2 ist ein fertiges Unterprogramm, was den adc abfragt -> kein Code von mir
12
ControlCenter.writeByte(wert); //ControlCenter ist die UART Schnittstelle

Mal sehen, ob ich in dem ADC Unterprogramm noch was finde.


Danke für die Erklärung von Vbg.
(Firma: TravelRec.) Persönliche Seite #4507020
Lesenswert?

Heinz M. schrieb:
> Das kommt raus:
> Ein Signal welches nur um ca +-1 ausschlägt. Damit kann ich nichts
> erfassen. Je nach Vref ca 50 oder ca 100 als Mittelwert.

So ein PIR hat einen verdammt kleinen Hub. Du brauchst einen 
Differenzverstärker, der aus der klitzekleinen Spannungsspitze ein 
Signal von mehreren hundert mV bei wenig Bewegung vor der aktiven Fläche 
erzeugt. Also Verstärkungs-Faktor 500-1000 wäre schon nicht schlecht. 
Für den Sensor selbst ist noch eine Fresnellinse zu empfehlen, die die 
IR-Strahlung aus dem geplanten Erfassungsbereich auf den Sensor im 
Brennpunkt bündelt.
OP #4508954
Lesenswert?

Ich bin jetzt auf die Referenzspannung gegangen. Ich kann per Programm 
schon mal erfassen, dass sich meine Hand 3cm über dem Sensor befindet. 
Für Lehrzwecke im Notfall ausreichend. Schön ist es noch nicht.

Hat vielleicht noch jemand eine Idee, was da Programm/adc mäßig anders 
gewesen sein könnte?

@Knut: Fresnellinse habe ich. Dürfte aber nicht die Beste sein.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren