🛠 Variateur lumineux en PWM (broches 3, 5, 6, 9, 10)
Objetivos
Hacer variar la luminosidad de un LED con analogWrite (PWM) y comprender LA particularidad del Nano Every: el PWM solo está disponible en los pines 3, 5, 6, 9 y 10. El pin 11, que es PWM en un Uno/Nano clásico, es solo una E/S digital en este modelo — una trampa clásica al reutilizar shields.
Material
- 1 × Arduino Nano Every
- 1 × LED + 1 × resistencia de 220 Ω
- 1 × potenciómetro de 10 kΩ (en A0)
- Cables de conexión, cable micro-USB
Código completo
// Potentiometre A0 -> variation PWM sur broche 9
// Rappel: PWM possible uniquement sur 3, 5, 6, 9, 10 (pas 11 !)
const uint8_t LED_PWM = 9;
const uint8_t POT = A0;
uint32_t tPrecedente = 0;
void setup {
pinMode(LED_PWM, OUTPUT);
Serial.begin(9600);
}
void loop {
if (millis - tPrecedente < 20) return;
tPrecedente = millis;
uint16_t brut = analogRead(POT); // 0..1023
uint8_t rapport = map(brut, 0, 1023, 0, 255);
analogWrite(LED_PWM, rapport); // 0..255
Serial.print("rapport="); Serial.println(rapport);
}
Verificación esperada
El LED se apaga progresivamente y luego aumenta su luminosidad al girar el potenciómetro. Con un osciloscopio o un analizador lógico en el pin 9, se observa una señal cuadrada cuyo ciclo de trabajo sigue la consigna. Pruebe el mismo código en el pin 11: el LED simplemente permanece encendido o apagado — la prueba de que el PWM no está disponible allí.
Errores frecuentes
analogWriteen 11 (o 4, 7, 8…): ningún efecto PWM, el pin permanece en todo-o-nada; verifiquedigitalPinHasPWM(pin)en el código.- Olvidar la resistencia en serie con el LED: a 5 mA por LED es tentador, pero se solicita innecesariamente el chip.
- Esperar la frecuencia del Nano clásico: el núcleo megaAVR actualiza los temporizadores (TCA/TCD configurables), las frecuencias PWM no son idénticas a las del antiguo núcleo — sensible para el control de motores o la lectura de audio.
- Confusión de valores:
analogWriteacepta 0-255,analogReaddevuelve 0-1023 — de ahí el uso demap. - LED «parpadeante» a bajo ciclo de trabajo: es el parpadeo perceptible del PWM a baja frecuencia; normal en un contexto pedagógico.
Otros tutoriales para esta placa
Ejemplos de código para esta placa
multi-serie.inoArduinoadc-filtre.inoArduinointerrupt-bouton.inoArduinonvm-consignes.inoArduinosommeil-every.inoArduinowatchdog-secours.inoArduino