Teach Lecciones con laboratorios remotos

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.

  • Arduino Board (code)
  • 35 min
  • ESO / primeros cursos de programación física
  • es
  • Tecnología
Arduino Board (code)
Arduino Board (code)

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.

1

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á...

2

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);
}
  1. Abre el laboratorio y localiza el potenciómetro 1.

  2. Sube el programa.

  3. Prueba el potenciómetro cerca del mínimo, en medio y cerca del máximo.

  4. Cambia el rango 100, 1200 por 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.

3

Relaciona número y efecto

8 min

Describe qué observaste al mover el potenciómetro. ¿Qué rango de espera elegiste y por qué?