Práctica Dirigida 1
Prototipos Interactivos 2
Práctica paso a paso...
Código en el IDE de Arduino
Solución del reto...
Código en el IDE de Arduino
Práctica paso a paso...
Código en el IDE de Arduino
int pinRojo =5; //el led rojo estará en el pin 5, esto esta mal en el vídeo
int pinAzul =3; //el led azul estará en el pin 3, esto esta mal en el vídeo
int piezo =6; //El piezo esta conectado al pin 6
int boton=2;//El piezo esta conectado al pin 6
int estado =0; //variable no usada
void setup() {
pinMode (pinRojo, OUTPUT); //Se declara el pinRojo como salida
pinMode (pinAzul, OUTPUT); //Se declara el pinAzul como salida
pinMode (piezo, OUTPUT); //Se declara el piezo como salida
pinMode (boton, INPUT); //Se declara el botón como entrada
Serial.begin (9600);//abre puerto serial y permite la entrada y salida de datos
}
void loop() {
while (digitalRead(boton)==0) // cuidado en no colocar por error un ";"
{
digitalWrite (pinRojo, HIGH); //Escribe un valor HIGH en el pin digital 5
digitalWrite (pinAzul, LOW); //Escribe un valor LOW en el pin digital 3
delay(1000); //espera 1 segundo
digitalWrite (pinRojo,LOW );//Escribe un valor LOW en el pin digital 5
digitalWrite (pinAzul,HIGH ); //Escribe un valor HIGH en el pin digital 3
delay(1000);
tone (piezo, 300, 100); //comando que envía una frecuencia e intensidad al piezo
delay(100);
tone (piezo, 450, 50);
Serial.println(digitalRead(boton)); //Muestra en el Monitor serial la lectura del botón
delay(100);
}
while (digitalRead(boton)==1)// cuidado en no colocar por error un ";"
{
digitalWrite (pinRojo, LOW); //Escribe un valor LOW en el pin digital 5
digitalWrite (pinAzul, LOW); //Escribe un valor LOW en el pin digital 3
Serial.println(digitalRead(boton)); //Muestra en el Monitor serial la lectura del botón
}
}
Solución del reto...
Código en el IDE de Arduino
int pinRojo =5; //el led rojo está en el pin 5
int pinAzul =3; //el led azul está en el pin 3
int piezo =6; //El piezo está conectado al pin 6
int ldrpin =0; //La fotorresistencia está conectada al pin analógico 0
int ldrval =0; //inicialice una la variable ldrval en 0
void setup() {
pinMode (pinRojo, OUTPUT); //Se declara el pinRojo como salida
pinMode (pinAzul, OUTPUT); //Se declara el pinAzul como salida
pinMode (piezo, OUTPUT); //Se declara el piezo como salida
pinMode (ldrpin, INPUT); //Se declara el pin de la fotorresistencia como entrada
Serial.begin (9600); //abre puerto serial y permite la entrada y salida de datos
}
void loop() {
ldrval = analogRead(ldrpin); //carga a la variable ldrval lo que ingresa por el pin analógico 0 en donde está conectada fotorresistencia
Serial.println(ldrval); //Muestra en el Monitor serial la lectura que hace la fotorresistencia
if (ldrval >= 950) // evalúa si el valor leído es mayor o igual a 950
{
digitalWrite (pinRojo, HIGH); //Escribe un valor HIGH en el pin digital 5
digitalWrite (pinAzul, LOW); //Escribe un valor LOW en el pin digital 3
delay(50); //espera
digitalWrite (pinRojo,LOW );//Escribe un valor LOW en el pin digital 5
digitalWrite (pinAzul,HIGH ); //Escribe un valor HIGH en el pin digital 3
delay(50);
tone (piezo, 250, 100); //comando que envía una frecuencia e intensidad al piezo
delay(50);
tone (piezo, 450, 30);
}
else
{
digitalWrite (pinRojo, LOW); //Escribe un valor LOW en el pin digital 5
digitalWrite (pinAzul, LOW); //Escribe un valor LOW en el pin digital 3
}
}
Entre los desafíos de esta unidad esta:
- Conectar correctamente la fotorresistencia, ya que tenía invertidos los cables de tierra y 5V, esto lo resolví usando el monitor serie y revisando los datos que se registraban.
- Cuando estaba programando el While, por error deje un ";" lo que dio un error lógico en la programación y que no fue visible al compilar el programa
- Comprender mejor donde usar las resistencias; si en el lado positivo o negativo, es algo que debo de reforzar junto con la ley de ohm.
URL consultadas:
No hay comentarios:
Publicar un comentario