PRÁCTICA 5: FUNCIONAMIENTO DE UN PARKING DOMÓTICO
En esta práctica realizaremos el funcionamiento de un parking domótico mediante el uso de 3 leds, 2 botones y un servomotor.
#include <Servo.h>//Se le da a la placa de Arduino como debe interactuar el servomotor
Servo myservo;//Se introducen como salidas y entradas los pines y el servomotor
int pausa=1000;
int boton1=6;
int boton2=7;
int PinG=8;
int PinY=9;
int PinR=10;
void setup() {
myservo.attach(11);//Declaro los pines como salidas y entradas.
pinMode(boton1,INPUT);
pinMode(boton2,INPUT);
pinMode(PinG,OUTPUT);
pinMode(PinY,OUTPUT);
pinMode(PinR,OUTPUT);
Serial.begin(9600);
}
void loop() {
digitalWrite(PinR,HIGH);
myservo.write(0);//Declaro los botones y cómo es el estado normal del servomotor, teniendo el led rojo encendido y el servomotor en su estado original
int estado_boton1=digitalRead(boton1);
int estado_boton2=digitalRead(boton2);
Serial.println(estado_boton1);
Serial.println(estado_boton2);
if((estado_boton1==HIGH) || (estado_boton2==HIGH))//Introduzco una condicionante, si se cumple, se realizará el funcionamiento, encendiendo el led verde y apagando el led rojo, sino, no empezará dicho funcionamiento y permanecerá el led rojo encendido.
{
digitalWrite(PinR,LOW);
digitalWrite(PinG,HIGH);
for(int b=0;b<=90;b++)//Introduzco esta condicionante para realizar el funcionamiento de este mecanismo, de manera que el servomotor se colocará a 90º y se parará en esa posición
{
myservo.write(b);
delay(50);
}
delay(pausa);
for(int i=0;i<=4;i++)//Introduzco esta condicionante para que el led verde parpadeará indicando la bajada del servomotor a su estado original
{
digitalWrite(PinG,HIGH);
delay(500);
digitalWrite(PinG,LOW);
delay(500);
}
for(int pos=90;pos>=0;pos-=5)//Introduzco esta condicionante para indicar la bajada del servomotor a su estado original. Mientras se realiza esto, el led amarillo parpadeará
{
myservo.write(pos);
delay(100);
digitalWrite(PinY,HIGH);
delay(100);
digitalWrite(PinY,LOW);
delay(100);
}
}
digitalWrite(PinR,HIGH);//Una vez terminado todo el funcionamiento, volverá a su estado normal, teniendo el led rojo encendido y el servomotor en su estado original
delay(pausa);
}
No hay comentarios:
Publicar un comentario