Bene,bene, ho appena aggiunto il led rgb (mi stancava il led normale ]:D) e dopo varie prove sono riuscito ad ottenere un effetto bruttissimo, io dovrei fare: primo led da 0 a 255, poi da 255 a 0, dopo entra il secondo che fa 0-255 e 255-0 e dopo riparte il loop, ma non riesco a combinare nulla
Ecco lo sketch:
#include <LiquidCrystal.h>
byte b = 0;
byte incremento = 1;
byte incremento1 = 1;
int up = LOW;
int down = LOW;
int up1 = LOW;
int down1 = LOW;
int check = LOW;
int led = 9;
byte a = 0;
LiquidCrystal lcd(13, 12, 5, 4, 3, 2);
void setup() {
pinMode(7, INPUT);
pinMode(8, INPUT);
pinMode(6, INPUT);
pinMode(14, INPUT);
pinMode(15, INPUT);
pinMode(led, OUTPUT);
lcd.begin(16, 2);
lcd.print("Luci presepe by");
lcd.setCursor(0, 1);
lcd.print("Cesare Cacitti ");
delay(5000);
}
void loop() {
lcd.setCursor(0, 0);
lcd.clear();
lcd.print("Giorno:");
lcd.print(a);
lcd.setCursor(0, 1);
lcd.print("Notte:");
lcd.print(b);
delay(50);
up = digitalRead(8);
down = digitalRead(7);
up1 = digitalRead(14);
down1 = digitalRead(15);
check = digitalRead(6);
if (check == HIGH) {
if (up == HIGH) {
if (a<255) a++;
}
if (down == HIGH) {
if (a>0) a--;
}
if (down1 == HIGH) {
if (b>0) b--;
}
if (up1 == HIGH) {
if (b<255) b++;
}
}
else {
analogWrite(led, incremento);
incremento += a;
if ((a == 255) || (a == 0)) {
a *= -1;
}
delay(15);
analogWrite(led, incremento);
incremento = incremento + a;
if (incremento == 0 || incremento == 255) {
a = -a ;
}
delay(30);
analogWrite(10, incremento1);
incremento1 = incremento1 + b;
if (incremento1 == 255 || incremento1 == 0) {
b = -b ;
}
delay(30);
}
}