Ciao a tutti! Mi chiamo Edoardo, e sono alle prime armi con Arduino, cui mi sono avvicinato per provare a completare un progetto che ho in mente (ma è prematuro parlarne, lo so)
Ho acquistato la DUE (dietro consiglio di amici, la più idonea per il mio progetto - piuttosto che acquistare la UNO e poi la DUE, ho puntato ad un acquisto unico), insieme con un po' di ammenicoli, e sto seguendo i tutorial sul sito insieme al libro di Banzi.
La mia preparazione è una scarsa conoscenza del C++, pessimo corso universitario, discreta di Matlab e pessima in elettronica (Fisica due con 18 e calcio), quindi ottima no?
Sto provando a fare in modo che un led si accenda, si spenga o mantenga la sua condizione, a seconda di quanto una resistenza variabile con la luminosità gli dica, e, contemporaneamente, gestisca i transitori con una dissolvenza.
Ho scritto questo, che alla fine è venuto un po' pasticciato, a seguito di vari (troppi) rimaneggiamenti. Dove sbaglio? Cosa suggerireste?
Ho collegato il led ad un pin normale, mentre la resistenza ad un analogico
const int led = 12;
const int sensore = 0;
int val = 0;
int old_val = 0;
int i = 0;
void setup() {
pinMode(led,OUTPUT);
pinMode(sensore,INPUT);
Serial.begin(9600);
}
void loop() {
val = analogRead(sensore);
Serial.println(val); //per tenere d'occhio i valori
if(val > old_val){ //cioè se c'è più luce
for(i=255 ;i>0 ;i--){
analogWrite(led,i);
delay(25);
}
}else if(val < old_val){ //cioè se è più buio di prima
for(i=0;i<255;i++){
analogWrite(led,i);
delay(25);
}
}else if((val < old_val + 15) && (val > old_val-15)){
if(val < 150){
digitalWrite(led,HIGH);
}else{
digitalWrite(led,LOW);
}
}
old_val = val;
delay(3000);
}
Vi ringrazio infinitamente!
Edoardo