porfavor ayúdenme con mi trabajo =( =( =( no logro poder hacerlo porfavor ayúdenme esto es lo que tengo que hacer
El proyecto consiste en controlar las luces de una casa como se describe a
continuación:
- El primer led se controlará mediante un pushButton así:
- Al presionar una vez, el led se encenderá mediante 30 segundos.
- Si el botón se presiona una segunda vez en un periodo de 50
milisegundos, el led permanecerá encendido 90 segundos. - Si el botón se presiona una segunda vez después de 50 milisegundos,
el led se apagará. - Si se recibe una 'A' por el puerto serial, el led se encenderá por 30
segundos. - Si se recibe una 'B' por el puerto serial, el led se encenderá por 90
segundos. - Si se recibe una 'C' por el puerto serial, el led se apagará.
- El segundo y el tercer led se controlan así:
- Mediante dos botones, donde al presionar cualquiera de los dos
botones, se encenderán los dos leds y permanecerán encendidos 30
segundos. - Si el mismo botón que se presiono para encender los leds, se presiona
una segunda vez en un periodo de 50 milisegundos, los leds
permanecerán encendidos por 90 segundos. - Si el mismo botón se presiona una tercera vez en el mismo periodo de
50 milisegundos, los dos led encenderán de manera intermitente, uno a
la vez por 250 milisegundos y por un periodo de 15 segundos. - Si por el puerto serie se recibe una 'D' se realiza la actividad 1 de este
inciso. - Si se recibe una 'E' por el puerto serie, se realiza la segunda actividad
descrita en este inciso. - Si se recibe por el puerto serie una 'F' , se realiza la actividad 3 de este
inciso - Si se recibe una 'G', se apagan los dos leds.
- Si cualquier botón permanece apretado por 100 milisegundos, todos los
leds encenderán al mismo tiempo de manera intermitente, con una
duración de 75 milisegundos encendidos y 650 milisegundos apagados,
esta acción permanecerá así por un minuto o hasta que se presione
cualquier botón por un periodo de 100 milisegundos. - El punto 3 se realizara también si se recibe por el puerto seria la letra 'T',
con lo cual los leds parpadearan como se describió y si se recibe otra 'T',
la actividad terminará.
esto es lo que llevo lo que me causa problemas son los tiempos los cuales no se como hacerlos porfavor ayudenme
int led = 9;
int led1 = 10;
int led2 = 11;
int boton = 12;
int boton1 = 13;
int boton2 = 8;
int x = 0;
int y = 0;
int z = 0;
int estado = 0;
int estado1 = 0;
int estado2 = 0;
char val;
long actual;
long tinicio =0;
int ledStatus = false;
int buttonState = 0;
int lastButtonState = 0;
int lastButtonState2 = LOW;
int reading;
long lastDebounceTime = 0;
long debounceDelay = 200;
int input;
void parpa(){
for(int i =0; i<5; i++);{
digitalWrite(led2, LOW);
digitalWrite(led1, HIGH);
delay(50);
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
delay(50);
}
}
void setup() {
pinMode(boton, INPUT);
pinMode(boton1, INPUT);
pinMode(boton2, INPUT);
pinMode(led, OUTPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
Serial.begin(9600);
}
void loop(){
estado = digitalRead(boton2);
if(estado == HIGH){
delay(90);
x++;
if(x > 4){
x = 1;
}
}
if (x == 1 ){
actual=millis();
if((actual -tinicio)/100>5){
digitalWrite(led, HIGH);
}
}
if (x == 2 ){
digitalWrite(led, HIGH);
delay(500);
digitalWrite(led, LOW);
}
if ( x == 3){
digitalWrite(led, LOW);
}
if(Serial.available()){
val = Serial.read();
Serial.print(val);
}
if( val == 'a' ){
digitalWrite(led, HIGH);//activa el LED
delay(300);
}
if( val == 'b' ){
digitalWrite(led, HIGH);
delay(100);
}
if( val == 'c' ){
digitalWrite(led, LOW);
}
if (Serial.available()>0){
input=Serial.read();
if (input=='1'){
digitalWrite(led, HIGH);
delay(30000);
}
else{
digitalWrite(led, LOW); }
}
estado1 = digitalRead(boton1);
if(estado1 == HIGH){
delay(90);
y++;
if(y > 3){
y = 1;
}
}
if (y == 1 ){
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
delay(2);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
}
if (y == 2 ){
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
delay(30);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
}
if ( y == 3){
void parpa();
}
estado2 = digitalRead(boton);
if(estado2 == HIGH){
delay(90);
y++;
if(y > 3){
y = 1;
}
}
if (y == 1 ){
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
delay(2);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
}
if (y == 2 ){
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
delay(30);
}
if ( y == 3){
void parpa();
}
if( val == 'g' ){
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
}
if( val == 'b' ){
digitalWrite(led, HIGH);
delay(100);
}
if( val == 'c' ){
digitalWrite(led, LOW);
}
}