Collegare più Sensori Ultrasuoni ad Arduino

Obiettivo: Utilizzare simultaneamente due sensori a ultrasuoni (HC-SR04). Nel dettaglio, al fine di dimostrare il corretto funzionamento del circuito, ad ogni sensore è associato un led. Quando la distanza misurata dal sensore è inferiore ad una data soglia, il led associato si accende, mentre quando la distanza è superiore il led si spegne.



Componenti elettronici:

  • Arduino UNO
  • Breadboard
  • 2 Sensori Ultrasuoni (e.g., HC-SR04)
  • 2 Led (utilizzati per dimostrare il funzionamento del circuito)
  • 2 Resistenze (100 Ohm) (indispensabili per il corretto funzionamento dei led)

Pre-Requisiti:


Il Sensore a Ultrasuoni


TeoriaIl sensore di prossimità è un dispositivo che permette di rilevare la presenza di oggetti nelle immediate vicinanze, senza che vi sia un effettivo contatto.
Nel caso specifico, il sensore di prossimità ad ultrasuoni sfrutta il principio del Sonar. Degli impulsi sonori (ultrasonici) vengono emessi dal dispositivo il quale attraverso l’eventuale eco di ritorno permette di rilevare la presenza di un oggetto all’interno della portata nominale. Esempi pratici di sensori ad ultrasuoni sono i sensori di retromarcia e di parcheggio utilizzati nelle moderne automobili.
Nel dettaglio, le principali caratteristiche tecniche del sensore ad ultrasuoni HC-SR04 sono:

  • Alimentazione: +5V DC
  • Angolo di misura: < 30°
  • Distanza di rilevamento: da 2cm a 400cm
  • Risoluzione: 1cm
  • Frequenza: 40kHz

Il sensore, dispone di 4 pin: Vcc (+5V), Trigger, Echo, GND.

  • VCC: +5V DC
  • Trigger: Genera l’impulso ultrasonico
  • Echo: Rileva il segnale ultrasonico di ritorno
  • GND: 0V Ground
Modello Sensore HC-SR04

Collegamento Circuitale:

La realizzazione hardware di circuiti che utilizzano più sensori ad ultrasuoni è relativamente facile. Ognuno dei pin di Echo e di Trig del sensore deve essere semplicemente collegato ai pin di input/output di Arduino.

Collegamento Circuitale

Codice:

Nel caso specifico, in cui si vogliano utilizzare più sensori ad ultrasuoni per misurare simultaneamente la distanza in più punti è opportuno gestire i sensori in modo corretto attraverso il relativo codice. Nel dettaglio, è importante considerare che inizialmente entrambi i sensori generano l’impulso utilizzato per determinare la distanza. In seguito le letture di echo (effettuate mediante l’istruzione pulseIn) sono eseguite in modo sequenziale (una dopo l’altra).






Il Sensore a Ultrasuoni

Obiettivo: Utilizzare un Sensore a Ultrasuoni (HC-SR04) per misurare la distanza.



Componenti elettronici:

  • Arduino UNO
  • Breadboard
  • 1 Sensore Ultrasuoni (e.g., HC-SR04)

TeoriaIl sensore di prossimità è un dispositivo che permette di rilevare la presenza di oggetti nelle immediate vicinanze, senza che vi sia un effettivo contatto.
Nel caso specifico, il sensore di prossimità ad ultrasuoni sfrutta il principe del Sonar. Degli impulsi sonori (ultrasonici) vengono emessi dal dispositivo il quale attraverso l’eventuale eco di ritorno permette di rilevare la presenza di un oggetto all’interno della portata nominale. Esempi pratici di sensori ad ultrasuoni sono i sensori di retromarcia e di parcheggio utilizzati nelle moderne automobili.
Nel dettaglio, le principali caratteristiche tecniche del sensore ad ultrasuoni HC-SR04 sono:

  • Alimentazione: +5V DC
  • Angolo di misura: < 30°
  • Distanza di rilevamento: da 2cm a 400cm
  • Risoluzione: 1cm
  • Frequenza: 40kHz

Il sensore, dispone di 4 pin: Vcc (+5V), Trigger, Echo, GND.

  • VCC: +5V DC
  • Trigger: Genera l’impulso ultrasonico
  • Echo: Rileva il segnale ultrasonico di ritorno
  • GND: 0V Ground
Modello Sensore HC-SR04

Pertanto considerando la formula che lega velocità, spazio e tempo:

s = v*t

e la velocità del suono pari a 343 m/s (che espressa in microsecondi diventa 0,0343 m/uS), si ottiene:

s = 0,0343*t

Considerando inoltre che il suono percorrerà due volte la distanza da misurare (dal sensore all’oggetto e dall’oggetto al sensore); il tempo t ottenuto deve essere diviso per due, ottenendo:

s = 0,0343*(t/2)

s = 0,01715*t

s = t/58,31

Per valutare la presenza di un oggetto è necessario rispettare il seguente “protocollo“:

  • Il PIN Trigger deve essere dettato alto (HIGH value) per almeno 10microsecondi.
  • In automatico il modulo HC-SR04 invierà 8 impulsi ultrasonici ad una frequenza pari a 40kHz.
  • Il PIN Echo viene posto in ascolto. Calcolando il tempo di arrivo/ritorno dell’impulso ultrasonico.

Collegamento Circuitale:

Collegamento Circuitale

Codice:


[crayon-67eede097cbcc704271748/]


PersonalizzazioniE’ possibile modificare il contrasto del display intervenendo sul potenziometro.





Le Funzioni digitalWrite, digitalRead, analogWrite e analogRead

Obiettivo: Imparare ad utilizzare le principali funzioni di Arduino



Arduino Porte (Input, Output, Digitali, Analogici)

Teoria:

Le principali funzioni utilizzate da Arduino per comunicare con il mondo esterno sono quattro e si dividono in base alla tipologia di azione:

  • Lettura: utilizzate per acquisire i dati dai differenti sensori (luminosità, temperatura, umidità, etc)
  • Scrittura: utilizzate per comandare i differenti attuatori (motori, buzzer, display, etc)

ed in base alla tipologia di segnale trattato:

  • Digitale: utilizzate per trattare segnali digitali che possono assumere solamente valori logici (i.e., LOW e HIGH)
  • Analogico: utilizzate per trattare segnali analogici con valori compresi tra 0 e 5V.

Nello specifico queste quattro funzioni sono così definite:

Codice:

  • digitalWrite: Funzione utilizzata per comandare attuatori mediante una logica LOW/HIGH come ad esempio motori, led o buzzer. Questa funzione prevede l’impiego di due parametri di input: il PIN (0-13) ed il VALORE (LOW/HIGH)

digitalWrite(pin, valore);



  • analogWrite: Funzione utilizzata per comandare attuatori mediante una logica analogica (valori compresi tra 0V e 5V) come ad esempio motori o led. Questa funzione prevede l’impiego di due parametri di input: il PIN (0-13) ed il VALORE (0-255). Nel caso specifico il valore 0 corrisponde a 0V mentre 255 a 5V. Per tutti gli altri VALORI si può attuare la proporzione lineare. (Ad esempio volendo generare un riferimento di tensione pari a 3Volt il VALORE di input può essere così calcolato: (3/5)*255. E’ importante considerare che i valori di tensione non sono “realmente” analogici ma generati attraverso la tecnica PWM. Inoltre, l’istruzione analogWrite può essere utilizzata solamente su alcuni pin digitali di output: i pin PWM (3,5,6,9,10,11).

analogWrite(pin, valore);



  • digitalRead: Funzione utilizzata per leggere dati da sensori basati su una logica LOW/HIGH come ad esempio i pulsanti. Questa funzione prevede l’impiego di un parametro di input: il PIN (0-13) ed un parametro di output: il VALORE (LOW/HIGH) che viene restituito dalla funzione.

valore= digitalRead(pin);



  • analogRead: Funzione utilizzata per leggere dati da sensori di tipo analogico (valori compresi tra 0V e 5V) come ad esempio fotoresistenze, sensori di temperatura, umidità etc. Questa funzione prevede l’impiego di un parametro di input: il PIN (A0-A5) ed un parametro di output: il VALORE (0-1023). Nel caso specifico il valore 0 corrisponde a 0V mentre 1023 a 5V. Per tutti gli altri VALORI si può attuare la proporzione lineare. (Ad esempio se viene letto il VALORE 512, la tensione di riferimento può essere così calcolata: (512/1023)*5.

valore = analogRead(pin);



Quiz


.wq-quiz-1080 { --wq-question-width: 100%; --wq-question-color: #009cff; --wq-question-height: auto; --wq-bar-color: #00c479; --wq-font-color: #444; --wq-background-color: #f2f2f2; }

A che valore di tensione corrisponde l'intero 818 letto attraverso la funzione analogRead

Correct! Wrong!

(818/1023)*4 = 1V

A che valore di tensione corrisponde l'intero 204 letto attraverso la funzione analogRead

Correct! Wrong!

(204/1023)*5 = 1V

A che valore di tensione corrisponde l'intero 511 letto attraverso la funzione analogRead

Correct! Wrong!

(511/1023)*5 = 2.5V

A che valore di tensione corrisponde l'intero 255 generato utilizzando la funzione analogWrite

Correct! Wrong!

(255/255)*5 = 5V

A che valore di tensione corrisponde l'intero 100 generato utilizzando la funzione analogWrite

Correct! Wrong!

(100/255)*5 = 1.96V

La funzione Valore = digitalWrite(11) è corretta?

Correct! Wrong!

La funzione digitalWrite non ha tipi di ritorno

La funzione digitalWrite(11,HIGH) è corretta?

Correct! Wrong!

La funzione analogWrite(11,1023) è corretta?

Correct! Wrong!

Il valore massimo di tensione per la funzione digitalWrite è pari a 255







Arduino e i 6 PIN Digitali Segreti

Obiettivo: Scoprire ed utilizzare i 6 pin digitali segreti di Arduino nel proprio progetto.

Arduino Porte (Input, Output, Digitali, Analogici)

Teoria:

Uno dei problemi più comunemente incontrati dagli sviluppatori è quello di finire i pin digitali necessari per collegare Arduino ad eventuali periferiche (sensori/attuatori). I pin digitali sono 14 e potrebbero bastare pochi elementi per terminarli (e.g., display, led, pulsanti, keypad). E’ importante inoltre considerare che i pin 0 ed 1 sono utilizzati per la comunicazione seriale pertanto ne è sconsigliato l’utilizzo.
Pertanto, le soluzioni alla carenza di pin digitali in un progetto che richieda più 14 pin sono:

  • Utilizzare una scheda più efficace come Arduino Mega
  • Utilizzare dei componenti elettronici aggiuntivi tipo buffer o registri
  • Utilizzare i 6 Pin Digitali Segreti (SOLUZIONE PROPOSTA)

Nello specifico è possibile utilizzare i 6 pin di input analogici (quelli che si trovano in basso a destra nella scheda) come pin di input/output digitali. Pertanto i PIN di input/output sono in tutto 20 e non 14 come sempre pensato.
Utilizzare i pin di input analogici come pin di input/output digitale è particolarmente semplice basta semplicemente indicare nell’istruzione pinmode il numero corretto definito nella seguente tabella:

Input Analogico Input/Output Digitale
A0 14
A1 15
A2 16
A3 17
A4 18
A5 19

Collegamento Circuitale:

Collegamento Circuitale

Codice: Viene in seguito riportato il codice necessario per accendere spegnere un led utilizzando il pin segreto 14.








Crepuscolare [Avanzato] (Smart Lamp)

Obiettivo: Accensione automatica di quattro LED al diminuire dell’intensità di luce rilevata.



Componenti elettronici:

  • Arduino UNO
  • Breadboard
  • 4 Led
  • 1 Foto-resistenza
  • 4 Resistenze (100Ohm) per Led
  • 1 Resistenza (2.2kOhm) per Foto-resistenza

TeoriaLa foto resistenza è un componente elettronico la cui resistenza è inversamente proporzionale alla quantità di intensità luminosa che lo colpisce. Questo significa che la corrente (inversamente proporzionale alla resistenza) aumenta all’aumentare dell’intensità luminosa.
A seguire, viene riportato la caratteristica Ohm/Lux di una fotoresistenza tipicamente impiegata in applicazioni realizzate mediante Arduino.

Datasheet Fotoresistenza

Nel caso specifico, è importante ricordare che Arduino non può rilevare né variazioni di resistenza né variazioni di corrente. Il microcontrollore può infatti analizzare solamente valori di tensione. Per questo motivo, l’utilizzo di una resistenza è indispensabile al fine di collegare correttamente la fotoresistenza ad Arduino. Nel dettaglio, il circuito previsto per trasformare la variazione di resistenza in una variazione di tensione è il partitore di tensione.

Partitore di Tensione e Fotoresistenza

Nel circuito presentato, la variazione di luminosità produce una variazione del valore della fotoresistenza. Di conseguenza anche il valore della corrente risulta funzione dell’intensità luminosa e di conseguenza anche il valore di tensione in ingresso ad Arduino. Nel dettaglio:

  • Un incremento della luminosità porta ad un decremento della tensione.
  • Un decremento della luminosità porta ad un incremento della tensione.
    • se il pulsante viene premuto la tensione in ingresso ad Arduino è pari a 0.
    • se il pulsante non viene premuto la tensione in ingresso ad Arduino è pari a Vcc (5V)
  • Resistenza di Pull Down:
    • se il pulsante viene premuto la tensione in ingresso ad Arduino è pari a Vcc (5V).
    • se il pulsante non viene premuto la tensione in ingresso ad Arduino è pari a 0.

Attraverso l’utilizzo del comando analogRead è possibile leggere la tensione su uno specifico pin analogico (A0-A5) di Arduino. La funzione analogRead restituisce un valore compreso tra 0 e 1023 a seconda della tensione letta dal microcontrollore.
A titolo di esempio, se il valore di tensione letto utilizzando la funzione analogRead sul pin A0 di Arduino risulta pari a 613. Il valore di tensione può essere facilmente calcolato:

valoreTensioneAnalogico = 613/1023*5 = 3V

dove:

  • Il valore analogico di tensione letto utilizzando l’istruzione analogRead è pari a 613
  • Il valore di tensione massimo che può essere letto dalla funzione analogRead è pari a 1023
  • La tensione massima in uscita ad Arduino è pari a 5V

Tale valore può essere facilmente utilizzato per controllare uno o più led mediante l’istruzione condizionale IF.

Collegamento Circuitale:

Collegamento Circuitale

Codice:

A seguire viene riportata la schematizzazione mediante flowchart dell’algoritmo utilizzato per realizzare il programma.

Flowchart

Codice:


[crayon-67eede0980642560035716/]

P




Crepuscolare (Smart Lamp)

Obiettivo: Accensione automatica di un LED al diminuire dell’intensità di luce rilevata.



Componenti elettronici:

  • Arduino UNO
  • Breadboard
  • 1 Led
  • 1 Foto-resistenza
  • 1 Resistenza (2.2kOhm)

TeoriaLa foto resistenza è un componente elettronico la cui resistenza è inversamente proporzionale alla quantità di intensità luminosa che lo colpisce. Questo significa che la corrente (inversamente proporzionale alla resistenza) aumenta all’aumentare dell’intensità luminosa.
A seguire, viene riportato la caratteristica Ohm/Lux di una fotoresistenza tipicamente impiegata in applicazioni realizzate mediante Arduino.

Datasheet Fotoresistenza

Nel caso specifico, è importante ricordare che Arduino non può rilevare né variazioni di resistenza né variazioni di corrente. Il microcontrollore può infatti analizzare solamente valori di tensione. Per questo motivo, l’utilizzo di una resistenza è indispensabile al fine di collegare correttamente la fotoresistenza ad Arduino. Nel dettaglio, il circuito previsto per trasformare la variazione di resistenza in una variazione di tensione è il partitore di tensione.

Partitore di Tensione e Fotoresistenza

Nel circuito presentato, la variazione di luminosità produce una variazione del valore della fotoresistenza. Di conseguenza anche il valore della corrente risulta funzione dell’intensità luminosa e di conseguenza anche il valore di tensione in ingresso ad Arduino. Nel dettaglio:

  • Un incremento della luminosità porta ad un decremento della tensione.
  • Un decremento della luminosità porta ad un incremento della tensione.

Attraverso l’utilizzo del comando analogRead è possibile leggere la tensione su uno specifico pin analogico (A0-A5) di Arduino. La funzione analogRead restituisce un valore compreso tra 0 e 1023 a seconda della tensione letta dal microcontrollore.
A titolo di esempio, se il valore di tensione letto utilizzando la funzione analogRead sul pin A0 di Arduino risulta pari a 613. Il valore di tensione può essere facilmente calcolato:

valoreTensioneAnalogico = 613/1023*5 = 3V

dove:

  • Il valore analogico di tensione letto utilizzando l’istruzione analogRead è pari a 613
  • Il valore di tensione massimo che può essere letto dalla funzione analogRead è pari a 1023
  • La tensione massima in uscita ad Arduino è pari a 5V

Tale valore può essere facilmente utilizzato per controllare un led mediante l’istruzione condizionale IF.

Collegamento Circuitale:

Collegamento Circuitale

Codice:

A seguire viene riportata la schematizzazione mediante flowchart dell’algoritmo utilizzato per realizzare il programma.

Flowchart


[crayon-67eede098146c825326976/]

Personalizzazioni:

E’ possibile modificare il circuito aggiungendo altri led. E’ inoltre possibile modificare il codice al fine di realizzare una lampada che accenda un numero differente di led in funzione della luminosità.




Controllo di un LED mediante un Potenziometro

Obiettivo: Controllare un LED utilizzando un potenziometro



Pre-Requisiti


Fading led


Componenti elettronici:

  • Arduino UNO
  • Breadboard
  • 1 Led
  • 1 Resistenza (100 Ohm)
  • 1 Trimmer (4.7KOhm o similari)

TeoriaIn questo articolo si propone l’utilizzo di un potenziometro per regolare in modo manuale la luminosità di un LED. E’ importante considerare che (come riportato nei pre-requisiti) l’impiego della funzione digitalWrite non permette di modulare l’intensità luminosa del LED. Difatti, attraverso l’utilizzo di questa istruzione digitale, il LED può trovarsi solamente in due stati logici LOW (spento) o HIGH (acceso).
Per raggiungere lo scopo prefissato è pertanto necessario l’utilizzo di una differente funzione denominata: analogWrite. Questa funzione permette infatti di modulare l’intensità luminosa del LED fornendo 256 differenti livelli di luminosità. L’istruzione analogWrite permette infatti di emulare un finto segnale analogico attraverso l’impiego della tecnica PWM (Pulse Width Modulation). Solamente sei PIN (quelli contrassegnati dal simbolo tilde ~) possono essere utilizzati per fornire un segnale “analogico”.

Tuttavia è importante considerare che se l’istruzione analogwrite permette di gestire la luminosità del LED, questa funzione non permette di controllare la posizione del potenziometro essendo il potenziometro un dispositivo di input (dato da leggere). Pertanto per la gestione del potenziometro sarà effettuata utilizzando una differente funzione denominata analogRead. Questa funzione permette infatti di leggere un livello di tensione compreso tra 0 e 5 Volt e mapparlo in un intervallo discreto composto da 1024 livelli (0-1023).

Collegamento Circuitale:

Collegamento Circuitale

Codice:






Pulsante come Interruttore

Obiettivo: Utilizzo di un pulsante come interruttore per l’accensione di un led (stato ON/OFF)



Componenti elettronici:

  • Arduino UNO
  • Breadboard
  • 1 Led
  • 1 Pulsante
  • 1 Resistenza (100 Ohm)
  • 1 Resistenza (1kOhm)

Pre-Requisiti


LED e Pulsante


TeoriaDa un punto di vista pratico mantenere una luce accesa tenendo premuto il pulsante (vedi lezione pre-requisiti) non è proprio il massimo della vita. Se da un punto di vista elettronico il componente tipicamente utilizzato per gestire lo stato ON/OFF di una lampada è l’interruttore, attraverso una corretta gestione del software di controllo è possibile “trasformare un pulsante in interruttore”. Per questo motivo, agendo direttamente sul software e lasciando invariato l’hardware proposto nell’esperienza LED e Pulsante, è possibile trasformare il sistema in questione in un controllo ON/OFF dove il pulsante è utilizzato come interruttore.

Datasheet Pulsante

Anche se in questa esperienza il pulsante viene utilizzato come interruttore è importante ribadire che l’impiego di resistenze di Pull-up o Pull-down sono necessarie per un corretto funzionamento del circuito.Maggiori informazioni sulle resistenze di Pull-up o Pull-down possono essere trovate qui.

Collegamento Circuitale:

Collegamento Circuitale

CodiceIl codice utilizzato per trasformare il pulsante in interruttore si basa sull’impiego di due differenti variabili globali (create fuori dalle funzioni loop e setup, pertanto visibili in tutto il codice). Queste variabili sono:

  • valButtonOld: Memorizza la lettura precedente effettuata sul pulsante. Attraverso questa variabile è possibile evitare letture multiple. E’ importante considerare che essendo il clock di Arduino più elevato del tempo di reazione umano, premendo il pulsante anche per un istante brevissimo il controllore eseguirà più letture con stato del pulsante HIGH eseguendo in seguito il codice corrispondente. Per questo motivo si preferisce leggere lo stato di transizione da basso ad alto piuttosto che lo stato alto di un pulsante.
Esempio di lettura multipla
  • ledState: Memorizza lo stato del led (se acceso o spento). Premuto il pulsante, nel caso in cui il led sia acceso questo viene spento viceversa nel caso in cui il led sia spento questo viene acceso. Per questo motivo è indispensabile utilizzare una variabile per controllare lo stato del pulsante.



Personalizzazioni:

L’impiego della variabile valButtonOld, utilizzata per evitare letture multiple, può essere evitato aggiungendo un delay dopo la lettura del pulsante. Si provi ad implementare il circuito ed il relativo codice.




LED e Pulsante

Obiettivo: Accensione di un LED mediante un pulsante.



Componenti elettronici:

  • Arduino UNO
  • Breadboard
  • 1 Led
  • 1 Pulsante
  • 1 Resistenza (100 Ohm)
  • 1 Resistenza (1kOhm)

TeoriaIl pulsante è un dispositivo elettronico a due stati (ON, OFF) con una sola posizione monostabile. Nel caso specifico i pulsanti permettono di aprire o chiudere un circuito e pertanto collegare a GND (0V) o a VCC (5V) una specifica uscita. A seguire, viene riportato lo schema circuitale di un pulsante tipicamente impiegato in applicazioni realizzate mediante Arduino.

Datasheet Pulsante

L’utilizzo di una resistenza è indispensabile al fine di collegare correttamente il pulsante ad Arduino evitando cortocircuiti. A seconda del collegamento realizzato, la resistenza prende il nome di:

  • Resistenza di Pull Up: la resistenza viene collegata direttamente all’alimentazione.
  • Resistenza di Pull Down: la resistenza viene collegata a massa.
Resistenze di Pull Up e di Pull Down

Il comportamento del circuito e la tensione letta dal microcontrollore dipende dalla tipologia di collegamento circuitale utilizzato. In particolare:

  • Resistenza di Pull Up:
    • se il pulsante viene premuto la tensione in ingresso ad Arduino è pari a 0.
    • se il pulsante non viene premuto la tensione in ingresso ad Arduino è pari a Vcc (5V)
  • Resistenza di Pull Down:
    • se il pulsante viene premuto la tensione in ingresso ad Arduino è pari a Vcc (5V).
    • se il pulsante non viene premuto la tensione in ingresso ad Arduino è pari a 0.

Attraverso l’utilizzo del comando digitalRead è possibile leggere la tensione su uno specifico pin digitale (0-13) di Arduino. La funzione digitalRead restituisce un valore (i.e., LOW o HIGH) a seconda della tensione letta dal microcontrollore. Tale valore può essere facilmente utilizzato per controllare un led mediante l’istruzione condizionale IF.

A seguire viene riportato lo schema elettrico ed il codice utilizzato per l’accensione di un pulsante sfruttando una resistenza di Pull Down.

Collegamento Circuitale:

Collegamento Circuitale

Codice:

A seguire viene riportata la schematizzazione mediante flowchart dell’algoritmo utilizzato per realizzare il programma.

Flowchart



Personalizzazioni:

E’ possibile modificare il circuito aggiungendo pulsanti e led. E’ inoltre possibile modificare il codice al fine di realizzare una lampada che rimanga acceso fino a quando il pulsante non venga premuto una seconda volta (Attenzione possibili problematiche di rimbalzo).




Il LED RGB

Obiettivo: Accensione di un LED RGB (Red Green Blue) .



Componenti elettronici:

  • Arduino UNO
  • Breadboard
  • 1 Led RGB
  • 3 Resistenza (100 Ohm)

TeoriaGli RGB rappresentano una particolare sottocategoria di LED capaci di riprodurre differenti colori attraverso la combinazione dei colori fondamentali Rosso Verde e Blu. Nel dettaglio, questi dispositivi sono costituiti da tre differenti led azionati in funzione del colore da riprodurre.

I LED RGB sono dotati di 4 differenti morsetti e sono così classificati:

  • RGB ad Anodo Comune: il pin più lungo del LED deve essere collegato a massa (GND) mentre gli altri 3 differenti PIN sono utilizzati per comandare i 3 LED (rosso, verde, blue). Nel caso in questione i singoli LED sono accesi attraverso l’istruzione Arduino digitalWrite(pinLed, HIGH);
  • RGB a Catodo Comune: il pin più lungo del LED deve essere collegato a VCC (5V) mentre gli altri 3 differenti PIN sono utilizzati per comandare i 3 LED (rosso, verde, blue). Nel caso in questione i singoli LED sono accesi attraverso l’istruzione Arduino digitalWrite(pinLed, LOW);
LED RGB (Anodo e Catodo comune)

Collegamento Circuitale:

Viene in seguito riportato lo schema elettrico utilizzato per comandare il LED RGB. Nel dettaglio il LED impiegato è della modalità catodo comune.

Collegamento Circuitale

Codice:

Considerando l’impiego di un LED a catodo comune i singoli LED (R, G, B) possono essere accesi mediante l’istruzione digitalWrite(pinLed,HIGH);



Personalizzazioni:

E’ possibile modificare il circuito aggiungendo pulsanti