Sons du robot

[int frequence = 500;] cette ligne sert a : -crée une variable appelée frequence

-stocke la fréquence du son

-démarre à 500 Hz

[bool ancienA0 = LOW;
bool ancienA1 = LOW;

bool ancienA2 = LOW;] cette ligne sert a : -détecter et éviter des répétitions trop rapides

[pinMode(A0, INPUT);] cette ligne sert a : -configure la broche A0

-en entrée (INPUT)

-pour lire le bouton 1

[pinMode(A1, INPUT);] cette ligne sert a : -configure la broche A0

-en entrée (INPUT)

-pour lire le bouton 2

[pinMode(A2, INPUT);] cette ligne sert a : -configure le bouton obstacle

[pinMode(8, OUTPUT);] cette ligne sert a : -configure la pin 8 en sortie

-pour envoyer le son au buzzer

[bool etatA0 = digitalRead(A0);] cette ligne sert a : -lire l’état du bouton A0

[bool etatA1 = digitalRead(A1);] cette ligne sert a : -lire l’état du bouton A1

[bool etatA2 = digitalRead(A2);] cette ligne sert a : -lire l’état du bouton A2

[if (etatA0 == HIGH && ancienA0 == LOW)] Cette condition signifie : -ET il ne l’était pas avant

-le bouton est appuyé maintenant

[frequence = frequence + 100;] cette ligne sert a : -augmente la fréquence de 100 Hz

-le son devient plus aigu

[if (frequence > 2000)] cette ligne sert a : -vérifie si le son devient trop aigu

[frequence = 2000;] cette ligne sert a : -bloque la fréquence maximum à 2000 Hz

[tone(8, frequence, 200);] cette ligne sert a : -Jouer un son

-pendant 200 ms

-sur la pin 8

-avec la fréquence choisie

[frequence = frequence – 100;] cette ligne sert a : -diminue la fréquence

-le son devient plus grave

[if (frequence < 100)] cette ligne sert a : -vérifie si le son est trop grave

[noTone(8);] cette ligne sert a : -arrête complètement le buzzer

[frequence = 100;] cette ligne sert a : -empêche la fréquence de descendre sous 100 Hz

[else] cette ligne sert a : -le son continue normalement

[tone(8, frequence, 200);] cette ligne sert a : -jouer le nouveau son grave

[if (etatA2 == HIGH && ancienA2 == LOW)] cette ligne sert a : -détecté un nouvel appui sur le bouton obstacle

[noTone(8);] cette ligne sert a : -coupé immédiatement le son précédent

[tone(8, 2500, 1000);] cette ligne sert a : -émettre le sons de l’alarme

[ancienA0 = etatA0;
ancienA1 = etatA1;

ancienA2 = etatA2;] cette ligne sert a : -mémorise l’état actuel des boutons

-pour comparer au prochain tour

[delay(10);] cette ligne sert a : -attendre 10 millisecondes