Interfacciare Arduino con dispositivi a 3,3V? Si può!

Arduino è uno strumento insostituibile nel campo del making, tuttavia a seconda della tipologia di progetto possono presentarsi problemi di difficile risoluzione. Uno di questi è il problema derivante dal funzionamento dei dispositivi a 3,3V con Arduino che eroga 5V in Output. Se anche voi siete alle prese con questo scoglio, seguiteci e ne verremo a capo.

Perché si presenta il problema?

 

Benché molti dispositivi abbiano una tolleranza che permetta loro di essere alimentati anche a 5V (vi ricordate quando vi dicevamo di leggere sempre i datasheet dei componenti?), molti di questi non permettono di arrivare a voltaggi così elevati. Leggete attentamente le specifiche del costruttore e non andate alla cieca, perché pilotare a 5V un sensore che ne tollera 3,3 soltanto, significa solo una cosa: bruciarlo. Non dimenticate mai che l’elettronica prima vi fa l’esame,  poi vi spiega la lezione!

Se vi state chiedendo perché esistano sensori a 3,3V e sensori a 5V, sappiate che la scelta è puramente tecnica: meno tensione di alimentazione significa capacità di integrazione maggiore (circuiteria più piccola), ma allo stesso tempo quantità inferiore di calore da dissipare (chip più piccoli). Allo stesso tempo, un dispositivo a 3,3V è più veloce di uno a 5V. Non ci credete? Facciamo una prova: contiamo da 0 a 3 e da 0 a 5. Quale dei due conteggi è più rapido da eseguire? Da 0 a 3, ovviamente. In elettronica è lo stesso discorso: la velocità di commutazione 0 –> 1 e 1 –>0 è regolata dalla differenza di tensione presente tra lo stato logico basso (0) e lo stato logico alto (1). Più la differenza tra le due tensioni è ridotta, più il dispositivo è veloce, a tutto vantaggio delle prestazioni.

Quel gran genio del mio Arduino

 

Arduino

 

Ma allora perchè Arduino fornisce i 5V e non i 3,3V di default? Semplice, si è voluta mantenere la massima compatibilità anche con sensori o dispositivi più datati. Il making è spesso basato su componentistica di recupero, pertanto tagliare fuori tutto ciò che non è 3,3V sarebbe stato davvero un peccato. Per comprendere il motivo per cui un sensore rischia di bruciarsi, occorre avere ben chiaro come funziona Arduino a livello di Input e Output:

  • Livello logico basso (0): tensione inferiore a 2,5V.
  • Livello logico alto (1): tensione maggiore di 2,5V.

Fin qui, tutto normale, direte voi. E invece no, perché occorre sempre prestare attenzione al sistema I/O di Arduino.

  • INPUT (Dispositivo –> Arduino): Ciò che è collegato ad Arduino, invia un segnale logico alto (3,3V) o basso (inferiore a 2,5V) e il funzionamento è perfetto. In altre parole, Arduino “Legge” ciò che il dispositivo gli invia, comportandosi di conseguenza.
  • OUTPUT (Arduino –> Dispositivo): in questa situazione è Arduino a inviare in uscita un livello di tensione. E indovinate un po’? Se è alto (1), manda in uscita i 5V! Se ciò che c’è dopo è un componente datato, non c’è problema. Se però è della nuova generazione, potete buttarlo nella spazzatura.

Per risolvere il problema, dobbiamo “impedire” ai 5V di arrivare direttamente al dispositivo collegato, mettendo tra Arduino e ciò che c’è a valle, qualcosa che si occupi di “placarne la furia”. A questo proposito, la soluzione si chiama…

Convertitore Bi-direzionale di Livello Logico

 

Tranquilli, non è un’arma di distruzione di massa e non dovrete recarvi nell’Area 51 per sperare di portarne a casa uno. Lo potete trovare qui!

Per lo schema dei collegamenti, seguire il disegno:

 

Arduino

  • GND: collegamento di massa sui pin di Arduino e del dispositivo.
  • 5V (HV): tensione di alimentazione del pin di Arduino.
  • 3.3V (LV): tensione di alimentazione del pin del dispositivo.
  • RX (HV2): linea di ricezione sul pin di Arduino.
  • TX (LV2): linea di trasmissione sul pin del dispositivo.
  • RX (LV1): linea di ricezione sul pin del dispositivo.
  • TX (LV1): linea di trasmissione sul pin di Arduino.

 

In questo modo, interfacciare dispositivi alimentati a 3,3V con Arduino è un gioco da ragazzi. Il kit viene fornito con gli header da saldare, in modo tale da favorirne l’utilizzo su breadboard.

 

###Da sempre appassionato di tecnologia, soffro di insaziabile curiosità scientifica. Adoro sperimentare e approfondire le mie conoscenze sulle ultime novità sul mercato in termini di hardware, alta tecnologia e videogiochi. Attratto e coinvolto nella prototipazione hardware dalla piattaforma Arduino, Raspberry Pi e Nvidia Jetson.### ###Always passionate about technology, I am suffering from insatiable scientific curiosity. I love experimenting and deepening of my knowledge on the latest news on the market in terms of hardware, hi-tech and video games. Got attracted and involved in hardware prototyping by the Arduino platform, Raspberry Pi and Nvidia Jetson.###

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.