Il sito per chi ama smanettare con Arduino, Raspberry Pi & Co.
Share:
Notifications
Clear all

Primi passi con arduino  

   RSS

0

Buongiorno, ringrazio per avermi accettato nel vostro forum, perdonatemi se non rispetto qualche regola del forum sono nuovo anche del forum.

Vengo al dunque, ho una scheda Arduino uno ho copiato questo codice facendo una ricerca su internet.

/*
Assolvenza e dissolvenza di un diodo led
*/
//Dichiaro le variabili e associo un numero intero che corrisponde al pin digitale di Arduino
int LED = 9;
// espresso in millisecondi
int ritardo = 5;
// definisco il pin LED come OUTPUT
void setup() {
pinMode(LED, OUTPUT);
}
// Ripeti queste istruzioni all'infinito
void loop()
{
// imposto il PWM da 0 a 255 per qualche millisecondo
for(int ValorePWM = 0; ValorePWM <=255; ValorePWM++)
{
analogWrite(LED, ValorePWM);
delay(10);
}
//Imposto il PWM da 255 a 0 per qualche millisecondo
for(int ValorePWM = 255; ValorePWM >=0; ValorePWM--){
analogWrite(LED, ValorePWM);
delay(10);
}
}

funziona correttamente infatti il diodo led sia accende e si spegne gradualmente.

Mi sono permesso di modificare il codice cercando, scopiazzando una parte di codice e implementando questo attuale in questo modo.

//accensione e spegnimento graduale con pulsanti

int ledPin = 9;
int buttonApin = 7;
int buttonBpin = 8;

byte leds = 0;

void setup()
{
pinMode(ledPin, OUTPUT);
pinMode(buttonApin, INPUT_PULLUP);
pinMode(buttonBpin, INPUT_PULLUP);
}

void loop()
{
if (digitalRead(buttonApin) == LOW)
{
for(int ValorePWM = 0; ValorePWM <=255; ValorePWM++)
analogWrite(ledPin, ValorePWM);
delay(10);
}
if (digitalRead(buttonBpin) == LOW)
{
for(int ValorePWM = 255; ValorePWM >=0; ValorePWM--)
analogWrite(ledPin, ValorePWM);
delay(10);

}
}

In teoria il mio scopo era quello di accendere gradualmente il led alla pressione di pulsante A e spegnere gradualmente il led con il pulsante B, ma non funziona, mi potete dare consigli e farmi capire dove ho sbagliato?

Premetto che ho discreta conoscenza del VBA  ma, sono alle prime armi, con il codice che utilizza Arduino, questo che ho scritto è generato da un mix di 2 codici, che ho trovato cercando su internet.

Questa discussione è stata modificata 4 mesi fa da Alessandro

Ho risolto vi mostro il codice corretto ho impiegato un podi tempo a capire il codice nuovo, ma alla fine è molto simile al VBA basta fare le cose con criterio
//Accensione e spegnimento graduale in 30 minuti
// 07/03/2020 By Walter Martucci
// Assegno le variabili
int ledPin = 9;
int buttonApin = 7;
int buttonBpin = 8;
int ritardo = 7100;

void setup()
// assegno i pin di ingresso e uscita
{
pinMode(ledPin, OUTPUT);
pinMode(buttonApin, INPUT_PULLUP);
pinMode(buttonBpin, INPUT_PULLUP);
}
//Ripeti all'infinito
void loop()
//Pongo le condizioni dei pulsanti di accensione e spegnimento
{
if (digitalRead(buttonApin) == LOW)
for(int Val1 = 0; Val1 =0; Val2--)
{
analogWrite(ledPin, Val2);
delay(ritardo);
}

}
Adesso se utilizzate un mosfet e una strip led potete accenderla e spegnerla in base al tempo impostato alla variabile ritardo sono millisecondi per step quindi 7,1 secondi per 255 steps sono 1810,5 secondi 30,175 minuti

5 Answers
0

//Accensione e spegnimento graduale in 30 minuti
// 07/03/2020 By Walter Martucci
// Assegno le variabili
int ledPin = 9;
int buttonApin = 7;
int buttonBpin = 8;
int ritardo = 7100;

void setup()
// assegno i pin di ingresso e uscita
{
pinMode(ledPin, OUTPUT);
pinMode(buttonApin, INPUT_PULLUP);
pinMode(buttonBpin, INPUT_PULLUP);
}
//Ripeti all'infinito
void loop()
//Pongo le condizioni dei pulsanti di accensione e spegnimento
{
if (digitalRead(buttonApin) == LOW)
for(int Val1 = 0; Val1 =0; Val2--)
{
analogWrite(ledPin, Val2);
delay(ritardo);
}

}

Questo post è stato modificato 4 mesi fa 3 times da WalterMart
0

Ho risolto vi mostro il codice corretto ho impiegato un po di tempo a capire il codice nuovo, ma alla fine è molto simile al VBA basta fare le cose con criterio

Adesso se utilizzate un mosfet e una strip led potete accenderla e spegnerla in base al tempo impostato alla variabile ritardo sono millisecondi per step quindi 7,1 secondi per 255 steps sono 1810,5 secondi 30,175 minuti

0

Questo è lo schema

https://imgur.com/p0hSgrx

0

Grande! Facci conoscere i tuoi prossimi progetti

0

Sicuramente condividerò con voi tutti i miei progressi, il prossimo passo sarà come ho già descritto quello di dimmerare una strip led con un mosfet 😉

Share:

Entra nel forum

Hai un nuovo progetto in mente ma hai dei dubbi su come realizzarlo? Vuoi condividere la tua conoscenza da maker con gli altri? Registrati nella nostra community e potrai chiedere fare la tua domanda o rispondere e condividere la tua conoscenza in internet.