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 ;
}
}
}
}