🛠 Potentiomètre et sortie DAC sur la prise audio du GIGA R1

Arduino GIGA R1 · debutant · Schéma : IMG-giga-r1-d3-1-potentiometre-dac-audio.svg — Potentiomètre alimenté en 3,3 V relié à l'entrée A0 du GIGA R1, et prise jack 3,5 mm de la carte reliée à un haut-parleur via la sortie DAC0.

Objectifs

Découvrir le monde analogique du GIGA R1 : lire une tension avec un convertisseur analogique-numérique (3 ADC sur le STM32H747XI) et générer un signal avec un convertisseur numérique-analogique (2 DAC, 12 bits). Particularité de cette carte : la prise jack audio 3,5 mm est câblée sur DAC0, DAC1 et A7 — un vrai projet sonore sans bouclier.

Matériel

Code complet

// GIGA R1 WiFi — son d'onde en dent de scie sur DAC0 (prise jack), hauteur = A0
#include <Arduino.h>

const int KNOB_PIN = A0;   // potentiomètre 0..3,3 V
const int DAC_PIN  = DAC0; // sortie DAC reliée à la prise jack embarquée
uint32_t phase = 0;

void setup {
  Serial.begin(115200);
  analogWriteResolution(12);   // le DAC du STM32H747XI est 12 bits (0..4095)
  Serial.println("Tournez le potentiomètre");
}

void loop {
  uint32_t pas = 1 + map(analogRead(KNOB_PIN), 0, 4095, 0, 63);
  phase = (phase + pas) & 0xFFF;   // retour à zéro sur 12 bits
  analogWrite(DAC_PIN, phase);      // dent de scie -> son modulable
}

Câblage du potentiomètre : curseur vers A0, une extrémité vers 3,3 V, l'autre vers GND.

Vérification attendue

En tournant le potentiomètre, la hauteur du son généré dans le casque augmente progressivement. En affichant analogRead(A0) sur le Moniteur série, la valeur suit le curseur de 0 à 4095 environ.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels