dac-onde.ino

Arduino GIGA R1 WiFi · Archivo : dac-onde.ino · Lenguaje : Arduino · Uso : Générer une tension continue avec le DAC 12 bits

Dos DAC de 12 bits de verdad: la GIGA saca una tensión analógica limpia, no PWM filtrado. La rampa se comprueba con polímetro; la sinusoide hace de generador de señal de respaldo.

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. Un polímetro (o osciloscopio) en A0; amplificador operacional si hace falta potencia.

Cableado

Sonda en A0 y GND. El DAC da ~3 mA: suficiente para un ADC externo o un filtro, no para un altavoz.

Funcionamiento

analogWrite en un pin DAC escribe directo en el convertidor (sin timer); la resolución de 12 bits da pasos de 0,8 mV. La sinusoide de 100 puntos es un muestreador casero. 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

Generador de barrido de frecuencia (chirp), o control de tensión de polarización de un módulo RF.

dac-onde.ino

// DAC0 (A0) : rampe en escaliers de 0 a 3,3 V — a verifier au multimetre.
// La GIGA a 2 DAC 12 bits reels (A0, A1), rares en Arduino.
const int DAC = A0;

void setup() {
  analogWriteResolution(12);
  Serial.begin(115200);
}

void loop() {
  for (int pas = 0; pas <= 4095; pas += 256) {
    analogWrite(DAC, pas);
    float v = pas * 3.3f / 4095.0f;
    Serial.printf("code %4d -> %.3f V attendus\n", pas, v);
    delay(250);
  }
  // Petite sinusoide 10 Hz sur 100 points (sortie audio bas de gamme)
  for (int t = 0; t < 100; t++) {
    float e = 2048 + 2000 * sinf(t * 2 * PI / 100);
    analogWrite(DAC, (int)e);
    delay(5);
  }
}

← Volver a la ficha