Teach Lecciones con laboratorios remotos

Lección Teach

Arduino básico 4/4: construye un mini-controlador

El alumnado integra potenciómetro, servo y LED para diseñar un mini-controlador con entrada analógica, decisión y salida visible.

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

Resultados de aprendizaje

  • Combinar entrada analógica, condicionales y dos salidas.

  • Usar la librería Servo en un programa simple.

  • Explicar el comportamiento de un sistema programado.

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

Diseña antes de tocar el código

8 min

Tienes tres piezas: el potenciómetro 1, un servo y el LED 1. En este proyecto, el potenciómetro controlará la posición del servo y el LED servirá como aviso cuando el servo pase de cierto ángulo.

Un servo es un motor pequeño pensado para colocarse en una posición concreta, no solo para girar sin parar. En este caso le enviaremos un ángulo entre 0 y 180 grados. La librería <Servo.h> se encarga de generar las señales temporizadas que entiende el servo: Servo servo; crea el objeto de control, servo.attach(3) lo conecta al pin 3 y servo.write(angulo) le pide que se mueva a ese ángulo.

El ángulo del servo va de 0 a 180 grados. Un umbral bajo, como 60 grados, encendería el LED pronto, cerca del primer tercio del movimiento. Un umbral de 90 grados lo encendería a mitad de recorrido. Un umbral más alto, como 120 grados, lo encendería solo cuando el servo ya esté en el último tercio de su movimiento. Antes de programarlo, elige el umbral que haría que el LED fuera útil para el tipo de aviso que quieres.

¿A partir de qué ángulo encenderías el LED: 60, 90, 120 grados u otro valor? Explica por qué ese umbral sería útil.

2

Programa el controlador

22 min

Ahora compara tu idea con esta solución: el potenciómetro controla el ángulo del servo, de 0 a 180 grados, y el LED 1 se enciende cuando el ángulo pasa de 90 grados. Sube el programa. Después cambia la condición para que el LED se encienda solo a partir de 120 grados. La línea clave está en el if: no cambies el pin del LED ni el pin del servo si no sabes por qué.

#include <Servo.h>

const int pot1 = A0;
const int servoPin = 3;
const int led1 = 8;

Servo servo;

void setup() {
  pinMode(led1, OUTPUT);
  servo.attach(servoPin);
}

void loop() {
  int lectura = analogRead(pot1);
  int angulo = map(lectura, 0, 1023, 0, 180);

  servo.write(angulo);

  if (angulo > 90) {
    digitalWrite(led1, HIGH);
  } else {
    digitalWrite(led1, LOW);
  }

  delay(20);
}
  1. Abre el laboratorio Arduino.

  2. Sube el programa base y observa el servo.

  3. Gira el potenciómetro 1 lentamente.

  4. Cambia angulo > 90 por angulo > 120 y vuelve a subir.

  5. Guarda antes de capturar el código.

Entrega tu código

Captura el código final con el umbral de 120 grados. 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

Cierra el proyecto

10 min

Explica el sistema usando estas tres palabras: entrada, decisión y salida. Puedes incluir qué mejorarías si tuvieras más tiempo.