Lámpara con formas – itinerario aprendizaje – proyecto 2

Nuestro Itinerario de aprendizaje maker esta desarrollado para aprender todos los fundamentos y un poco más acerca de electrónica y programación.

Si completas el itinerario serás capaz de crear casi cualquier proyecto que imagines. En cada proyecto se introducen nuevos conceptos, de modo que aprenderás haciendo o creando de una manera amena y divertida.

Inicia tu viaje como maker con esta actividad donde aprenderás los primeros pasos. Verás cómo usar una entrada digital con un botón, y a programar para relacionarlo de diferentes maneras con un LED.

Proyecto 2
LÁMPARA CON FORMAS

Construye una lámpara y aprende diferentes formas de usar un botón, o como otros elementos pueden interactuar con la lámpara

ANTES DE EMPEZAR

NIVEL DE DIFICULTAD: Principiante
DURACIÓN DE LA ACTIVIDAD: 30 min.

MATERIALES

1 - Placa Build&Code 4in1
5 - LED Monocromático
1 - Botón pulsador
1 - Sensor PIR de movimiento
1 - Sensor final de carrera
Portabaterías, cable USB y cables de conexión.

2 - Componentes

Ya conoces el cerebro, la placa 4in1 Build & Code, y el módulo LED como salida digital.

En este proyecto añadimos módulos de entrada digital o sensores para interactuar con el mundo físico.

Blue led digital output

Los sensores digitales tienen un estado ALTO en el pin de señal cuando sucede algo sobre ellos, cuando se presiona un botón o el PIR detecta movimiento. ¿Recuerdas otros sensores digitales?

2 - Circuito

La placa de circuito 4in1 Build & Code tiene 12 puertos digitales (E / S). Configuraremos el puerto 3 como entrada y el puerto 4 como salida, pero recuerda, ¡se puede usar cualquier puerto DIO!

1.- Conecta el cable de la placa 4in1 DIO4 al LED

2.- Conecta el cable de la placa 4in1 DIO3 al botón

3.- Conecta la alimentación o las baterías

¡Presta atención a los colores! debe coincidir ¿Qué crees que puede pasar si inviertes el conector de placa? ¡Sí, seguro que no funcionará! ¿Por qué?

El pin de voltaje está en el medio, por lo que no hay riesgo de dañar ningún componente por polaridad inversa. La tierra (GND) del módulo estará en el pin de señal, por lo que el módulo no se puede alimentar.

2.1 Leer estado del botón. Condicionales

Con sensores digitales, solo necesitamos definir un puerto de entrada y leer su estado ("alto" o "bajo") Lo más común es hacer algo en función de la lectura del sensor. Para ello usamos SENTENCIAS CONDICIONALES , por ejemplo, codifiquemos: " si se presiona el botón, encienda la luz, si no, apague " usando la sentencia if / else.

Programa por bloques
Código Arduino
int PLED = 3; // White LED connected to digital port 3
int PButton = 4, ValueButton; // Button connected to digital port 4. Button reading variable

void setup() {
  pinMode (PLED, OUTPUT); // Configuration of the LED as output signal
  pinMode (PButton, INPUT); // Configuration of the button as the input signal
}

void loop() {
  ValueButton = digitalRead(PButton); // Button status reading
  if (ValueButton == HIGH) // If the button is pushed
    digitalWrite(PLED, HIGH); // LED = ON
  else // If the button is not pushed
    digitalWrite(PLED, LOW); // LED off
}

Se pueden usar diferentes sentencias al leer variables binarias. El estado alto se identifica con el número 1, y se puede identificar también como " verdadero ", de modo que "if (X = HIGH) ", "if (X = 1) " o " if (X) " es lo mismo.

2.2 Encience el LED pulsando el botón

Ahora queremos cambiar entre los estados del LED cuando se presiona el botón. Se encenderá cuando se presione el botón y permanecerá encendido hasta que se presione nuevamente.

Se puede usar una variable para guardar el estado de la lámpara y actuar en consecuencia cuando se presiona el botón. Otra opción es leer el estado de salida directamente.

Programación por bloques
código Arduino
int State = 0;  //Push button counter
int Button = 0; //State of button
int Puls = 0;   //State of lamp (0 or 1)

void setup() {
  pinMode(3, OUTPUT); // Digital port LED
  pinMode(4, INPUT);  // Digital port Botton
}

void loop() {
  Button = digitalRead(4);
  if (Button == 1)    //If button pressed
  {
    State = State + 1; //increment counter
    delay(300);
  }
  Puls = State % 2;  // even and odd? to get binary variable

  if (Puls == 0)
    digitalWrite (3, HIGH);
  else
    digitalWrite (3, LOW);
}

¿Cómo harías lo mismo, pero que sólo cambiara de estado cuando se mantenga pulsado un rato? ¡Probablemente tengas que leer la entrada dos veces y luego actuar! ¡Recuerda que has usado delays antes!

2.3 Secuencias LED según estado del botón

Revisa el código a continuación. ¿qué crees que pasará?

Programación por bloques
código Arduino
void setup() {
  pinMode(3, OUTPUT); //Define DIO3 as output
  pinMode(4, INPUT);  //Define DIO3 as input
}

void loop() {
  while (true) {                  
    if (digitalRead(4) == HIGH) {  //Read input state
      int i = 0;                   //reset i value to 0
      while (i <= 3) {             //4 time loop as i increases 1 every time
        digitalWrite(3, HIGH);     
        delay(200);
        digitalWrite(3, LOW);
        delay(200);
        i = i + 1;
      }
    }
  }
}

Creo que cada vez que presiono el botón, el LED parpadeará 4 veces y se apagará hasta que se presione de nuevo. ¿Estás de acuerdo? ¡¡Increíble!!

¿Eres capaz de hacer parpadear al led diferentes secuencias según si se hace un toque largo o corto? ¿O tal vez prefieres modificar la cadencia en cada toque de botón?

¡Juguemos!
2.4 LED y sensores digitales

Imagina que necesitas una advertencia luminosa cada vez que se abre una puerta. ¡¡Puedes hacerlo!!

Varios lugares públicos tienen iluminación automática. Tu también puedes hacerlo con el sensor de movimiento PIR, detectará movimientos y luego, como el botón codificado anteriormente, encenderá la luz. Puedes añadir un retraso para apagar el LED tras un tiempo sin movimiento.

PIR Sensor

Muchas máquinas industriales usan microinterruptores para controlar su movimientos y límitarlos por seguridad o para controlar la posición de las partes móviles. ¡El sensor de fin de recorrido utiliza un microinterruptor!

Imagina que necesitas una advertencia luminosa cada vez que se abre una puerta. ¡¡Puedes hacerlo!!

Proyecto final - LÁMPARA CON FORMAS

¡Ahora puedes crear tu lámpara especial y personalizada! ¡Hazla brillar como tú quieras!
Descarga las plantillas de cartón , construye y usa el código de ejemplo para comenzar, pero recuerda, ¡puedes adaptarlo a lo que necesites!

Programación por bloques
Código Arduino
int modo = 0;

void setup() {
  pinMode(2, OUTPUT);
  pinMode(13, INPUT);
  pinMode(11, INPUT);
  pinMode(12, INPUT_PULLUP);
  modo = 0;
}

void loop() {
  if (digitalRead(10)) {
    modo += 1;
    delay(700);
  }

  if (modo == 0) {
    digitalWrite(2, LOW);
  }

  if (modo == 1) {
    digitalWrite(2, HIGH);
  }

  if (!(digitalRead(12)) || digitalRead(11)) {
    digitalWrite(2, HIGH);

  } else {
    if (modo == 2) {
      digitalWrite(2, LOW);
      delay(200);
      digitalWrite(2, HIGH);
      delay(200);
    }
  }

  if (modo == 3) {
    modo = 0;
    delay(200);

  }
}
previous arrow
next arrow
Slider

El Mega Maker Kit te ofrece el todo el material que necesitas para completar el itinerario, pero si dispones de otro kit, también puedes realizar algunos proyectos. Te animamos a que los revises todos, o que compres los componentes que necesites. Puedes verificar que actividades puedes realizar en nuestra página del Itinerario de aprendizaje.

0 0

0