Hola!, me he quedado pillado en una parte del codigo que estoy haciendo, en el que quiero hacer el mismo efecto fade de los ejemplos de arduino, pero haciendo que un led se empiece a encender cuando otro este encendido al 20%, para ello he optado por utilizar la funcion millis basicamente para evitar las interrupciones, y he usado map para convertir una cifra del 0 al 100 (un porcentaje) a la salida pwm de arduino de ahy lo de 255
#include <Wire.h>
#include <LCD.h>
#include <LiquidCrystal_I2C.h>
int otr= 100;
int cont = 0;
int salida1 = 0;
int salida2 = 0;
#define I2C_ADDR 0x3f
unsigned long tprev = 0;
LiquidCrystal_I2C lcd(I2C_ADDR,2, 1, 0, 4, 5, 6, 7);
void setup()
{
lcd.begin (16,2);
lcd.setBacklightPin(3,POSITIVE);
lcd.setBacklight(HIGH);
}
void loop()
{
contadores();
}
void contadores()
{
int lag = 500;
salida1 = map (cont,0,100,0,255);
lcd.setCursor(0,0);
lcd.print(cont);
if (millis() > tprev + lag && cont < otr)
{
tprev=tprev+lag;
cont=cont+2;
}
if (millis() > tprev + lag && cont >= 20)
{
lcd.setCursor(0,1);
lcd.print("hola");
}
}
la idea es que en el segundo if, cuando la variable cont del primero llegue a 20, inicie una cuenta ascendente como el primero, para probar si funciona el if he usado una pantalla lcd para que me muestre un mensaje si se cumpliese la condicion a modo de prueba, pero no hay forma de que funcione. no se donde esta el fallo, a ver si me podeis echar una mano con esto