#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
unsigned long interval1 = 1000;
unsigned long interval2 = 1;
unsigned long interval3 = 500;
unsigned long previousMillis1;
unsigned long previousMillis2;
unsigned long previousMillis3;
int led1 = 13;
int led2 = 2;
int dir = 5;
int pulso = 4;
bool state1 = false;
bool state2 = false;
bool state3 = false;
void debug(String text)
{
Serial.print(millis());
Serial.print('\t');
Serial.println(text);
}
void setup() {
Serial.begin(9600);
previousMillis1 = millis();
previousMillis2 = millis();
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(pulso, OUTPUT);
pinMode(dir, OUTPUT);
lcd.begin();
lcd.backlight();
}
void loop() {
unsigned long currentMillis = millis();
digitalWrite (dir, HIGH);
// Gestionar el desbordamiento
if ((unsigned long)(currentMillis - previousMillis1) >= interval1)
{
action1();
previousMillis1 = millis();
}
if ((unsigned long)(currentMillis - previousMillis2) >= interval2)
{
action2();
previousMillis2 = millis();
}
if ((unsigned long)(currentMillis - previousMillis3) >= interval3)
{
action3();
previousMillis3 = millis();
}
}
void action1()
{
state1 = !state1;
if (state1) digitalWrite (led1, HIGH);
if (!state1) digitalWrite (led1, LOW);
}
void action2()
{
state2 = !state2;
if (state2) digitalWrite (pulso, HIGH);
if (!state2) digitalWrite (pulso, LOW);
}
void action3()
{
state3 = !state3;
if (state3) digitalWrite (led2, HIGH);
if (!state3) digitalWrite (led2, LOW);
//lcd.clear();
//lcd.setCursor(7,0 );
//lcd.print("A");
}