|

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/

Publications similaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *