capteur de son

Bonjour,

Je suis nouveau dans ce monde Arduino. ai suivi les cours MOOC sur fun.

J'ai un pb avec le code ci dessous que je n'arrive pas a résoudre.

Matériel:
un écran 2 lignes LCD connecté sur Arduino UNO en 12,11,6,5,4,3

un capteur de son retour sur 9

une LED sur 10

je veux faire afficher un mot de 5 lettres (non, pas celui là ;-))

Je fais défiler l'alphabet. au bruit détecté, la lettre reste affichée, la LED s'allume et l'alphabet redemarre en seconde position sur l'écran.

Ce qu'il se passe :

pas de bruit, affichage de 5 A , la LED s'allume a chaque fois
si je mets en commentaire le traitement du capteur de son, Les 5 alphabets s'affichent bien cote à cote.

Je ne comprends pas ou j'ai commis une erreur ...

Help !

/* Afficher un mot
 *  Montage
 * un écran 2 lignes LCD connecté sur Arduino UNO en 12,11,6,5,4,3
* un capteur de son retour sur 9
* une LED sur 10
*/

#include <LiquidCrystal.h> ;

LiquidCrystal monEcran(12,11,6,5,4,3);

const int capteur =9;// pin connecté à la sortie digital du capteur
const int LED =10;// pin connecté à la LED + resistance
int iLettre = 0;
int iNom =0;

void setup()
{
   pinMode(capteur, INPUT);
   pinMode(LED, OUTPUT);

   digitalWrite(LED, LOW);
   monEcran.begin(16,2); //on initialise la communication avec 16 colonnes et deux lignes
   monEcran.clear(); // on efface l'
  
}

void loop()
{
for(iNom = 0; iNom<5; iNom++ ) {

    
    // on affiche l'alphabet
    for(iLettre = 65; iLettre<91; iLettre++ ) {

        monEcran.setCursor(iNom,0);
        char iAlpha = (char)(iLettre) ;
        monEcran.write(iAlpha);
        delay(2000);

        // si un son détecté, arret de l'alphabet et LED allumée
        if(digitalRead(capteur) ==HIGH){
          digitalWrite(LED, HIGH);// Allumer la LED
          delay(1000);// Temps de traitement
          digitalWrite(LED, LOW);// Eteindre la LED
          break ;        
        }
      
    }
     
  }  
}

Faites un petit programme qui ne fait que ça

const byte capteur =9;// pin connecté à la sortie digital du capteur

void setup()
{
   Serial.begin(115200);
   pinMode(capteur, INPUT);
}

void loop()
{
   Serial.println(digitalRead(capteur));
}

Pour voir ce que dit votre capteur réellement ( dans la console ouverte à 115200 bauds)

JML,

merci, effectivement, le capteur renvoie 1 (si son) ou 0 (si rien de détecté)

en remplacant (== HIGH) par (== 1) dans mon test, cela fonctionne.

merci
Michel

HIGH et 1 c’est pareil...(cf le code source)