Práctica Dirigida 1

En esta práctica dirigida se estará diseñando un prototipo para simular un sistema de alarma que permita encender un led, hacer sonar un piezo o parlante y apagar estos utilizando un sensor de contacto o botón. La realización de esta práctica se lleva a cabo en tres partes:




1. Programación del sistema de luces

En esta parte se programará para que los led se enciendan y apaguen, para ello se utilizaron la tarjeta arduino uno, una protoboard, 1 led rojo, 1 led azul , 2 resistencias de 350 ohms y 5 cables macho a macho. La programación utilizada es la siguiente:

int pinRojo = 3;        //variables asocian el puerto de arduino con el led
int pinAzul = 5;

void setup() {
  pinMode (pinRojo, OUTPUT);     //define los puertos de salida de datos
  pinMode (pinAzul, OUTPUT);
  Serial.begin (9600);
}

void loop() {
  digitalWrite (pinRojo, HIGH);       // enciende el led rojo
  digitalWrite (pinAzul, LOW);       // apaga el led azul
  delay(500);                                // espera o pausa
  digitalWrite (pinRojo, LOW);      // apaga el led rojo
  digitalWrite (pinAzul, HIGH);      // enciende el led rojo
  delay(500);                                 // espera o pausa  

  }




2. Programación del piezo o parlante

Es en esta parte es donde se agrega un piezo o parlante a nuestro prototipo de alarma para que este emita un sonido a la vez que se encienden las luces led, para ello se utilizaron 1 piezo y 2 cables macho a macho. La programación utilizada es la siguiente:

int pinRojo = 3;        //variables asocian el puerto de arduino con el led
int pinAzul = 5;
int piezo = 6;           // variable para defimir el pin 6

void setup() {
  pinMode (pinRojo, OUTPUT);      //define los puertos de salida de datos
  pinMode (pinAzul, OUTPUT);
  pinMode (piezo, OUTPUT);      // define el puerto de salida de datos para el sonido
  Serial.begin (9600);
}

void loop() {

  digitalWrite (pinRojo, HIGH);      // enciende el led rojo
  digitalWrite (pinAzul, LOW);      // apaga el led azul
  delay(500);                               // espera o pausa
  digitalWrite (pinRojo, LOW);     // apaga el led rojo
  digitalWrite (pinAzul, HIGH);    // enciende el led rojo
  delay(500);                               // espera o pausa
  tone (piezo,300,100);           //define el sonido que va a emitir el piezo
  delay (100);
  tone (piezo,450,50);
  delay (100);
}






3. Programación del botón

Para finalizar esta práctica dirigida se programará el funcionamiento de la alarma mediante el uso del botón, esto permite que mientras se mantenga el botón presionado la alarma de detiene (luces y sonido), para ello se utilizaron 1 botón, 1 resistencia de 350 ohms y 3 cables macho a macho. La programación utilizada es la siguiente:

int pinRojo = 3;      //variables asocian el puerto de arduino con el led
int pinAzul = 5;
int piezo = 6;       // variable para defimir el pin 6
int boton = 2;
int estado = 0;     // variable para el botón

void setup() 
{
  pinMode (pinRojo, OUTPUT);   //define los puertos de salida de datos
  pinMode (pinAzul, OUTPUT);
  pinMode (piezo, OUTPUT);    // define el puerto de salida de datos para el sonido
  pinMode (boton, INPUT);    // define el botón como un puerto de entrada
  Serial.begin (9600);
}

void loop() {

  while (digitalRead (boton)==0)
  {
  digitalWrite (pinRojo, HIGH);   // enciende el led rojo
  digitalWrite (pinAzul, LOW);   // apaga el led azul
  delay(500);                     // espera o pausa
  digitalWrite (pinRojo, LOW);   // apaga el led rojo
  digitalWrite (pinAzul, HIGH);   // enciende el led rojo
  delay(500);                     // espera o pausa
  tone (piezo,300,100);       //define el sonido que va a emitir el piezo
  delay (100);
  tone (piezo,450,50);
  Serial.println (digitalRead(boton));  // envia la información al monitor serial
  delay (100);
  }

  while (digitalRead(boton)==1)
  {
    analogWrite (pinRojo, LOW);
    analogWrite (pinAzul, LOW),
    Serial.println (digitalRead(boton));  // envia la información al monitor serial
  }
}






Reto 1


Este primer reto consiste en controlar que la alarma suene solo cuando detecta movimiento, simulando el efecto con una fotocelda o LDR. Para ello se requiere de 1 fotocelda o LDR, una resistencia de 10 y 3 cables macho a macho. La programación utilizada es la siguiente:

int pinRojo = 3;         //variables asocian el puerto de arduino con el led
int pinAzul = 5;
int piezo = 6;              // variable para defimir el pin 6
int fotocelda = A0;       // pin análogo para la fotocelda o LDR
int valor = 0;   

void setup() 
{
  pinMode (pinRojo, OUTPUT);        //define los puertos de salida de datos
  pinMode (pinAzul, OUTPUT);
  pinMode (piezo, OUTPUT);         // define el puerto de salida de datos para el sonido
  pinMode (fotocelda, INPUT);       // entrada de datos de la fotocelda o ldr
  Serial.begin (9600);
}

void loop() 
{

  int valor = analogRead(fotocelda);        // lee el estado de la fotocelda o ldr
  if (valor <= 500) {                                   // enciende la alarma al notar oscuridad
    digitalWrite (pinRojo, HIGH);             // enciende el led rojo
    digitalWrite (pinAzul, LOW);           // apaga el led azul
    delay(500);                                     // espera o pausa
    digitalWrite (pinRojo, LOW);          // apaga el led rojo
    digitalWrite (pinAzul, HIGH);         // enciende el led rojo
    delay(500);                                    // espera o pausa
    tone (piezo,300,100);                 //define el sonido que va a emitir el piezo
    delay (100);
    tone (piezo,450,50);
    delay (100);
    Serial.println ("Alarma encendida");   // registra en el monitor serail
  }
  else {                                                   // si la cantidad de luz es mayor a 500 la alarga permanece apagada
    digitalWrite (pinRojo, LOW);            // apaga el led
    digitalWrite (pinAzul, LOW);              // apaga el led
    Serial.println ("Alarma apagada");    
  }
}





Problemas técnicos


- La conexión de los actuadores y sensores en la tarjeta arduino y la protoboard siempre genera un poco de duda si es el lugar correcto o no, pero con la ayuda de los vídeos de apoyo se soluciona.

- Uno de los problemas que tuve al realizar el reto fue la colocación de la resistencia, para solucionarlo investigué un poco en internet. 




















No hay comentarios.:

Publicar un comentario