Ciao a Tutti,
in pratica dovrei accendere un led in dissolvenza quando schiaccio un pulsante e farlo spegnere quando lo ri schiaccio.. Ho provato più e più volte ma non funziona mai.. Uso un arduino UNO
Questa è la prima prova:
int led = 9;
int BUTTON = 7;
int val = 0;
int vecchio_val = 0;
int stato = 0;
int brightness = 0;
int fadeAmount = 5;
void setup() {
pinMode(led, OUTPUT);
pinMode(BUTTON, INPUT);
}
void loop() {
val = digitalRead(BUTTON);
// controlla se è accaduto qualcosa
if ((val == HIGH) && (vecchio_val == LOW)){
stato = 1 - stato;
delay(15);
}
vecchio_val = val;
if (stato == 1) {
analogWrite(led, brightness);
brightness = brightness + fadeAmount;
}
else {
if (brightness == 0 || brightness == 255) {
fadeAmount = -fadeAmount ;
}
}
}
Questa è la seconda
int value = 0;
#define LED 13 // LED collegato al pin digitale 13
#define BUTTON 7 // pin di input dove è collegato il pulsante
int val = 0; // si userà val per conservare lo stato del pin di input
int vecchio_val = 0; // si userà vecchio_val per conservare lo stato del pin di input al passo precedente
int stato = 0; // ricorda lo stato in cui si trova il led, stato = 0 led spento, stato = 1 led acceso
void setup() {
pinMode(LED, OUTPUT); // imposta il pin digitale come output
pinMode(BUTTON, INPUT); // imposta il pin digitale come input
}
void loop() {
val = digitalRead(BUTTON); // legge il valore dell'input e lo conserva
// controlla se è accaduto qualcosa
if ((val == HIGH) && (vecchio_val == LOW)){
stato = 1 - stato;
delay(15); // attesa di 15 millisecondi
}
vecchio_val = val; // ricordiamo il valore precedente di val
if (stato == HIGH)&& (value = 0, value <= 255, value += 5) {
analogWrite(LED, value);
delay(40);
}
}
ho fatto mille modifiche ma non funziona mai D: AIUTO