commande-serie.ino

Arduino UNO R4 Minima · Archivo : commande-serie.ino · Lenguaje : Arduino · Uso : Piloter broches et DAC depuis le moniteur série

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;
  }
}

← Volver a la ficha