- Práctica 1
Sistema de Alarma
Código de la Practica Dirigida
Código de la Practica Dirigida
int pinAzul = 5; //variable, que indica que el led azul está conectado al pin 5
int piezo = 6; //variable piezo que indica que está conectado al pin 6
int boton = 2; //variable boton conectado al pin 2
int estado = 0; //variable que indicara al programa si está presionado o no el botón.
void setup() {
pinMode (pinRojo, OUTPUT); //declara al pinRojo como una entrada de salida.
pinMode (pinAzul, OUTPUT); //declara al pinAzul como una entrada de salida.
pinMode (piezo, OUTPUT); //declara a la variable piezo como una entrada de salida.
pinMode (boton, INPUT); //declara al botón como una entrada si es o no presionado.
Serial.begin (9600); //inicializa al monitor serial.
}
void loop()
{
Serial.println(digitalRead(boton)); //muestra los datos en el monitor serial
while(digitalRead(boton)==0){ //mientras indica que repitira continuamente hasta que lo que esta dentro del parentesis sea falso
digitalWrite(pinRojo,HIGH); //habilita el pinRojo, dando el efecto de encendido.
digitalWrite(pinAzul,LOW); //desabilita la entrada en el pinAzul, dando el efecto de apagado.
delay(100);
digitalWrite(pinRojo,LOW); //desabilita la entrada en el pinRojo, dando el efecto de apagado.
digitalWrite(pinAzul,HIGH); //habilita el pinAzul, dando el efecto de encendido.
delay(100); // espera un milisegundo
tone(piezo,300,50); //activa el pin donde está conectado el piezo, un sonido y el tiempo de duración.
delay(100);
tone(piezo,450,100);
delay(100);
}
while(digitalRead(boton)==1) //mientras indica que repitira continuamente hasta que lo que esta dentro del parentesis sea falso
{
digitalWrite(pinRojo,LOW);//desabilita la entrada en el pinRojo, dando el efecto de apagado.
digitalWrite(pinAzul,LOW);//desabilita la entrada en el pinAzul, dando el efecto de apagado.
Serial.println(digitalRead(boton)); //imprime en el monitor serial los datos del boton.
}
}
...................................................................
Solución del Reto
Código del Reto1
const int pinRojo = 3; //variable de solo lectura, el cual indica el número de pin donde está conectado el led rojo.
int pinAzul = 5; //Número del pin donde está conectado el led azul.
int piezo = 6; //Número del pin donde está conectado el piezo o parlante.
const int ldrPin=A0; //Número análogo del pin donde está conectado el LDR.
void setup() {
pinMode (pinRojo, OUTPUT); // Led rojo que se enciende al oscurecerse la LDR.
pinMode (pinAzul, OUTPUT); //Led azul que se enciende al oscurecerse la LDR.
pinMode (piezo, OUTPUT); //Inicinializa el sonido del piezo cuando ha recibido una entrada en este caso al oscurecerse la LDR.
pinMode (ldrPin, INPUT); //Inicinializa el pin de la LDR cuando ha recibido una entrada.
Serial.begin (9600);
}
void loop()
{
int ldrEstado=analogRead(ldrPin); //variable que lee la entrada del pin.
if (ldrEstado<=80){ //indica que si la fotocelda es menor a la intensidad de la luz de 80 va ha realizar los procedimientos que estén dentro de las llaves
digitalWrite(pinRojo,HIGH); //enciende el pin del led rojo cuando recibe una entrada
digitalWrite(pinAzul,LOW); //apaga el pin del led azul cuando recibe una entrada
delay(100); //hace una pausa de un milisegundo
digitalWrite(pinRojo,LOW); //apaga el pin del led rojo cuando recibe una entrada
digitalWrite(pinAzul,HIGH); //apaga el pin del led azul cuando recibe una entrada
delay(100); //hace una pausa de un milisegundo
tone(piezo,300,50); //activa el pin donde esta conectado el piezo, activa un sonido y el tiempo de duración.
delay(100); //hace una pausa de un milisegundo
tone(piezo,450,100); //activa el pin donde esta conectado el piezo, activa un sonido y el tiempo de duración.
delay(100); //hace una pausa de un milisegundo
}
else { // Indica una condicional que si lo anterior no sucede realiza lo siguiente que este entre llaves.
{
digitalWrite(pinRojo,LOW); //apaga el pin del led rojo cuando recibe una entrada
digitalWrite(pinAzul,LOW); //apaga el pin del led azul cuando recibe una entrada
}
}
}
...................................................................
Problemas Técnicos:
1- Uno de los problemas técnicos que se me presento en la programación del Reto fue que al final de la sintaxis "while" había agregado un punto y coma y este no debe agregarse.
...................................................................
Problemas Técnicos:
1- Uno de los problemas técnicos que se me presento en la programación del Reto fue que al final de la sintaxis "while" había agregado un punto y coma y este no debe agregarse.
- Solución: Revisar línea por línea la programación comparando con el vídeo para detectar el problema, hasta que identifique que había un signo (;) donde no debía incluirse. Al eliminar esa puntuación el programa se subió sin problema.
2- La detección de la intensidad de la luz con la fotocelda. Los leds, así como el sonido del piezo, se mantenían activos.
- Solución: Al observar los datos del monitor serial pude detectar la intensidad de luz que estaba capturando la resistencia y de ese modo variar el valor. Obteniendo el efecto esperado.
No hay comentarios:
Publicar un comentario