Forum: Mikrocontroller und Digitale Elektronik Led als Touch Sensor


von Michel (Gast)


Lesenswert?

Hallo
Ich habe den Auftrag bekommen ein Mühlespiel zu machen. Die 
Anforderungen sind zum einen, dass die LED's auch als Touchsensoren 
dienen.
Ich habe schon diverse Sachen über das gelesen. Das mit Umpolen ist mir 
klar, aber wie kann ich die Zeit der Entladung mit dem Mikrocontroller 
messen?
Gibt es da auch extra Bauteile die dies übernehmen?
Vielen Dank im Vorraus
Michel

von Michael (Gast)


Lesenswert?

Fertige ICs gibt es nicht, einfach googeln. Das ist doch nicht so 
schwer. Ehrlich ich finde da tausende Projekte.

von Michel (Gast)


Lesenswert?

Michael schrieb:
> Ehrlich ich finde da tausende Projekte.

Ich finde da nur beiträge wie sie ein LED Array benutzten. Ich muss es 
aber mit einzelnen LED's machen ...

von Harald W. (wilhelms)


Lesenswert?

Michel schrieb:

> Ich muss es aber mit einzelnen LED's machen ...

Ein Mühlespiel mit einer einzelnen LED? Etwas seltsam.
Gruss
Harald

von Michel (Gast)


Lesenswert?

Einzelnen LED's im Sinn von in jeder Ecke vom Spiel ist ein LED. D.h am 
Anfang vom Spiel setzen beide Spieler die "Steine" bei ausgeschalteten 
LED's. Mit einzeln meine ich halt nicht in einem Array.

von Michel (Gast)


Angehängte Dateien:

Lesenswert?

Dort wo die Punkte sind kommen LED's hin

von Michael H. (michael_h45)


Lesenswert?

Du hast die Intention der Aussage
Harald Wilhelms schrieb:
> Ein Mühlespiel mit einer einzelnen LED? Etwas seltsam.
nicht verstanden. Ich würde dir empfehlen, nachzudenken.

von Elektriker Horst (Gast)


Lesenswert?

Und warum kannst du die LEDs jetzt nicht im Array verschalten und 
ansteuern?

von Michel (Gast)


Lesenswert?

Ja natürlich nicht nur mit einer LED. Es werden 24 LED's auf dem 
Spielfeld sein.

von Michel (Gast)


Lesenswert?

Elektriker Horst schrieb:
> Und warum kannst du die LEDs jetzt nicht im Array verschalten und
> ansteuern?

Weil ich nicht weis wie ich die Kapazität messen soll (nach er Umpolung 
vom LED).

von Harald W. (wilhelms)


Lesenswert?

Michel schrieb:

> Einzelnen LED's im Sinn von in jeder Ecke vom Spiel ist ein LED. D.h am
> Anfang vom Spiel setzen beide Spieler die "Steine" bei ausgeschalteten
> LED's. Mit einzeln meine ich halt nicht in einem Array.

Da Du ja wohl minestens 24LEDs hast, wäre es schon sinnvoll sie in
ein Array zu verschalten.
Gruss
Harald

von Michel (Gast)


Lesenswert?

Ich habe diese Seite gefunden: 
http://web.archive.org/web/20060720102458/http://motestruments.com/led-touch-sensor-circuit/
Ich komme aber mit dem Schritt 3 nicht klar.

Harald Wilhelms schrieb:
> Da Du ja wohl minestens 24LEDs hast, wäre es schon sinnvoll sie in
> ein Array zu verschalten.

Das wäre schon schlau aber bevor ich dies mache müsste ich wissen wie 
der Schritt 3 geht.
Gruss

von Sebastian (Gast)


Lesenswert?

Indem die LED im einfachsten Fall zwischen zwei Ports des AVR hängt, die 
sind H/L umschaltbar.
Danach sofort als eingang und die zeit messen.

von Michel (Gast)


Lesenswert?

Sebastian schrieb:
> Indem die LED im einfachsten Fall zwischen zwei Ports des AVR hängt, die
> sind H/L umschaltbar.
> Danach sofort als eingang und die zeit messen.

Wie soll man die Zeit messen?

von Ralf (Gast)


Lesenswert?

> Wie soll man die Zeit messen?
Wie misst man bei Sportlern die Zeit? Indem man bis zu dem Zeitpunkt, an 
dem etwas passiert, zählt. In deinem Fall also zählen von "Pin als 
Eingang" bis "Pinzustand hat gewechselt".

Ralf

von Karl H. (kbuchegg)


Lesenswert?

Ralf schrieb:
>> Wie soll man die Zeit messen?
> Wie misst man bei Sportlern die Zeit? Indem man bis zu dem Zeitpunkt, an
> dem etwas passiert, zählt. In deinem Fall also zählen von "Pin als
> Eingang" bis "Pinzustand hat gewechselt".

Wobei, korrigier mich, wenn ich da unrecht habe, man die eigentliche 
Zeit ja gar nicht messen muss.
Es geht ja nur darum festzustellen ob der Finger drauf ist oder nicht.
D.h. was in Wirklichkeit interessiert ist die Fragestellung:
Nachdem die LED 'auf Eingang geschaltet wurde' und eine bestimmte 
Mindestzeit verstrichen ist, liegt dann am Eingang eine 1 an oder nicht? 
Je nachdem ist der Finger auf der LED drauf oder er ist es nicht.
Wieviel Zeit das in vertrauten Zeiteinheiten sind, ist hingegen nicht so 
interessant.

von Michel (Gast)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Nachdem die LED 'auf Eingang geschaltet wurde' und eine bestimmte
> Mindestzeit verstrichen ist, liegt dann am Eingang eine 1 an

Die Frage ist halt noch: ist es möglich dies bei einer ausgeschalteten 
LED zu machen? Denn nach dem Verfahren muss man ja das LED 1ms 
"anzünden".

von Rene H. (Gast)


Lesenswert?

Nein, das geht nicht. Mit dem "anzünden" lädst du ja die Kapazität die 
du dann messen willst. Ansonsten gibts nichts zu messen.
Wenn du dir Sorgen machst, das man das "blitzen" sehen kann. Ich denke 
eher nicht. 1 ms ist da zu schnell.

Grüsse,
René

von Vlad T. (vlad_tepesch)


Lesenswert?

Die eigentliche Frage ist die der Kalibrierung denke ich.
Im Dunkeln ist das Entladeverhalten der LED ein ganz anderes als im 
Hellen.
Man müsste also erst Referenzwerte sammeln und in diesem Moment sicher 
sein, dass niemand da rumtatscht.

Mir ist auch noch nicht ganz klar was gemessen wird. Tatsächlich eine 
Kapazitätsänderung durch die Nähe des Menschlichen Fingers oder eine 
Kapazitätsänderung durch Abschattung durch den Finger.

von Michel (Gast)


Lesenswert?

Rene H. schrieb:
> Nein, das geht nicht. Mit dem "anzünden" lädst du ja die Kapazität die
> du dann messen willst. Ansonsten gibts nichts zu messen.

Beim Spiel sind ja die LED's am Anfang ausgeschaltet. D.h das man dies 
nicht so lösen kann?

Rene H. schrieb:
> Wenn du dir Sorgen machst, das man das "blitzen" sehen kann. Ich denke
> eher nicht. 1 ms ist da zu schnell.

Ich habe es getestet und da man den Vorgang dauernd wiederholen muss 
leuchtet das LED schwach ...

von Rene H. (Gast)


Lesenswert?

Michel schrieb:
> Beim Spiel sind ja die LED's am Anfang ausgeschaltet. D.h das man dies
> nicht so lösen kann?

Wenn Du das Spiel in Betrieb nimmst, fängt dein µC an zu rennen und da 
musst du dann eben deine LEDs wiederholt 1ms "leuchten" lassen. Also, 
kann man.

Aber im Grunde hast du dir die Frage mit:

Michel schrieb:
> Ich habe es getestet und da man den Vorgang dauernd wiederholen muss
> leuchtet das LED schwach ...

schon selbst beantwortet.

Grüsse,
R.

von Ralf (Gast)


Lesenswert?

Eine zusätzliche  IR-LED bzw. ein Lichtsensor wäre keine Option?

Ralf

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Ein STM32F373 hat bis zu 24 Touch Sensing Eingänge.

Jetzt müsstest Du mal her gehen und Dir den Chip/Demo Board besorgen und 
schauen ob das Touch über LED geht.
Wenn ja, dann ist die Sache einfach:

- Der STM32F373 steuert die LED an während sie leuchten soll
- Macht die LED immer wieder für einige ms aus und währen dieser Zeit 
soll der Touch Sensor messen.

Vermutlich wirst Du eine 2-Farben LED je Punkt benötigen.

Nettes Projekt, wiedermal ideal für einen STM32

PS: das ist schon fast ein fertiger IC, musst nur noch proggen ;-)

von Michel (Gast)


Lesenswert?

Markus Müller schrieb:
> Ein STM32F373 hat bis zu 24 Touch Sensing Eingänge.

Das wäre natürlich super, aber der uC muss von Microchip sein.

Ralf schrieb:
> Eine zusätzliche  IR-LED bzw. ein Lichtsensor wäre keine Option?

Das würde zu viel Platz brauchen und wir sind jetzt schon knapp dran.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Na dann kratze doch das ST Logo ab und stemple das von Microchip drauf.

Noch etwas: Packe auf das Board ein Acceleration-Sensor. Um das Spiel 
neu zu beginnen legt man es auf den Kopf und dann "fallen" alle Steine 
heraus (LED's aus).

von Dominic A. (neo123)


Lesenswert?

Markus Müller schrieb:
> Na dann kratze doch das ST Logo ab und stemple das von Microchip drauf.

Ist doch nicht nötig. Selbst die kleinen PIC16 haben schon bis zu 24 
Touch Channels. Dafür braucht man keinen STM32.

von Michel (Gast)


Lesenswert?

Dominic A. schrieb:
> Selbst die kleinen PIC16 haben schon bis zu 24
> Touch Channels

Dann kann man dies auch mit diesen Channels lösen? Sie sind ja vor allem 
(soweit ich weiss) für M-Touch ausgelegt.

von Route_66 (Gast)


Lesenswert?

Hallo!
Die Rede ist hier immer von 24 LEDs. Gibt es nicht beim Mühlespiel zwei 
Farben? Also 24 zweifarbige sind 48 anzusteuernde!

von Guest (Gast)


Lesenswert?

Ich habe so etwas vor kurzem auch einmal probiert. Zwar nur ein 
Tic-Tac-Toe mit 9 LEDs aber das Prinzip war das gleiche.

Leider habe ich keine saubere Fingererkennung hinbekommen. Unter 
realistischen Bedingungen (wenig Umgebungslicht, seilicher Einfall) war 
die Meßgröße sehr klein und ist letzlich im Rauschen untergegangen. Ich 
habe deshalb relativ schnell aufgegeben.

Wenn Du es hinbekommst, würde mich schon interessieren, wie Du das genau 
gemacht hat.

von Dominic A. (neo123)


Lesenswert?

Michel schrieb:
> Dann kann man dies auch mit diesen Channels lösen? Sie sind ja vor allem
> (soweit ich weiss) für M-Touch ausgelegt.

Ich denke schon das dies möglich ist. Mtouch funktioniert ja auch 
mithilfe der Kapazität. Garantieren kann ich es jedoch nicht da ich mich 
selber noch zu wenig mit den Touch Channels beim PIC auseinander gesetzt 
habe.

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Wenn ich ds richtig verstehe, ändert sich die "Kapazität" der LED 
dadurch, daß duech die Berührung andere Lichtverhältnisse herrschen?

Oder wird wirklich die Kapazität von LED+Finger gemessen, d.h. das alles 
geht auch in finsterer Nacht?

Für eine Uhr hab ich schon mal so einen Helligkeitsmesser gebaut:  Die 
Helligkeit der Anzeige richtet sich nach der Helligkeit im Raum. Damit 
ist die Anzeige auch bei Sonnenlicht gut lesbar, aber dennoch blendet 
sie nachts nicht.

Die Messung geschiet in den Off-Phasen eines Soft-PWM, d.h. die Messung 
geschieht quasi "gleichzeitig" zum Leuchten und bei heller LED!

http://www.roboternetz.de/community/threads/15593-Helligkeitsmessung-mit-LEDs?p=146942#post146942

Verwendet hier:

http://www.roboternetz.de/community/threads/20380-Meine-neueste-Uhr-Galois?p=189440#post189440

von anonym (Gast)


Lesenswert?

Hi,

hab jetzt zwar nicht alles gelsen:

http://www.youtube.com/watch?v=UcPQEy6P6zc

entspricht das ungefähr dem was du machen willst?

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.