
Vidéo
Schéma du circuit

Code source
1int buzzerPin = 8;
2int btnOn = 7;
3int btnOff = 6;
4int btnIncrease = 5;
5int btnDecrease = 4;
6int frequency = 300;
7int state = 0;
8
9void setup() {
10 pinMode(btnOn, INPUT);
11 pinMode(btnOff, INPUT);
12 pinMode(btnIncrease, INPUT);
13 pinMode(btnDecrease, INPUT);
14}
15
16void loop() {
17 if (digitalRead(btnOn)) {
18 state = 1;
19 }
20
21 if (digitalRead(btnOff)) {
22 state = 0;
23 }
24
25 if (digitalRead(btnIncrease)) {
26 frequency = frequency + 50;
27 delay(100);
28 }
29
30 if (digitalRead(btnDecrease)) {
31 frequency = frequency - 50;
32 delay(100);
33 }
34
35 if (state == 1) {
36 tone(buzzerPin, frequency);
37 } else {
38 noTone(buzzerPin);
39 }
40}FAQ
Pourquoi utilise-t-on une résistance de 220 Ω pour les boutons ?▾
Dans ce projet, les boutons sont lus en mode INPUT_PULLUP ou pull-down ; les résistances en série protègent la broche contre d'éventuels courts-circuits. En configuration pull-down, on opte généralement pour une valeur de 10 kΩ ; le paramètre pinMode dans le code doit être adapté en fonction du type de connexion utilisé dans le circuit.
Dans quelle plage la fréquence doit-elle être modifiée ?▾
L'oreille humaine perçoit les fréquences comprises entre environ 20 Hz et 20 kHz, mais les petits buzzers émettent un son optimal entre 500 et 5 000 Hz. En choisissant un pas d'augmentation ou de diminution de 50 à 100 Hz, le changement devient perceptible.
Lorsque je maintiens le bouton enfoncé, la fréquence change très rapidement. Comment puis-je ralentir ce changement ?▾
Si la fréquence est modifiée à chaque cycle, le fait de maintenir la touche enfoncée entraîne une augmentation très rapide. Soit modifiez-la une seule fois à chaque pression (détection des bords), soit ajoutez un court temps d'attente après chaque modification.
Comment puis-je empêcher la fréquence de dépasser les limites ?▾
Avec la fonction `constrain(fréquence, 100, 5000)`, tu peux maintenir la valeur dans une plage donnée. Ainsi, on évite d'atteindre des fréquences trop basses ou trop hautes pour être audibles.
