que tal amigos, buen dia antes que nada, tengo un problema
no se como hacer con un trabajo que me encargaron en arduino uno
por eso acudo a los expertos
tengo que hacer funionar 2 leds con 2 switch, pero el codigo no se como hacerlo
debe funcionar asi
con el switch 1, cada que lo presione debe encender un led, y el otro apagarse
asi sucesivamente lo presiono enciende uno se paga el otro,
segundo, cuando presione el switch 2 los leds deben encender y apagar de la manera que se haria con el boton uno
mientras mantengo presionado, al soltar deben de quedarse en el estado actual
tercero, al presionar los 2 switch deben encender los leds juntos, y al soltarlo apagarse
algua idea que me den llevo 2 dias intentando pero no me sale, les agradezco de antemano
Mira a ver si funciona correctamente, yo no pude probar
#define ON HIGH // Cambiar para logica positiva/negativa
#define OF LOW // Cambiar para logica positiva/negativa
byte Inp[2]={2,3}; // Pines de entrada
byte Out[2]={4,5}; // Pines de salida
unsigned long T_Pulsa=2000; // tiempo en ms que durara el parpadeo
unsigned long T_Esp=0; // Para controlar el tiempo de parpadeo
boolean Pul_1=false; // Para almacenar el estado del pulsador 1
boolean Pul_2=false; // Para almacenar el estado del pulsador 2
boolean Apul_1=false; // Para almacenar el estado anterior del pulsador 1
boolean Apul_2=false; // Para almacenar el estado anterior del pulsador 2
boolean Led_1=false; // Para almacenar el estado del led 1
boolean Led_2=false; // Para almacenar el estado del led 2
bool Apagar=false; // Para controlar pulsar 2 y soltar
void setup()
{
for (int x=0;x++;x<2) // Configurar pines
{
pinMode (Inp[x], INPUT);
pinMode (Out[x], OUTPUT);
}
GrabarSalidas(); // Salidas a off
}
void loop()
{
LeerEntradas();
if (Pul_1 & Pul_2) // Los dos pulsadores pulsados
{
Led_1=true; // Encenderemos el led 1
Led_2=true; // Encenderemos el led 2
Apagar=true; // Permiso para apagar al soltarlos
}
if (!Pul_1 & !Pul_2 && Apagar ) // Los dos pulsadores despulsados y ha pasado por los dos pulsados
{
Led_1=false; // Encenderemos el led 1
Led_2=false; // Encenderemos el led 2
Apagar=false; // Fin permiso apagar
}
if (Pul_1 & !Pul_2 & Apul_1!=Pul_1) // Pulsador 1 cambia a pulsado y no pulsamos el 2
{
if (!Led_1 && !Led_2) {Led_1=true;} // Si ambos led estan apagados, empezamos encendiendo el 1
else // si ya hay alguno encendido, los intercambaimos
{
Led_1=!Led_1;
Led_2=!Led_2;
}
}
if (Pul_2 & !Pul_1 & !Apagar) // Pulsador 2 pulsado, 2 despulsado y no pulsamos los 2 a la vez antes
{
if (millis()>T_Esp) // Ha sobrepasado el tiempo para parpadeo de leds
{
Led_1=!Led_1; // Intercambiamos el estado de los led
Led_2=!Led_2;
T_Esp=millis()+T_Pulsa; // Cargamos tiempo para cambio de leds
}
}
Apul_1=Pul_1; // Modificamos estado anterior de los pulsadores
Apul_2=Pul_2; // Modificamos estado anterior de los pulsadores
GrabarSalidas();
}
void LeerEntradas()
{
Pul_1=digitalRead(Inp[0]); // Leer pin con pull down
Pul_2=digitalRead(Inp[1]); // Leer pin con pull down
//Pul_1=!digitalRead(Inp[0]); // Leer pin con pull up
//Pul_2=!digitalRead(Inp[1]); // Leer pin con pull up
}
void GrabarSalidas()
{
if (Pul_1) {digitalWrite(Inp[0], ON);} else {digitalWrite(Inp[0], OF);}
if (Pul_2) {digitalWrite(Inp[1], ON);} else {digitalWrite(Inp[1], OF);}
}
hola gracias, ya lo probe no hace nada :S, aparte el codigo esta muy completo, no habra algo mas sencillo, que pueda interpretar?
no se mucho de programacion
freddy_267:
hola gracias, ya lo probe no hace nada :S
Error humano, tanto Ctrl+c-Ctrl+v no puede ser bueno
aquí tienes corregido el error.
#define ON HIGH // Cambiar para logica positiva/negativa
#define OF LOW // Cambiar para logica positiva/negativa
byte Inp[2]={2,3}; // Pines de entrada
byte Out[2]={4,5}; // Pines de salida
unsigned long T_Pulsa=500; // tiempo en ms que durara el parpadeo
unsigned long T_Esp=0; // Para controlar el tiempo de parpadeo
boolean Pul_1=false; // Para almacenar el estado del pulsador 1
boolean Pul_2=false; // Para almacenar el estado del pulsador 2
boolean Apul_1=false; // Para almacenar el estado anterior del pulsador 1
boolean Apul_2=false; // Para almacenar el estado anterior del pulsador 2
boolean Led_1=false; // Para almacenar el estado del led 1
boolean Led_2=false; // Para almacenar el estado del led 2
bool Apagar=false; // Para controlar pulsar 2 y soltar
void setup()
{
for (int x=0;x++;x<2) // Configurar pines
{
pinMode (Inp[x], INPUT);
pinMode (Out[x], OUTPUT);
}
GrabarSalidas(); // Salidas a off
}
void loop()
{
LeerEntradas();
if (Pul_1 & Pul_2) // Los dos pulsadores pulsados
{
Led_1=true; // Encenderemos el led 1
Led_2=true; // Encenderemos el led 2
Apagar=true; // Permiso para apagar al soltarlos
}
if (!Pul_1 & !Pul_2 && Apagar ) // Los dos pulsadores despulsados y ha pasado por los dos pulsados
{
Led_1=false; // Encenderemos el led 1
Led_2=false; // Encenderemos el led 2
Apagar=false; // Fin permiso apagar
}
if (Pul_1 & !Pul_2 & Apul_1!=Pul_1) // Pulsador 1 cambia a pulsado y no pulsamos el 2
{
if (!Led_1 && !Led_2) {Led_1=true;} // Si ambos led estan apagados, empezamos encendiendo el 1
else // si ya hay alguno encendido, los intercambaimos
{
Led_1=!Led_1;
Led_2=!Led_2;
}
}
if (Pul_2 & !Pul_1 & !Apagar) // Pulsador 2 pulsado, 2 despulsado y no pulsamos los 2 a la vez antes
{
if (millis()>T_Esp) // Ha sobrepasado el tiempo para parpadeo de leds
{
Led_1=!Led_1; // Intercambiamos el estado de los led
Led_2=!Led_2;
T_Esp=millis()+T_Pulsa; // Cargamos tiempo para cambio de leds
}
}
Apul_1=Pul_1; // Modificamos estado anterior de los pulsadores
Apul_2=Pul_2; // Modificamos estado anterior de los pulsadores
GrabarSalidas();
}
void LeerEntradas()
{
Pul_1=digitalRead(Inp[0]); // Leer pin con pull down
Pul_2=digitalRead(Inp[1]); // Leer pin con pull down
//Pul_1=!digitalRead(Inp[0]); // Leer pin con pull up
//Pul_2=!digitalRead(Inp[1]); // Leer pin con pull up
}
void GrabarSalidas()
{
if (Led_1) {digitalWrite(Out[0], ON);} else {digitalWrite(Out[0], OF);}
if (Led_2) {digitalWrite(Out[1], ON);} else {digitalWrite(Out[1], OF);}
}
freddy_267:
no habra algo mas sencillo, que pueda interpretar?
Necesitaria ayuda con un sencillo proyecto,digo sencillo para gente con una buena base como ustedes....
La idea es la siguiente,necesitaria encender un led con un pulsador,pero se deben cumplir dos requisitos.
Para que este led se encienda,el pulsador debe de estar pulsado al menos dos segundos y dicho led permanecera encendido aunque se pulse nuevamente dicho pulsador.
Danielflores, por favor, lee las normas del foro. Si fuera Moderador ya te hubiera puesto un WARNING por postear lo mismo en mas de 5 Hilos.
No puedes hacerlo. Crea el tuyo y espera las respuestas.
Paciencia y sino, estudia tu problema y consulta las dudas.