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
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 ...
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.
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.
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).
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
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?
> 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
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.
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".
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é
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.
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 ...
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.
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 ;-)
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.
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).
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.
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.
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.
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.
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