Allumer une led en tapant dans les mains a l'aide d'un micro
xml74
Messages postés
186
Statut
Membre
-
xml74 Messages postés 186 Statut Membre -
xml74 Messages postés 186 Statut Membre -
Bonjour, étant débutant, je vous demande de l'aide, mon but est de pouvoir allumer une LED a l'aide l'un micro, en tapent dans mes main, puis la reteindre en retapant dans mes mains, comment est-ce possible de faire cela ?
Merci d'avance.
Merci d'avance.
3 réponses
-
'lut, tout dépend de la plate-forme que tu utilises, ainsi que du matériel que tu as à ta disposition...
Au fait, rebonjour! Ça faisait longtemps ;) -
Bon, premièrement tu mets ta LED sur l'Arduino (évidemment), connectée à un pin (ex: le 13) et au GND -- avec une résistance appropriée pour pas faire péter la diode.
Pour ton micro, il faut le mettre sur un pin ANALOG IN ainsi que le Gnd;
Toutefois, nous n'avons aucune indication quant à l'amplitude de tension qu'il peut fournir, et il faudra sûrement l'amplifier.
Coté code, il faudra:
- paramétrer l'ADC pour qu'on puisse lire les données audio, idéalement à 22kHz (ou +)
- avoir une variable pour savoir si on doit allumer ou éteindre la LED
- en boucle, lire les données analogiques, et si on détecte un pic, alterner l'état de la LED
Pour la variable d'état, c'est trivial:bool ledAllumee = false;
Pour l'initialisation de l'ADC, ça l'est moins... car analogRead ne permet que maxi 10 000 lectures à la seconde.
Il faudra aussi déterminer quelle est la tension envoyée lors d'un clap, qui devrait être bien supérieure à celle du bruit ambiant. -
Oki, Alors moi, pour l'instant, j'ai fait ce code:
const int m1 = 7; void setup() { //contenu de l'initialisation pinMode(m1, OUTPUT); } void loop() { digitalWrite(m1, HIGH);}
Il n'allume pas une LED mais un relais (Pour un projet domotique).
Ce que je pense devoir faire dans un premier temps:const int m1 = 7; const int mic =8; void setup() { pinMode(mic, INPUT); pinMode(m1, OUTPUT); } void loop() digitalWrite(m1, HIGH);}
Et mettre des conditions:if
&else
Mais je ne sais pas comment m'y prendre.. Après je doit savoir que le code, tourne en boucle, donc se rafraîchie automatiquement, et doit savoir a la seconde près dès que le micro envoie quelque chose..