analogique.ino
L'ADC 12 bits de la GIGA acquitte à 50 Hz avec une moyenne glissante sur 32 échantillons : le traceur série montre une courbe propre, prête pour un capteur analogique réel (0-3,3 V).
Matériel requis
Une Arduino GIGA R1 WiFi (STM32H747, module radio 1DX : Wi-Fi b/g/n + BLE, antenne u.FL fournie), alimentée par USB-C. 1 capteur analogique 0-3,3 V (curseur de potentiomètre, sortie de module conditionnée).
Branchement
Signal sur A0, GND commun. Ne jamais dépasser 3,3 V : l'ADC n'est pas 5 V tolérant.
Fonctionnement
Le tampon circulaire de 32 valeurs lisse sans allocation ; analogReadResolution aligne la largeur sur le natif du STM32H7. L'échantillonnage à 50 Hz laisse le M7 disponible. Dans l'Arduino IDE, plateforme « Arduino Zephyr-based Boards », carte « Arduino Giga R1 » ; montez l'antenne u.FL avant d'utiliser le radio, puis Téléverser.
Pour aller plus loin
Déclenchez une alerte hors plage, ou envoyez la moyenne vers le CAN (sketch dédié).
analogique.ino
// Capteur analogique sur A0 : ADC 12 bits + moyenne glissante.
const int CANAL = A0;
const int FENETRE = 32;
uint16_t tampon[FENETRE];
int tete = 0;
unsigned long precedent = 0;
void setup() {
analogReadResolution(12); // 0..4095 pour 0..3,3 V
Serial.begin(115200);
}
void loop() {
if (millis() - precedent < 20) return; // 50 Hz
precedent = millis();
tampon[tete] = analogRead(CANAL);
tete = (tete + 1) % FENETRE;
uint32_t somme = 0;
for (int i = 0; i < FENETRE; i++) somme += tampon[i];
float moyenne = (float)somme / FENETRE;
float volts = moyenne * 3.3f / 4095.0f;
Serial.printf("%6.1f %.3f V\n", moyenne, volts); // traceur serie
}