analogique.ino
El ADC de 12 bits de la GIGA muestrea a 50 Hz con promedio móvil de 32 muestras: el trazador serie muestra una curva limpia, lista para un sensor analógico real (0-3,3 V).
Hardware necesario
Una placa Arduino Giga R1 (STM32H747 doble núcleo M7 a 480 MHz + M4, 76 E/S, 2 DAC, FDCAN) alimentada por USB-C o 5-24 V. 1 sensor analógico 0-3,3 V (cursor de potenciómetro, salida de módulo acondicionada).
Cableado
Señal en A0, GND común. Nunca superar 3,3 V: el ADC no tolera 5 V.
Funcionamiento
El búfer circular de 32 valores suaviza sin asignación; analogReadResolution alinea el ancho con el nativo del STM32H7. Muestrear a 50 Hz deja el M7 libre. En el Arduino IDE, instale la plataforma « Arduino Zephyr-based Boards » (o Mbed), elija « Arduino Giga R1 » y suba. Lógica de 3,3 V.
Para ir más lejos
Disparad una alerta fuera de rango, o enviad la media por CAN (sketch dedicado).
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
}