fade-pwm.ino

Arduino Nano Every · Archivo : fade-pwm.ino · Lenguaje : Arduino · Uso : Variation douce d'une LED en PWM

El PWM del 4809 difiere del 328P (timers TCA/TCD en vez de Timer0/1/2) pero la API analogWrite sigue idéntica: este fade triangular 0-255 en el pin 10 muestra el uso común, con frecuencia por defecto sin parpadeo visible.

Hardware

Un Arduino Nano Every (ATmega4809 a 20 MHz, mismo formato que el Nano, USB micro-B, chip UART separado, pines de 5 V, compatibilidad directa con el Nano clásico). Nano Every, LED + resistencia de 330 Ω en un pin PWM (D9, D10, D11, D3...).

Cableado

LED (+) → resistencia → D10, cátodo → GND; los pines PWM llevan la marca ~ en el silicio.

Funcionamiento

analogWrite carga la consigna del timer: ciclo de trabajo 0-255/256. El paso de 2 a 100 Hz da una subida regular; el ciclo completo dura ~2,5 segundos.

Ejecución

Instala el paquete Arduino megaAVR Boards en el IDE, selecciona Arduino Nano Every y carga. El Serial USB está separado del Serial1 de hardware (pines RX/TX): el código serie clásico funciona tal cual.

Variantes

En el 4809 puedes subir la frecuencia PWM mucho más (motorización) vía registros TCA/TCD, o pilotar una base de transistor para más potencia.

fade-pwm.ino

// Fade sur le Nano Every : analogWrite 8 bits sur broche PWM.
// Le 4809 permet aussi de changer la frequence PWM (TCA/TCD).
const int LED = 10; // broche PWM (marquee ~ sur le silicium)

int niveau = 0;
int pas = 2;
unsigned long dernier = 0;

void setup() {
  pinMode(LED, OUTPUT);
  analogWriteResolution(8); // 0..255 par defaut
  Serial.begin(9600);
}

void loop() {
  if (millis() - dernier < 10) return; // 100 Hz de rafraichissement
  dernier = millis();
  niveau += pas;
  if (niveau >= 255) { niveau = 255; pas = -2; }
  if (niveau <= 0)   { niveau = 0;   pas = 2; }
  analogWrite(LED, niveau);
  // le cycle complet dure ~2,5 s : visible a l'oeil, sans papillotement
  static int dernierPrint = -10;
  if (abs(niveau - dernierPrint) > 30) {
    dernierPrint = niveau;
    Serial.println(niveau);
  }
}

← Volver a la ficha