Lección Teach
Arduino básico 3/4: controla la velocidad con un potenciómetro
El alumnado lee un potenciómetro con analogRead(), transforma la lectura con map() y controla la velocidad de parpadeo de un LED real.
Resultados de aprendizaje
Leer un potenciómetro con analogRead.
Interpretar el rango 0-1023.
Usar map() para transformar una lectura en una acción visible.
Vista previa de la actividad del estudiante
Contenido de la actividad
Solo vista previa. En una sesión de clase, los estudiantes pueden completar respuestas y entregar su trabajo al docente.
Del mundo físico a un número
9 min
Un potenciómetro es como un mando giratorio: al girarlo cambia el voltaje que llega al pin analógico. Arduino no mide ese voltaje como una aguja continua; usa un convertidor analógico-digital, o ADC, para convertirlo en un número. En Arduino Uno, analogRead(A0) pide al ADC una lectura del pin A0 y devuelve un valor entre 0 y 1023. Lecturas cercanas a 0 representan un extremo del giro, y lecturas cercanas a 1023 representan el otro.
En esta práctica, esa lectura controlará la velocidad del LED 1. La función map(valor, entrada_min, entrada_max, salida_min, salida_max) transforma un número de un rango a otro. Aquí convierte la lectura 0-1023 en una espera de 100-1200 ms:
int lectura = analogRead(A0);
int espera = map(lectura, 0, 1023, 100, 1200);
delay(espera);
map(lectura, 0, 1023, 100, 1200) transforma la lectura del potenciómetro en un tiempo de espera para el parpadeo: cerca de 0 se acerca a 100 ms, y cerca de 1023 se acerca a 1200 ms. La misma idea se usa con sensores analógicos como mandos, sensores de luz, temperatura o posición: primero se lee un número y luego se convierte en una acción útil.
Según ese fragmento, si analogRead(A0) devuelve un número pequeño, la espera será...
Haz que el mando controle el LED
18 min
Sube el programa. Gira el potenciómetro 1 y observa cómo cambia el parpadeo. Después cambia el rango 100, 1200 por otros valores: por ejemplo, prueba una espera máxima menor si quieres que nunca vaya tan lento.
const int pot1 = A0;
const int led1 = 8;
void setup() {
pinMode(led1, OUTPUT);
}
void loop() {
int lectura = analogRead(pot1);
int espera = map(lectura, 0, 1023, 100, 1200);
digitalWrite(led1, HIGH);
delay(espera);
digitalWrite(led1, LOW);
delay(espera);
}Abre el laboratorio y localiza el potenciómetro 1.
Sube el programa.
Prueba el potenciómetro cerca del mínimo, en medio y cerca del máximo.
Cambia el rango
100, 1200por otros valores y vuelve a probar.
Entrega tu código
Captura el código con el rango de espera que te parezca más claro. Antes de adjuntarlo, guarda main.ino en el entorno del laboratorio. El snapshot debe mostrar el programa que realmente quieres que revise tu profesor.
Relaciona número y efecto
8 min
Describe qué observaste al mover el potenciómetro. ¿Qué rango de espera elegiste y por qué?