Práctica Dirigida I
Práctica Dirigida I
Materiales del prototipo
Video activando el actuador LED
Video activando el actuador Piezo
Video solución de Práctica dirigida completo
Programa de la práctica dirigida
El presente programa logra la creación de un prototipo que simula un sistema de alarmas como las que se encuentran en las casas. El programa logra que se activen los actuadores LED y Piezo (encendiendo la luz y activando un sonido), y al presionar el actuador Boton los mismos se desactivan (se apagan), así como cuando se deja de presionar el boton, se vuelven a activar. A continuación la programación y detalles
int pinRojo = 3; //se definen las variables que se utilizan: pinRojo, pinAzul, piezo, boton y estado
int pinAzul = 5;
int piezo = 6;
int boton = 2;
int estado = 0;
void setup() { //los LED y el Piezo se definen como actuadores de salida y Boton como de Entrada
pinMode(pinRojo, OUTPUT);
pinMode(pinAzul, OUTPUT);
pinMode(piezo, OUTPUT);
pinMode(boton, INPUT);
Serial.begin (9600);
}
void loop() { //mientras el botón no está presionado las led se encienden y apagan y el piezo suena intermitentemente (HIGH encendido, LOW apagado), pero cuando el botón está presionado las led y el piezo se desactivan o detienen.
while (digitalRead(boton)==0)
{
digitalWrite(pinRojo, HIGH);
digitalWrite(pinAzul, LOW);
delay(100);
digitalWrite(pinRojo, LOW);
digitalWrite(pinAzul, HIGH);
delay(100);
tone (piezo,300,100);
Serial.println(digitalRead(boton));
delay(100);
}
while (digitalRead(boton)==1)
{
digitalWrite(pinRojo, HIGH);
digitalWrite(pinAzul, LOW);
Serial.println(digitalRead(boton));
}
}
Reto
Vídeos del reto
El reto consiste en cotrolar que la alarma suene solo cuando detecta movimiento, simulando el efecto de la fotocelda.
Para eso vamos a utilizar 1 Led, 1 piezo, 1 LDR, 9 cables, 1 resistencia de 330 y 1 resistencia de 10k. La tajeta Arduino y la protoboard.
Realizamos los siguientes pasos para crear el prototipo:
1. La led se conecta en la protoboard, y se conecta una terminal de una resistencia de 330 en la misma pista de la terminal más larga de la Led.
2. Se conecta un cable a la misma pista que la terminal más corta de esa led, y el otro extremo a otra parte de la protoboard.
3. En la misma pista de ese cable se conecta otro y el otro extremo se conecta a la tarjeta Arduino en el pin GND.
4. Un cable se conecta en la misma pista que la otra terminal de la resistencia 330 y el otro extremo se conecta al pin 8 de la tarjeta arduino.
5. Se conecta un piezo en la protoboard. Y en la misma pista que una terminal de ese piezo se conecta un cable, el otro extremo del cable se conecta al pin GND en la tarjeta Arduino.
6. Otro cable se conecta en la misma pista que la otra terminal del piezo y el otro extremo del cable se conecta en el pin 10 de la tarjeta arduino.
7. Se conecta el LDR en la protoboard. En la misma pista que una terminal se conecta una resistencia de 10k. En la misma pista que la otra terminal del LDR se conecta un cable, y el otro extremo de ese mismo cable se conecta el pin de 5v en la tarjeta arduino.
8. En la misma pista que la resistencia y el LDR se conecta un cable y el otro extremo se conecta a el pin A0.
9. En la misma pista que la otra terminal de la resistencia se conecta un cable y el otro extremo de ese cable se conecta al pin GND de la tarjeta arduino.
// se definen tres variables: ledPin para el led, piezoPin para el piezo y ldrPin para el LDR.
int ledPin = 8;
int piezoPin = 10;
int ldrPin = A0;
void setup() // se inicia el serial y ledPin y piezoPin se definen de salida y ldrPin de entrada
{
Serial.begin (9600);
pinMode(ledPin, OUTPUT);
pinMode(piezoPin, OUTPUT);
pinMode(ldrPin, INPUT);
}
void loop() //se define que cuando LDR es mayor o igual a 800, eso quiere decir que cuando no se detecta movimiento la LED se apaga y el piezo no suena. Pero cuando es menor que 800, es decir cuando detecta movimiento el LED se activa y el piezo suena. Asimismo el monitor serial mostrarpa "Alarma desactivada" cuando no detecta movimiento y Alarma activada cuando detecte movimiento.
{
int ldrStatus = analogRead(ldrPin);
if (ldrStatus >=800)
{
digitalWrite (ledPin, LOW);
noTone(piezoPin);
Serial.println ("ALARMA DESACTIVADA");
}
else
{
digitalWrite (ledPin, HIGH);
tone(piezoPin, 300);
delay(100);
Serial.println ("ALARMA ACTIVADA");
}
}
Problemas técnicos
Tuve varios errores:
1. Errores de escritura porque puse guión bajo en lugar de igual y además puse punto y coma donde iba solo coma.
exit status 1
expected initializer before '_'
exit status 1
expected ')' before ';' token
2. En el momento de conectar el piezo en la práctica dirigida coloqué mal los cables que iban a los polos positivos y negativos por lo que no sonaba, pero revisándolo otra vez, noté que el cable no estaba en el lugar correcto.
3. Cuando realicé el reto, no podía lograr que el LDR detectara el movimiento, porque la resistencia que utilicé era la equivocada, luego de probar y observar varios videos, encontré la correcta. Además el cable que iba conectado a la terminal más corta de la LED lo conecté en el lugar equvocado, pero después de ver el video de una compañera logré corregir ese error.










Comentarios
Publicar un comentario