dac-onde.ino
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
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. 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, 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
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);
}
}