Forum: Mikrocontroller und Digitale Elektronik IR - Handsensor


von edgar 3. (edgar339)


Angehängte Dateien:

Lesenswert?

Dies ist nun mein erstes "richtiges" Projekt(die ganzen LED-Blinker 
zählen nicht). Es geht darum, dass eine LED angeschaltet werden soll, 
wenn man seine Hand über die Schaltung hält. Also wie bei den 
Handtrocknern, die überall rumhängen.
Ich habe dazu eine IR-LED mit Vorwiderstand, einen Phototransistor (auf 
dem Schaltplan ein DLR), einen ATmega8(ich weiß, oversized, aber ich hab 
noch nie was mit ext. Quarzen gemacht und hab gerade keinen andren µC 
da) und ne LED mit Vorwiderstand verwendet.
Erst hab ich die IR-LED direkt versorgt (-> immer an) und nur den 
Widerstand der Phototransistors ausgelesen und an einer bestimmten 
Schwelle umgeschaltet, denn nach meiner damaligen Anfänger-Denkweise: 
Keine Hand -> Kein reflektierender Körper -> lein Licht am Empfänger -> 
hoher Widerstand oder Hand -> reflektierender Körper -> Licht am 
Empfänger -> niedriger Widerstand
Das das aufgrund von Beleuchtung, Schatten derer usw. nicht geht muss 
ich wohl nicht sagen.
Nun die neue Idee: Die IR-LED wird gepulst und es wird einmal mit und 
einmal ohne IR-LED gemessen. Somit müsste der Faktor Beleuchtung doch 
eigentlich ausgeschlossen sein? Ober habe ich (mal wieder) einen 
Denkfehler drin, oder einen entscheidenden Faktor vergessen? 
Ausprobieren kann ich das leider erst in ein paar Tagen (neuer PC -> 
kein RS-232 -> USB-Programmer muss her)
Ach und sind die Bauteile eigentlich geeignet(insbesondere der 
Phototransistor, sonst muss ne Photodiode her...)?
Kann das alles so funktionieren?

edgar339

von Xyz X. (Firma: xyz) (khmweb)


Lesenswert?

Hmmm... braucht man dazu einen µC? Wie wäre es mit einem kapazitivem 
Näherungsschalter oder einem Infrarot-Bewegungsmelder?

von Je. Mand (Gast)


Lesenswert?

Ich würde mich mal mit dem A/D-Wandler beschäftigen. Meiner Meinung 
bekommst Du aus dem Sensor nicht genug Dampf raus, um mit den A/D-Signal 
etwas anfangen zu können. Dein Multimeter (10MOhm Eingangswiderstand) 
mag ja unter den gegebenen Umständen glücklich sein, die A/D-Wandler von 
Mikroprozessoren spielen, Eingangswiderstandsmäßig, in einer ganz 
anderen Liga.

von edgar 3. (edgar339)


Lesenswert?

Karl-Heinz M. schrieb:
> Hmmm... braucht man dazu einen µC? Wie wäre es mit einem kapazitivem
> Näherungsschalter oder einem Infrarot-Bewegungsmelder?

Diese Geräte enthalten so weit ich weiß auch µCs (ich lasse mich gerne 
eines besseren belehren) und mir geht es eher um den Lerneffekt und die 
Herausforderung beim Bau als die Nutzung des Endgerätes. Ansonsten hätte 
ich diese Geräte benutzt.

von edgar 3. (edgar339)


Lesenswert?

Je. Mand schrieb:
> Ich würde mich mal mit dem A/D-Wandler beschäftigen. Meiner Meinung
> bekommst Du aus dem Sensor nicht genug Dampf raus, um mit den A/D-Signal
> etwas anfangen zu können. Dein Multimeter (10MOhm Eingangswiderstand)
> mag ja unter den gegebenen Umständen glücklich sein, die A/D-Wandler von
> Mikroprozessoren spielen, Eingangswiderstandsmäßig, in einer ganz
> anderen Liga.

Ganz so hoch liegt der Widerstand zwar nicht, aber das könnte ein echtes 
Problem sein...
Währe eine Verstärkerschaltung sinnvoll?

von Alex (Gast)


Lesenswert?

>> Währe eine Verstärkerschaltung sinnvoll?
Auf jeden Fall, dann kannst du dir wahrscheinlich auch den A/D sparen 
(und den µC - uups)...

von edgar 339 (Gast)


Lesenswert?

Ne, ich brauch den Controller, da es später ne ein/aus Funktion werden 
soll. ^^
Ist es egal, welchen Transistor nehme(hoher Verstärkungsfaktor is schon 
klar)?

von Xyz X. (Firma: xyz) (khmweb)


Lesenswert?

edgar 339 schrieb:
> Diese Geräte enthalten so weit ich weiß auch µCs

Nein, nicht unbedingt. Es reichen dazu aktive Bauelemente wie 
Transistoren oder TTL ICs. Einfach mal googeln.

Klar, zum Lernen ist es egal, ob es auch anders geht.

von Thomas E. (thomase)


Lesenswert?

edgar 339 schrieb:
> Nun die neue Idee: Die IR-LED wird gepulst und es wird einmal mit und
> einmal ohne IR-LED gemessen. Somit müsste der Faktor Beleuchtung doch
> eigentlich ausgeschlossen sein?
Funktioniert hervorragend.

edgar 339 schrieb:
> Währe eine Verstärkerschaltung sinnvoll?
Nein. Aber den Phototransistor wie einen Transistor zu schalten, wäre 
sinnvoll. Das ist doch kein Vorwiderstand.
Die Basis deines Transistors ist die Beleuchtung. An den Kollektor 
hängst du einen Widerstand gegen Vcc. 3-10K, musst du ein bisschen 
probieren. Emitter an GND und den Kollektor an den ADC. Dann kannst du 
mit dem AD-Wandler wunderbar messen. Und da ist absolut nichts zu 
niederohmig.

mfg.

von Xyz X. (Firma: xyz) (khmweb)


Lesenswert?

oder einen 10k Trimmer zw. GND und Emitter. Man kann dann auch den ADC 
am Emitter statt am Kollektor anklemmen und den Kollektor an Vcc.

von edgar 339 (Gast)


Lesenswert?

Thomas Eckmann schrieb:
>> Währe eine Verstärkerschaltung sinnvoll?
> Nein. Aber den Phototransistor wie einen Transistor zu schalten, wäre
> sinnvoll. Das ist doch kein Vorwiderstand.
> Die Basis deines Transistors ist die Beleuchtung. An den Kollektor
> hängst du einen Widerstand gegen Vcc. 3-10K, musst du ein bisschen
> probieren. Emitter an GND und den Kollektor an den ADC. Dann kannst du
> mit dem AD-Wandler wunderbar messen. Und da ist absolut nichts zu
> niederohmig.

Danke für die ausführliche Erklärung. Klingt als ob du das schon mal 
gemacht hast. :)
Der ADC misst dann wie viel Spannung über dem Widerstand abfällt, 
richtig?
Also müsste ich das Programm ein bisschen umschreiben, da ja bei 
Lichteinfall auf den Transistor WENIGER Spannung über den Widerstand 
abfällt, ja?

von Xyz X. (Firma: xyz) (khmweb)


Lesenswert?

edgar 339 schrieb:
> Also müsste ich das Programm ein bisschen umschreiben, da ja bei
> Lichteinfall auf den Transistor WENIGER Spannung über den Widerstand
> abfällt, ja?

Überleg mal: Bei Lichteinfall wird die Kollektor-Emitterstrecke leitend. 
Vorher war sie hochohmig.

von edgar 339 (Gast)


Lesenswert?

Ach stimmt ja, über dem größerem Wiederstand fällt die meiste Spannung 
ab nicht anders herum... Ich sollte wohl besser schlafen gehen...

von edgar 339 (Gast)


Lesenswert?

Die Rechtschreibfehler sind der Android-Tastatur zuzuschreiben. ;)

von Thomas E. (thomase)


Lesenswert?

edgar 339 schrieb:
> Also müsste ich das Programm ein bisschen umschreiben, da ja bei
> Lichteinfall auf den Transistor WENIGER Spannung über den Widerstand
> abfällt, ja?
1
    ADMUX |= (1 << REFS0) | (1 << MUX1);
2
    ADCSRA |= (1 << ADEN) | (1 << ADSC);  //ADC ein, Start ADC          
3
    while(ADCSRA & (1 << ADSC));      //ADC Ready?          
4
5
    nAdcOff = ADC;
6
    PORTB |= (1 << 1);            //IR-Led ein
7
    ADCSRA |= (1 << ADSC);          //Start ADC
8
9
    while(ADCSRA & (1 << ADSC));      //ADC Ready?
10
    nAdcOn = ADC;
11
    PORTB &= ~(1 << 1);            //IR-Led aus
12
    if ((nAdcOff - nAdcOn) <= IR_THRESHOLD) StopMotor();

In diesem Sinne. So wie in der letzten Zeile, musst du das eben 
andersrum rechnen. Ist zwar kein Basic aber sollte trotzdem klar sein.

edgar 339 schrieb:
> Ach stimmt ja, über dem größerem Wiederstand fällt die meiste Spannung
> ab nicht anders herum... Ich sollte wohl besser schlafen gehen...
Nee nee. Du warst schon auf dem richtigen Weg.

edgar 339 schrieb:
> Der ADC misst dann wie viel Spannung über dem Widerstand abfällt,
> richtig?
Gegen GND misst du die Spannung über dem Transistor. Und die sinkt mit 
zunehmender Beleuchtung.

mfg.

von Xyz X. (Firma: xyz) (khmweb)


Lesenswert?

edgar 339 schrieb:
> Ach stimmt ja, über dem größerem Wiederstand fällt die meiste Spannung
> ab nicht anders herum...

Fällt ein Lichtstrahl auf den Sensor, dann ist der Transistor 
niederohmig und die Spannung am Widerstand liegt in der Nähe von Vcc. 
Wird der Lichtstrahl unterbrochen, dann wird der Transistor hochohmig 
und die Spannung geht gegen 0.

Ja, wie beim Ohmschen Gesetz: U = I x R. Steigt der Wert des 
Multiplikators R, dann steigt auch das Produkt U.

von Thomas E. (thomase)


Lesenswert?

Karl-Heinz M. schrieb:
> ällt ein Lichtstrahl auf den Sensor, dann ist der Transistor
> niederohmig und die Spannung am Widerstand liegt in der Nähe von Vcc.

Karl-Heinz M. schrieb:
> oder einen 10k Trimmer zw. GND und Emitter. Man kann dann auch den ADC
> am Emitter statt am Kollektor anklemmen und den Kollektor an Vcc.

Jetzt mal Schluss mit der Verwirrung.
In meinem Beispiel liegt der Widerstand zwischen Kollektor und Vcc. Und 
dann ist es eben andersrum. Ja, natürlich kann er da auch einen Trimmer 
einsetzen. Hätte als Hinweis gereicht.

Aber nein. Ich weiss aber was besseres. Hast du das nötig?

mfg.

von Xyz X. (Firma: xyz) (khmweb)


Lesenswert?

Thomas Eckmann schrieb:
> Ich weiss aber was besseres. Hast du das nötig?

Die Frage geht an Dich zurück. Ich hab nicht behauptet, etwas Bessres zu 
wissen?? Wie kommst Du darauf? Weshalb hast Du so ein Verhalten mir 
gegenüber nötig?

Es ist egal und nichts Bessres, ob der im Emitter oder im Kollektor 
liegt, der Transistor wird leitend bei Lichteinfall, oder nicht? Die 
Spannung am Widerstand ist in beiden Fällen so hoch wie die Vcc. Siehe 
Hinweis zum Ohmschen Gesetz. Der Spannungsabfall am Arbeitswiderstand 
kann mit einer Messung geprüft werden.

Btw, wenn der im Emitter liegt (das war auch ein Hinweis und nix 
andres!), wäre keine Umkehr der Abfrage nötig gewesen. Wobei es aber 
auch noch darauf ankommt, welcher Zustand festfestellt werden soll: 
Lichteinfall oder Unterbrechung des Lichteinfalls.

Weiter frage ich mich, weshalb der Sensor am ADC liegt, obwohl keine 
Variable sondern nur der Zustand Ein / Aus festgestellt werden soll. 
Hierzu würde ein Anschluss an PINx genügen.

von edgar 3. (edgar339)


Angehängte Dateien:

Lesenswert?

Ok, jetzt blick ich durch. Die Grundlagen der Reihenschaltung sollte ich 
mir wohl besser noch mal ansehen...
Das mit dem Trimmer habe ich mir schon gedacht.

Danke für eure Anregungen.
Ist alles richtig so?

von Thomas E. (thomase)


Lesenswert?

edgar 339 schrieb:
> Ist alles richtig so?
So geht das.
edgar 339 schrieb:
> Das mit dem Trimmer habe ich mir schon gedacht.
Den Widerstand solltest du allerdings nicht einfach so durch einen 
Trimmer erstzen, sondern einen kleinen Widerstand, zB. 1K, in Reihe 
schalten. Sonst riskierst du beim Auf-Anschlag-drehen, daß du Vcc direkt 
auf den Kollektor legst, was der Transistor dann mit üblem Ampere-Geruch 
quittieren könnte.

mfg.

von edgar 3. (edgar339)


Lesenswert?

Hab Trimmer die wirklich nur von 1kΩ bis 10kΩ gehen. ^^

von Xyz X. (Firma: xyz) (khmweb)


Lesenswert?

edgar 339 schrieb:
> Die Grundlagen der Reihenschaltung sollte ich
> mir wohl besser noch mal ansehen...

Obwohl Du schon richtig davor warst. Das Elektronik-Kompendium ist da 
empfehlenswert, falls Du selbst keine Fachliteratur hast.

http://www.elektronik-kompendium.de/sites/slt/0110191.htm

Gerade im Experimentierstatus kann man Trimmer sehr gut einsetzen, die 
man entweder vorsichtig bedient oder aber den Fototransistor mittels 
Vorwiderstand vor zu hohem Strom schützt. Der Bereich 1k bis 11k ist ok 
als Gesamtwiderstand (Vorwiderstand 1K, Trimmer 10k). Max. möglicher 
Strom der Kollektor-Emitterstrecke, wenn er niederohmig durch 
Lichteinfall wird:

I = U / R
5V / 1000 = 5mA (Ic max)

K. A. welchen Fototransistor Du nutzt, aber der BTX81 z. B. vertägt typ. 
50mA lt. Datenblatt (durch den Emitter fliesst derselbe Strom, da die 
Basis offen ist). Am Besten ins Datenblatt Deines Fototransistors 
schauen, Wert errechnen, ausprobieren.

Btw, ein solches Vorhaben wurde auch schon hier besprochen:
Beitrag "Schaltvorhaben verständnisproblem (Fototransistor, ATMega8, Transistor)"

von edgar 3. (edgar339)


Lesenswert?

Danke

von Xyz X. (Firma: xyz) (khmweb)


Lesenswert?

Wie ist denn der Stand? Erfolge? Probleme?

von edgar 3. (edgar339)


Lesenswert?

Kein USB-Programmiergerät... :(
Morgen kann ich es aber aufbauen.

von edgar 3. (edgar339)


Angehängte Dateien:

Lesenswert?

So sollte es doch gehen, oder?

von edgar 3. (edgar339)


Angehängte Dateien:

Lesenswert?

Neuer Code.

von edgar 3. (edgar339)


Lesenswert?

Er schreibt...

von edgar 3. (edgar339)


Lesenswert?

Der USB-UART Brückenchip ist Schrott :/
Es wird also hier lange nichts folgen...
Ich danke allen die sich die Zeit genommen haben um mir zu helfen. Ich 
werde hoffentlich alleine weiter kommen.

edgar339

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.