Atenuador con perilla
Parte de la sección Salidas del Journey de Arduino de Coddy. Lección 5 de 24.
Un mando proporciona a analogRead() un número de 0 a 1023, y analogWrite() necesita de 0 a 255. Los dos rangos no coinciden, así que convierte uno en el otro con map():
int reading = analogRead(A0);
int brightness = map(reading, 0, 1023, 0, 255);
analogWrite(9, brightness);Al bajar el mando, se obtiene 0 y el LED está apagado; al subirlo, se obtiene 1023, que se convierte en 255, completamente encendido. Cada posición intermedia produce un brillo intermedio.
Escribir la lectura directamente en el LED no funciona: analogWrite() solo acepta valores de 0 a 255, así que una lectura como 600 produce un brillo incorrecto.
Desafío
FácilEl potenciómetro está conectado a A0 y el LED al pin 9. Haz que el potenciómetro establezca el brillo:
- lee el potenciómetro
- convierte la lectura a un valor de 0 a 255 con
map() - escríbelo en el LED y después espera 10 ms
Pulsa Run y gira el potenciómetro; después, pulsa Check.
Pruébalo tú mismo
const int knobPin = A0;
const int ledPin = 9;
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
// lee el potenciómetro, convierte su valor al rango 0..255 y aplícalo al LED
}
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Salidas
Practica por tu cuenta: Playground de Arduino