analogique.ino

Arduino GIGA R1 WiFi · Archivo : analogique.ino · Lenguaje : Arduino · Uso : Acquitter un capteur analogique en 12 bits

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

Un Arduino GIGA R1 WiFi (STM32H747, módulo radio 1DX: Wi-Fi b/g/n + BLE, antena u.FL incluida), alimentado por USB-C. 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, plataforma « Arduino Zephyr-based Boards », placa « Arduino Giga R1 »; monte la antena u.FL antes de usar la radio y suba.

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
}

← Volver a la ficha