Allumer une led en tapant dans les mains a l'aide d'un micro

xml74 Messages postés 161 Date d'inscription   Statut Membre Dernière intervention   -  
xml74 Messages postés 161 Date d'inscription   Statut Membre Dernière intervention   -
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.
A voir également:

3 réponses

ElementW Messages postés 4814 Date d'inscription   Statut Contributeur Dernière intervention   1 224
 
'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 ;)
1
xml74 Messages postés 161 Date d'inscription   Statut Membre Dernière intervention   1
 
Rebonjour :D
Oui je dispose que d'un Arduino UNO.... Mais j'ai un micro (obligatoire..)
0
ElementW Messages postés 4814 Date d'inscription   Statut Contributeur Dernière intervention   1 224
 
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.
1
xml74 Messages postés 161 Date d'inscription   Statut Membre Dernière intervention   1
 
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..
0