Arduino : code metronome

Fermé
milhano Messages postés 1 Date d'inscription vendredi 7 avril 2023 Statut Membre Dernière intervention 7 avril 2023 - Modifié le 7 avril 2023 à 15:04
georges97 Messages postés 11939 Date d'inscription lundi 31 janvier 2011 Statut Contributeur Dernière intervention 23 mai 2024 - 8 avril 2023 à 18:16

Salut tt le monde,

je suis en besoin d'aide sur un projet dans lequel je dois réaliser un métronome (pour un synthé) à l'aide d'un buzzer, sa fréquence doit être réglable avec un potentiomètre et s'afficher sur un écran OLED.

Pour le montage c'est bon, c'est au niveau du code que je galère.

#include <Adafruit_GFX.h>  // Bibliothèque graphique pour l'écran OLED

#include <Adafruit_SSD1306.h>  // Bibliothèque pour l'écran OLED

#include <Wire.h>  // Bibliothèque pour la communication I2C avec l'écran OLED

#define OLED_RESET 4

Adafruit_SSD1306 display(OLED_RESET); // Initialisation de l'écran OLED

int potPin = A0;  // Broche analogique pour le potentiomètre

int buzzPin = 10  ;  // Broche digitale pour le métronome

void setup() {

  pinMode(buzzPin, OUTPUT);  // Configuration de la broche du métronome en sortie

  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);  // Initialisation de l'écran OLED

  display.clearDisplay();  // Effacement de l'écran OLED

  display.setTextSize(2);  // Taille du texte

  display.setTextColor(WHITE);  // Couleur du texte

  display.setCursor(0,0);  // Position du curseur pour le texte

}

void loop() {

  int potVal = analogRead(potPin);  // Lecture de la valeur du potentiomètre

  float freq = map(potVal, 0, 1023, 100, 1000);  // Mapping de la valeur du potentiomètre à une fréquence en Hz

  display.clearDisplay();  // Effacement de l'écran OLED

  display.setCursor(0,0);  // Position du curseur pour le texte

  display.print("Freq: ");  // Texte à afficher

  display.print(freq);  // Affichage de la fréquence sur l'écran OLED

  display.print(" Hz");

  display.display();  // Affichage du texte sur l'écran OLED

  tone(buzzPin, freq);  // Activation du métronome avec la fréquence correspondante

  delay(500);  // Durée d'activation du métronome

  noTone(buzzPin);  // Désactivation du métronome

  delay(500);  // Durée de pause entre chaque battement du métronome

}

  J'ai trouvé ce code sur internet, il ne fonctionne pas et je ne sais pas pourquoi.

Si jamais vous avez des suggestions de codes ou de l'aide je suis preneur. Merci

A voir également:

4 réponses

Merci beaucoup pour vos réponses.

Le problème résidait dans l'installation des bibliothèques

9
georges97 Messages postés 11939 Date d'inscription lundi 31 janvier 2011 Statut Contributeur Dernière intervention 23 mai 2024 2 273
8 avril 2023 à 18:16

Merci pour le retour. Bonne continuation.

10
georges97 Messages postés 11939 Date d'inscription lundi 31 janvier 2011 Statut Contributeur Dernière intervention 23 mai 2024 2 273
7 avril 2023 à 18:16

Bonjour,

Sans jugement de valeur "il ne fonctionne pas" n'a pas de signification pour un code, sachant qu'il y a toujours un ou des messages d'erreur pour signaler la nature et l'emplacement de la première erreur provoquant un blocage, ce qui ne veut pad dire que d'autres ne seront pas signalées après correction.

Ce peut être :

- un problème d'alimentation de l'écran

- un problème de connexion (i2c)

- un problème de compilation

- un problème d'installation des bibliothèques (avez-vous vérifié leur présence dans le module "bibliothèques"?)

Je suppose que les bibliothèque d'adafruit sont compatibles avec votre modèle d'arduino (non-désigné).

4
mariam-j Messages postés 1082 Date d'inscription mercredi 9 mars 2022 Statut Membre Dernière intervention 23 mai 2024
7 avril 2023 à 18:28

Bonjiur,

Va donc voir là--->:  https://forum.arduino.cc/c/international/francais/49

Tu y trouvera des experts en la matière.

0