hola saludos amigos soy nuevo en esto y quiziera ver si me pueden ayudar con un problema que tengo ya tengo un sketch! pero quiero meter dos en uno solo osea para tener dos salidas y dos entradas haciendo lo mismo por separado y no se como hacerlo hize una prueba y funciono pero no como quiero se pone lentas las respuestas
este es el sketch original
byte PinBtn = 11; // Pin Pulsador
bool E_Btn = false; // Estado pulsador
bool aE_Btn = false; // Estado anterior pulsador
const int todas = 2;
unsigned long Espera=200; // 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(todas, OUTPUT);
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("puertas ");
Serial.println("abiertas");
switch (Pulsos)
{
case 1:
// Codigo para 1 pulsacion
break;
case 2:
digitalWrite(todas,HIGH);
delay(200);
digitalWrite(todas,LOW);
delay(200);
// Codigo para 2 pulsaciones
break;
}
Pulsos = 0;
}
if (aMilis < millis()) {Final = Final - aMilis + millis();} // Control desborde millis
}
y asi funciona correctamante, pero! de la sig forma ya no funciona bien y ademas tengo otros sketch que quiziera adjuntar y no tengo la menor idea de como que va primero despues como?
byte PinBtn = 11; // Pin Pulsador
bool E_Btn = false; // Estado pulsador
bool aE_Btn = false; // Estado anterior pulsador
const int todas = 2;
unsigned long Espera=200; // 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;
byte PinBtn1 = 13; // Pin Pulsador
bool E_Btn1 = false; // Estado pulsador
bool aE_Btn1 = false; // Estado anterior pulsador
const int todas1 = 3;
unsigned long Espera1=200; // Tiempo maximo a esperar entre pulsaciones, si lo excede ejecuta
unsigned long Final1=0; // Auxiliar para controlar el tiempo trancurrido entre pulsaciones
unsigned long aMilis1=0; // Auxiliar para controlar desborde de millis
byte Pulsos1=0; // Contador de pulsos
void setup()
{
pinMode(todas, OUTPUT);
pinMode(PinBtn, INPUT);
Serial.begin(9600);
pinMode(todas1, OUTPUT);
pinMode(PinBtn1, INPUT);
}
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
{
switch (Pulsos)
{
case 2:
Serial.println("abriendo puertas");
delay(200);
digitalWrite(todas,HIGH);
delay(200);
digitalWrite(todas,LOW);
delay(200);
Serial.print("puertas ");
Serial.println("abiertas");
break;
}
Pulsos = 0;
}
if (aMilis < millis()) {Final = Final - aMilis + millis();} // Control desborde millis
aMilis1=millis(); // Almacenamos millis para controlar desborde
E_Btn1 = digitalRead(PinBtn1); // Leer pin pulsador
if (E_Btn1 && !aE_Btn1 && Pulsos1 < 255) // Estado pulsador cambia a high
{
Pulsos1 ++; // Añadir un pulso
Final1 = millis() + Espera1; // Tiempo de espera para ejecutar comando
}
aE_Btn1 = E_Btn1; // Almacenamos ultimo estado
if (Pulsos1 > 0 && millis() > Final1) // Hay opcion pulsada y finalizo imepo de espera
{
switch (Pulsos1)
{
case 2:
Serial.println("cerrando puertas");
delay(200);
digitalWrite(todas1,HIGH);
delay(200);
digitalWrite(todas1,LOW);
delay(200);
Serial.print("puertas ");
Serial.println("cerradas");
break;
}
Pulsos1 = 0;
}
if (aMilis1 < millis()) {Final1 = Final1 - aMilis1 + millis();} // Control desborde millis
}