Bonjour !
Voilà, j'ai un petit soucis. J'ai trouver sur internet un code, où lorsque j'appui sur un bouton, la led s'allume. Là j'ai aucun soucis, j'ai voulus m'amuser avec ce que j'ai appris et j'ai utilisé la fonction Serial.print pour afficher des messages dans le "Moniteur serie".
Le seul soucis, c'est que je pense que mon code utilise un boucle, qui cherche à savoir tout le temps si j'appui ou non sur le bouton, du coup mon serial print se répète et la console devient ilisible !
Voici mon code :
// --- Programme Arduino ---
// par X. HINAULT - 01/2010// --- Que fait ce programme ? ---
/* Une LED reste allumée tant qu'un bouton poussoir est appuyé et s'éteint lorsqu'il n'est pas appuyé */// --- Fonctionnalités utilisées ---
// --- Circuit à réaliser ---
// Connecter BP à la masse sur la broche 2 (configurée en entrée)
// Connecter LED et sa résistance en série sur la broche 3 (configurée en sortie)//**************** Entête déclarative *******
// A ce niveau sont déclarées les librairies, les constantes, les variables...// --- Inclusion des librairies utilisées ---
// --- Déclaration des constantes ---
const int APPUI=0; // constante état du BP - appui sur niveau bas
const int PAS_APPUI=1; // constante état du BP - relâché sur niveau haut// --- constantes des broches ---
const int BP=2; //declaration constante de broche
const int LED=3; //declaration constante de broche// --- Déclaration des variables globales ---
int ETAT_BP; // variable d'état du bouton poussoir
// --- Initialisation des fonctionnalités utilisées ---
//**************** FONCTION SETUP = Code d'initialisation *****
// La fonction setup() est exécutée en premier et 1 seule fois, au démarrage du programmevoid setup() { // debut de la fonction setup()
// --- ici instructions à exécuter au démarrage ---
Serial.begin(9600);
pinMode(LED, OUTPUT); //met la broche en sortiepinMode(BP, INPUT); //met la broche en entree
digitalWrite(BP, HIGH) ; // activation du pullup de la broche en entrée
} // fin de la fonction setup()
// ********************************************************************************//*************** FONCTION LOOP = Boucle sans fin = coeur du programme *************
// la fonction loop() s'exécute sans fin en boucle aussi longtemps que l'Arduino est sous tensionvoid loop(){ // debut de la fonction loop()
// --- ici instructions à exécuter par le programme principal ---
ETAT_BP=digitalRead(BP); // lit l'état du BP et met la valeur 0/1 dans la variable
if (ETAT_BP==APPUI){ // si l'état du BP est appuyé (càd si variable état BP = 0)
// Attention à bien utiliser == et non =digitalWrite(LED,1); // allume la LED
Serial.print("La LED a etait allume.");}
else { // sinon (càd si variable état bp=1)
digitalWrite(LED,0); // éteint la LED
Serial.print("La LED a etait eteinte.");
}// remarque : on aurait pu écrire ceci sur une seule ligne selon :
// if (ETAT_BP==APPUI)digitalWrite(LED,1); else digitalWrite(LED,0);} // fin de la fonction loop() - le programme recommence au début de la fonction loop sans fin
// ********************************************************************************// --- Fin programme ---
Que faire pour l'améliorer ?
Merci beaucoup, au passage, si vous avez des idée d'amélioration ;).
Cordialement, Maxime.