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 Básico (código)
  • 35 min
  • Secundaria (12–16 años)
  • Español
  • Sistemas embebidos
Arduino Básico (código)
Arduino Básico (código) · Ver información del laboratorio

Resultados de aprendizaje

  • Leer un potenciómetro con analogRead.

  • Distinguir el rango teórico del ADC del rango práctico del potenciómetro.

  • 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. El conversor analógico-digital de Arduino Uno representa por defecto 0-5 V mediante valores de 0 a 1023. El potenciómetro de este laboratorio entrega 0-3,3 V, así que su rango útil de lectura es aproximadamente 0-675. El código limita pequeñas variaciones de medida y mapea ese rango práctico a la velocidad del LED 1:

const int lecturaMaxPot = 675;
int lectura = analogRead(A0);
int lecturaCalibrada = constrain(lectura, 0, lecturaMaxPot);
int espera = map(lecturaCalibrada, 0, lecturaMaxPot, 100, 1200);
delay(espera);

El mapeo transforma una lectura próxima a 0 en una espera cercana a 100 ms y una lectura próxima al máximo del laboratorio en una espera cercana a 1200 ms.

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;
const int lecturaMaxPot = 675;

void setup() {
  pinMode(led1, OUTPUT);
}

void loop() {
  int lectura = analogRead(pot1);
  int lecturaCalibrada = constrain(lectura, 0, lecturaMaxPot);
  int espera = map(lecturaCalibrada, 0, lecturaMaxPot, 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é?