Ciao a tutti,sono appena entrato nella vostra comunità e nel mondo di arduino e ne sono veramente entusiasta.
Comincio col ringraziarvi in anticipo perchè già leggendo i precedenti post molti dubbi sono evaporati.
Due domande però rimangono e mi sembrano risolvibili con l'aiuto di qualcuno che ne sa più di me...probabilmente quindi chiunque...
Vi spiego:ho costruito una lampada che dovrebbe accendersi con una sequenza di diversi led (alcune sono batterie di led in serie ed anche led high power da 3w).
Ho alimentato tutto a 12v ed ho usato transistor e mosfet per pilotare i led in pwm.
Funziona tutto piuttosto bene a parte una cosa:quando il faretto da 3w (l'unico collegato al mosfet) si accende in dissolvenza la prima volta dopo un periodo di inattività, fila tutto liscio e l'accensione è fluida.
Se però ripeto il loop subito dopo, nell'accendersi prima fa un piccolo lampo poi inizia la dissolvenza.
Ecco io vorrei eliminare questo lampo...può essere che non c'è un diodo in parallelo al led?
Altra cosa:
vi posto lo sketch questa semplicissima prova di accensione perchè vorrei informazioni su come poter fare partire le diverse dissolvenze simultaneamente ma con tempi di arrivo diversi.
Per adesso sono solo una sequenza..
#define fioreblu 6 //led fiore blu
#define fiorebia 9 //led fiore bianchi
#define fusto 5
#define apicale 10
void setup()
{
pinMode(fusto, OUTPUT);
pinMode(fioreblu, OUTPUT);
pinMode(fiorebia, OUTPUT);
pinMode(apicale, OUTPUT);
}
void loop()
{
for (int fadeValuefusto = 0; fadeValuefusto <= 100; fadeValuefusto++)
{analogWrite(fusto, fadeValuefusto); // dissolvenza fusto
delay(10); //durata dissolvenza
}
for (int fadeValuefioreblu = 0; fadeValuefioreblu <= 100; fadeValuefioreblu ++)
{
analogWrite(fioreblu, fadeValuefioreblu);
delay(5);
}
for (int fadeValuefiorebia = 0; fadeValuefiorebia <= 255; fadeValuefiorebia++)
{
analogWrite(fiorebia, fadeValuefiorebia);
delay(5);
}
for (int fadeValueapicale =0;fadeValueapicale<=255;fadeValueapicale++)
{
analogWrite(apicale,fadeValueapicale);
delay (10);
}
delay (3000);
digitalWrite(fusto,LOW);
digitalWrite (fioreblu,LOW);
digitalWrite(fiorebia,LOW);
digitalWrite (apicale,LOW);
delay(1500);
}
Spero in vostro aiuto
In ogni caso grazie ancora