4° progetto (Arduino) – ADC con trimmer

Eccoci arrivati al quarto progetto per Arduino!

In questo progetto andremo a leggere una tensione variabile (compresa tra 0 – 5V) tramite l’ADC interno ad Arduino. La tensione verrà poi utilizzata per aumentare o diminuire la frequenza di un lampeggio led. (Eh sì, i led sono ovunque). Il valore convertito della tensione verrà inoltre stampato sul monitor seriale.

Fasi realizzazione progetto (dopo la sua creazione).

  1. Stesura del codice:
    1. Settaggio iniziale (pin e dispositivi)
    2. Progettazione e stesura del programma
    3. Verifica del codice e programmazione di Arduino
  2. Montaggio del circuito elettrico
  3. Test su breadboard

Stesura del codice.

N.B. La stesura del codice comporta alcune conoscenze in merito alle funzioni principali di Arduino, per questo vi rimando al primo progetto.

Settaggio iniziale (pin e dispositivi).
ComponentePIN
LED13
TrimmerA0
Nella tabella soprastante, sono elencati i componenti e i rispettivi pin che andremo ad utilizzare.

Il led che andremo ad utilizzare in questo progetto è il led presente sulla schedina, che è collegato al pin 13, mentre il trimmer lo andremo a collegare al pin A0. La morsettiera dei pin analogici è quella opposta a quella dei pin digitali.

void setup() {
  // Imposto il pin collegato al led come uscita
  pinMode(13, OUTPUT);
  // Imposto il monitor seriale per funzionare a 9600 baud
  Serial.begin(9600);
}
  • Il pin collegato al trimmer è già configurato per funzionare con tensioni analogiche, per questo non è necessaria alcuna configurazione.
Progettazione e stesura del programma.
void loop() {
 // Leggo la tensione proveniente dal trimmer e la converto in un valore a 8 bit (compreso tra 0 e 1023), direttamente proporzionale ad essa.
 valoreTrimmer = analogRead(0);
 // Stampo sul monitor seriale il valore della conversione
 Serial.println(valoreTrimmer);
 // Incremento il valoreTrimmer di 1000
 valoreTrimmer = valoreTrimmer + 1000;
 // Accendo il led
 digitalWrite(13, HIGH);
 // Aspetto un tempo x proporzionale al valore della tensione del trimmer
 delay(valoreTrimmer);
 // Accendo il led
 digitalWrite(13, LOW);
 // Aspetto un tempo x proporzionale al valore della tensione del trimmer
 delay(valoreTrimmer);
}
  • char analogRead(NumeroPin)  – la funzione legge la tensione variabile (0 – 5V) presente sul pin e la converte in un numero compreso tra 0 e 1023 (dal punto di vista hardware, questa funzione viene svolta dall’ADC – Analog to Digital converter).
Verifica del codice e programmazione di Arduino.

Una breve ricontrollata generale a tutto il codice unita a una buona riuscita nella compilazione del progetto ci permetteranno poi di programmare il nostro Arduino.

Per programmare correttamente Arduino occorre:

  • Salvare lo sketch
  • Impostare correttamente la porta USB a cui è collegato Arduino: Strumenti -> Porta -> selezionare la porta USB

Montaggio del circuito elettrico.

 

Mi raccomando prestate particolare attenzione alle varie alimentazioni perchè la mancata attenzione su ciò potrebbe portare alla rottura di diversi componenti.

Test su breadboard.

 

Download.

La cartella del progetto completo, compilato e funzionante la potete scaricare qui  Arduino_ADC

Lascia un commento