Utente:Daniel Gostoli/Arduino: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Etichetta: Editor wikitesto 2017 |
|||
Riga 210:
=== Codice ===
Per la realizzazione del progetto è stato utilizzato il seguente codice:
int pinMotore = 3;
int pinPulsante = 4;
int pinPotenziometro = A0;
int bootTime = 300;
</syntaxhighlight>Definisco le variabili e i pin dei componenti, più il boot time, ossia la velocità massima del motore alla sua accensione, indipendentemente dal potenziometro.<syntaxhighlight lang="arduino" line="1" start="5">
bool enabled = false;
int lastEnableValue = LOW;
unsigned long startTime = 0;
</syntaxhighlight>Creo delle variabili per la lettura dello stato del pulsante, e utilizziamo "unsigned long" per memorizzare il tempo in cui il motore è rimasto acceso.<syntaxhighlight lang="arduino" line="1" start="8">
int velocitàMotore = map(analogRead(pinPotenziometro), 0, 1023, 70, 255);
int enableValue = digitalRead(pinPulsante);
</syntaxhighlight>La velocità del motore viene impostata attraverso la lettura del potenziometro. I pin però restutiscono un valore da 0 a 1023, non compatibili con i pin pwm (da 0 a 255) quindi attraverso la funzione map effettuo una conversione proporzionale (70 è il valore minimo sotto il quale il motore smette di girare).<syntaxhighlight lang="arduino" line="1" start="10">
void setup(){
pinMode(pinMotore, OUTPUT);
Line 236 ⟶ 237:
enabled = !enabled;
}
</syntaxhighlight>Leggo il valore del pulsante, se esso è cambiato ed è uguale a HIGH, impostiamo il tempo attuale nella variabile startTime<syntaxhighlight lang="arduino" line="1" start="24">
lastEnableValue = enableValue;
Line 249 ⟶ 252:
delay(50);
}
</syntaxhighlight>Dopo aver aggiornato la variabile che verrà utilizzata nella if successiva, se il motore era acceso, dopo il tempo di accensione, viene letto il valore del potenziometro e si imposta la velocità del motore. Se siamo ancora nella fase inziale impostiamo il valore a 255 indipendentemente dal potenziometro. Se invece viene premuto il pulsante di nuovo impostiamo la velocità a 0.
=== Conclusioni ===
In conclusione, la realizzazione di questo circuito permette, grazie ad un pulsante, l'accensione e lo spegnimento del motore DC; la velocità del motore DC è regolata da un potenziometro, realizzando così una ventola.
|