Actividad 1

 

Actividad 1: Uso de pulsadores y leds

El objetivo de esta actividad es controlar cada uno de los leds de forma independiente con un pulsador, de forma que cuando se presione el pulsador se encienda el led. Si el led esta encendido, este se debe apagar al presionar el pulsador. 

Montaje eléctrico

Para esta práctica de "Parking Automatizado" se ha propuesto que el montaje se realice de forma incremental, es decir, que en cada una de las actividades propuestas se vaya aumentando la cantidad de componentes montados en la protoboard hasta llegar al montaje final.

Para este primer montaje, nos van a hacer falta los siguientes componentes electrónicos:

  • Arduino Uno

  • Protoboard de 400 puntos

  • 2 pulsadores

  • 1 módulo semáforo (LEDs)

  • 2 resistencias de 10 kΩ

El esquema de montaje planteado se puede ver a continuación:


 

 

 

La asignación de pines recomendada para asegurarnos que más tarde se puedan conectar el resto de componentes electrónicos es la siguiente:

  • Pin digital 3 → Led  verde

  • Pin digital 4 → Led Rojo

  • Pin digital 5 → Pulsador 1

  • Pin digital 13 → Pulsador 2

Una de las primeras cosas que tenemos que hacer cuando trabajamos con pines digitales es
indicar si el pin usado va a ser una entrada o una salida. Esto se puede llevar a cabo de la
siguiente forma:

pinMode(LedVerde,OUTPUT);
pinMode(Pulsador_1,INPUT);
Cuando queremos realizar acciones dependiendo del cambio de valor de una entrada digital, se debe
evaluar el estado de dicha entrada, para ello se debe hacer uso de la siguiente sentencia:

if(digitalRead(Pulsador_1)==HIGH){
...
}
#define LedRojo 3
#define LedVerde 4
#define Pulsador_1 5
#define Pulsador_2 13

bool estadoVerde = false;
bool estadoRojo = false;

bool ultimoEstadoPulsador1 = HIGH;
bool ultimoEstadoPulsador2 = HIGH;

void setup() {
  pinMode(LedRojo, OUTPUT);
  pinMode(LedVerde, OUTPUT);
  pinMode(Pulsador_1, INPUT);
  pinMode(Pulsador_2, INPUT);
}

void loop() {
  // Leer el estado actual de los pulsadores
  bool estadoPulsador1 = digitalRead(Pulsador_1);
  bool estadoPulsador2 = digitalRead(Pulsador_2);

  // Detectar flanco descendente en Pulsador 1
  if (ultimoEstadoPulsador1 == HIGH && estadoPulsador1 == LOW) {
    estadoVerde = !estadoVerde;
    digitalWrite(LedVerde, estadoVerde);
  }

  // Detectar flanco descendente en Pulsador 2
  if (ultimoEstadoPulsador2 == HIGH && estadoPulsador2 == LOW) {
    estadoRojo = !estadoRojo;
    digitalWrite(LedRojo, estadoRojo);
  }

  // Actualizar los últimos estados de los pulsadores
  ultimoEstadoPulsador1 = estadoPulsador1;
  ultimoEstadoPulsador2 = estadoPulsador2;

  delay(100); // Pequeña pausa para evitar rebotes
}
Vistas
17 Número de vistas
17 Vistas de miembros
0 Vistas públicas
Acciones
0 Gustos
0 No me gusta
0 Comentarios
Compartir en redes sociales
Compartir enlace
Compartir por correo

Por favor iniciar sesión para compartir esto webpage por correo.