commande-serie.ino
El Minima no tiene radio: el puerto serie USB se convierte en su interfaz de control. Este mini servidor alterna el LED y ajusta el DAC de 12 bits por tecla: perfecto para probar un montaje desde un script de PC.
Hardware
Un Arduino UNO R4 Minima (Renesas RA4M1, Cortex-M4 @ 14 MHz, 5 V, DAC de 12 bits, sin radio) alimentado por USB o 6-24 V. Ninguno para probar; DAC A0 a un multímetro para la demo.
Cableado
LED en 13 (o LED_BUILTIN); A0 al instrumento de medida. Monitor serie a 9600 baudios, fin de línea "ninguno".
Funcionamiento
Serial.available/read lee caracteres sin bloquear; el switch ejecuta la orden y responde. analogWriteDAC0 aplica la tensión en A0.
Ejecución
Arduino IDE 2.x (con el core « Arduino UNO R4 Boards » instalado), elige « Arduino UNO R4 Minima », selecciona el puerto y Subir. El monitor serie está a 9600.
Variantes
Sustituir las letras por líneas "dac=1234" (readStringUntil), o gobernar desde Python (pyserial) para un banco de pruebas automatizado.
commande-serie.ino
// Mini-serveur serie : 'l' LED, 'u'/'d' DAC, 's' etat.
const int LED = 13;
int dac = 2048; // consigne DAC 0..4095
bool ledOn = false;
void setup() {
pinMode(LED, OUTPUT);
Serial.begin(9600);
Serial.println(F("l=LED u/d=DAC s=etat"));
}
void loop() {
if (!Serial.available()) return;
char c = Serial.read();
switch (c) {
case 'l':
ledOn = !ledOn;
digitalWrite(LED, ledOn);
Serial.println(ledOn ? F("LED ON") : F("LED OFF"));
break;
case 'u':
dac = min(4095, dac + 128);
analogWriteDAC0(dac);
Serial.println(dac);
break;
case 'd':
dac = max(0, dac - 128);
analogWriteDAC0(dac);
Serial.println(dac);
break;
case 's':
Serial.print(F("LED=")); Serial.print(ledOn);
Serial.print(F(" DAC=")); Serial.println(dac);
break;
}
}