potentiometre.ino
El ADC del GD32 es 12 bits nativo: el potenciómetro se lee en 4096 niveles y el formato «bruto ; voltios» alimenta directamente el trazador serie del IDE. El promedio de 8 muestras limpia el ruido.
Hardware necesario
Una placa de desarrollo GD32F103C8T6 (Cortex-M3 a 108 MHz, compatible pin a pin con Blue Pill), alimentada a 3,3 V/5 V, con un adaptador ST-Link o serie. 1 potenciómetro de 10 kΩ (cursor en PA0, patas a 3,3 V y GND).
Cableado
Cursor en PA0; nunca más de 3,3 V en un pin ADC (la placa es de 3,3 V, no de 5 V).
Funcionamiento
analogReadResolution(12) explicita el ancho nativo; el reloj ADC se ajusta para precisión. El promedio software divide el ruido por √8, suficiente para un sensor lento. Con Arduino: instale el core « STM32F1 » (Roger Clark, gestor de placas) y elija la placa « GD32F103C »; el LED de usuario es PC13 (activo en LOW). En C: biblioteca de firmware GD32F10x + ST-Link.
Para ir más lejos
Piloten la respiración del sketch anterior con este potenciómetro (map() entre ADC y 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);
}