tone()
Description :
Génère une onde carrée de fréquence spécifiée (avec un rapport cyclique de 50 %) sur une broche. Une durée peut être spécifiée ; sinon, l’onde continue jusqu’à l’appel à noTone(). La broche peut être connectée à un buzzer piézo ou à un autre haut-parleur pour émettre des tonalités.
Une seule tonalité peut être générée à la fois. Si une tonalité est déjà émise sur une autre broche, l’appel à tone() n’aura aucun effet. Si la tonalité est émise sur la même broche, l’appel définira sa fréquence.
L’utilisation de la fonction tone() interférera avec la sortie PWM des broches 3 et 11 (sur les cartes autres que la Mega).
Il est impossible de générer des tonalités inférieures à 31 Hz. Pour plus de détails techniques, consultez les notes de Brett Hagman.
Syntaxe :
Utilisez les variantes de fonction suivantes pour générer une tonalité sur une broche spécifique indéfiniment ou pendant un temps donné :
tone(pin, frequency) tone(pin, frequency, duration)
Paramètres :
La fonction admet les paramètres suivants :
- pin : broche Arduino sur laquelle générer le signal sonore.
- frequency : fréquence du signal sonore en hertz. Types de données autorisés : unsigned int.
- duration : durée du signal sonore en millisecondes (facultatif). Types de données autorisés : unsigned long.
Retours :
La fonction ne renvoie rien.
Exemple de code :
Générer une onde carrée sur la broche D0 pendant une seconde de manière répétitive.
#define BUZZER_PIN D0 // Exemple de broche void setup() { pinMode(BUZZER_PIN, OUTPUT); } void loop() { tone(BUZZER_PIN, 1000, 1000); // 1 kHz tone delay(1000); }
Remarques et avertissements :
- Si vous souhaitez jouer des notes différentes sur plusieurs broches, vous devez appeler noTone() sur une broche avant d’appeler tone() sur la broche suivante.
- Cette fonction est non bloquante, ce qui signifie que même si vous fournissez le paramètre duration, l’exécution du sketch se poursuivra immédiatement, même si la tonalité n’est pas terminée.
Source : https://docs.arduino.cc/language-reference/en/functions/advanced-io/tone/