potentiometre.ino
L'ADC du GD32 est 12 bits natif : le potentiomètre se lit en 4096 niveaux, et le format « brut ; volts » alimente directement le traceur série de l'IDE. La moyenne sur 8 échantillons nettoie le bruit.
Matériel requis
Une carte de développement GD32F103C8T6 (Cortex-M3 108 MHz, compatible broche à broche Blue Pill), alimentée en 3,3 V/5 V, avec un adaptateur ST-Link ou série. 1 potentiomètre 10 kΩ (curseur sur PA0, les pattes sur 3,3 V et GND).
Branchement
Curseur sur PA0 ; jamais plus de 3,3 V sur une broche ADC (la carte est en 3,3 V, pas 5 V).
Fonctionnement
analogReadResolution(12) explicite la largeur native ; l'horloge ADC se brille pour la précision. La moyenne logicielle divise le bruit par √8 — suffisant pour un capteur lent. Avec Arduino : installez le core « STM32F1 » (Roger Clark, gestionnaire de cartes) et choisissez la carte « GD32F103C » ; le LED utilisateur est PC13 (actif à LOW). En C : bibliothèque GD32F10x + ST-Link.
Pour aller plus loin
Piloter la respiration du sketch précédent avec ce potentiomètre (map() entre ADC et duty).
potentiometre.ino
// Potentiometre sur PA0 — ADC 12 bits du GD32 (0-4095 sur 0-3,3 V).
void setup() {
Serial.begin(115200);
analogReadResolution(12); // explicite : 12 bits natifs du GD32
analogReadFrequency(PA0, 200000); // horloge ADC 200 kHz
}
void loop() {
long brut = 0;
for (int i = 0; i < 8; i++) brut += analogRead(PA0);
brut /= 8;
float volts = brut * 3.3f / 4095.0f;
Serial.print(brut);
Serial.print(" ; ");
Serial.println(volts, 3); // format trace du traceur serie
delay(50);
}