hola saludos amigos necesito un poco de ayuda soy nuevo en el arduino pero viejo en la electronica basica! tengo pensado ponerle un arduino a mi carro conectado a la alrma de agencia el detalle es q el control solo tare dos botones! y lo unico q se me ocurre es usar un arduino para poder controlar lo q deceo! por ejemplo un solo pulso de unlock apertura normal dos pulsos de unlock desactivar alarma y bajar vidrios ,pulso seguido arranque de motor! pero no se bien como poner las declaraciones digamos :
si el pulso de canal 1 = 1 entonces apertura de seguros y desactivacion de alarma
si el pulso de canal 1 = a (aqui no se como ponerle dos pulsos!)
si el pulso de canal 1 = a continuo = x
y asi consecutivamente como solo cuento con dos canales en mi alarma utilizaria un tipo codigo morse para comunicarme con el arduino solo necesito ver como puedo poner los bucles todo lo demas ya lo tengo en mente
circuitos etc!
espero me puedan ayudar! gracias.
byte PinBtn = 10; // Pin Pulsador
bool E_Btn = false; // Estado pulsador
bool aE_Btn = false; // Estado anterior pulsador
unsigned long Espera=1000; // Tiempo maximo a esperar entre pulsaciones, si lo excede ejecuta
unsigned long Final=0; // Auxiliar para controlar el tiempo trancurrido entre pulsaciones
unsigned long aMilis=0; // Auxiliar para controlar desborde de millis
byte Pulsos=0; // Contador de pulsos
void setup()
{
pinMode(PinBtn, INPUT);
Serial.begin(9600);
}
void loop()
{
aMilis=millis(); // Almacenamos millis para controlar desborde
E_Btn = digitalRead(PinBtn); // Leer pin pulsador
if (E_Btn && !aE_Btn && Pulsos < 255) // Estado pulsador cambia a high
{
Pulsos ++; // Añadir un pulso
Final = millis() + Espera; // Tiempo de espera para ejecutar comando
}
aE_Btn = E_Btn; // Almacenamos ultimo estado
if (Pulsos > 0 && millis() > Final) // Hay opcion pulsada y finalizo imepo de espera
{
Serial.print("Pulso ");
Serial.print(Pulsos);
Serial.println(" veces");
switch (Pulsos)
{
case 1:
// Codigo para 1 pulsacion
break;
case 2:
// Codigo para 2 pulsacionen
break;
default:
// no coincide nada
break;
}
Pulsos = 0;
}
if (aMilis < millis()) {Final = Final - aMilis + millis();} // Control desborde millis
}