Práctica Dirigida 1


  • Práctica 1
Sistema de Alarma



Código de la Practica Dirigida

int pinRojo = 3; //variable, que indica que el led rojo está conectado al pin 3
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.

  • 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