Level converter per Arduino (e non solo)


Ciao a tutti!

Il tutorial di oggi è davvero veloce però il componente di cui vi parlerò potrà tornare molto utile in tanti progetti.
Si tratta di un convertitore di livello bidirezionale chiamato anche BD-LLC.



Questo circuitino ci semplifica la vita quando dobbiamo far comunicare Arduino con altri dispositivi via seriale, ad esempio moduli bluetooth e alcuni moduli radio e wifi.

In particolare quando si vuole interfacciare uno di questi moduli ad Arduino bisogna considerare il fatto che Arduino per comunicare via seriale porta il pin TX tra 0 e 5V, mentre molti moduli si aspettano in ingresso un livello di 3.3V, quindi oltre a non comunicare rischieremmo anche di danneggiarli.

Stesso discorso per il pin in ricezione, dove Arduino si aspetta un livello alto di 5V, mentre il suddetto modulo porterebbe il livello a 3.3V avendo potenzialmente una comunicazione non ottimale.




Il convertitore di livello ci viene incontro in questi casi, dando in pasto ad Arduino o ai moduli collegati esattamente le tensioni che necessitano, convertendo istantaneamente i livelli logici.

Ecco lo schema elettrico di un canale di questo circuito:






Ed ecco un esempio pratico di collegamento tra Arduino ed un modulo bluetooth con alimentazione tra 3.6 e 6 V ma segnali seriali di livello 3.3V:




Se volete saperne di più ecco un'esaustiva guida  (in inglese) dove potrete anche acquistare il level converter.

Per eventuali dubbi lasciate pure un commento qui sotto, ciao!
Seguimi sulle mie pagine per rimanere sempre aggiornato sui nuovi post!

5 commenti:

  1. buongiorno
    io ho il problema inverso. Ho una MKR1000 che fornisce solo tensioni da 3,3V
    ed ho un GPS che funziona con una VCC di 5V. E' possibile usare questo level converter
    per fornire 5V su HV-GND partendo dai 3.3 su LV-GND?? Grazie Luca

    RispondiElimina
    Risposte
    1. Si il componente è bidirezionale, quindi nessun problema, come descritto anche nel link alla fine del post

      Elimina
    2. ciao io sto utilizzando questo componente "
      Gaoxing Tech. 5PCS 2 canale logico convertitore di livello 3.3V a 5V TTL bidirezionale Module per Arduino " per leggere da seriale >Esp12F dei dati da un modulo modbus 485.
      Putroppo non funziona.
      In aggiunta devo passare anche un PIN D5 per il DERE del modulo mbus.
      Lo faccio transitare sempre all interno del convertitore ?
      se si su che pin Rx o TX? del convertitore.

      ciao e grazie

      Elimina
  2. Ho lo stesso problema di Luca Innocenti e non mi è chiara una cosa: vedo che il level converter è alimentato sia a 5v che a 3.3v, se la mia board fornisce solo alimentazione a 3.3v come port i 5v al level converter? Grazie :)

    RispondiElimina
    Risposte
    1. I 5v li devi portare tu al sensore se funziona a 5v. Il modulo non è uno step up ma solo un level converter per i segnali logici

      Elimina

Lascia un commento qui sotto, ti risponderò il prima possibile!

Altri Post