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: <syntaxhighlight lang="arduino" line="1">
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.
</syntaxhighlight>
 
=== 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.