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 -
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.

3 réponses

  1. ElementW Messages postés 5690 Statut Contributeur 1 293
     
    '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
    1. xml74 Messages postés 186 Statut Membre 1
       
      Rebonjour :D
      Oui je dispose que d'un Arduino UNO.... Mais j'ai un micro (obligatoire..)
      0
  2. ElementW Messages postés 5690 Statut Contributeur 1 293
     
    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
  3. xml74 Messages postés 186 Statut Membre 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