1. A breve aggiorneremo la piattaforma di Reboot per risolvere alcuni problemi con i plug-in, quindi chiediamo ancora un po' di pazienza, Lo staff di Reboot

Guida Conversione Arduino UNO a 3,3V

Discussione in 'Arduino tutorial' iniziata da StandardBus, 5 Ott 2015.

  1. StandardBus

    StandardBus Staff Alan Staff

    Iscritto:
    15 Dic 2014
    Messaggi:
    4.092
    Like ricevuti:
    5.297
    Alcune volte, trafficando con Arduino, si ha a che fare con integrati o moduli che funzionano a 3,3V.
    Arduino UNO è la board open hardware più diffusa della famiglia Arduino, ed il suo livello logico alto è di 5V, che sono decisamente troppi per lavorare con dispositivi a 3,3V. Per fare un esempio tra tutti... le schede SD funzionano a 3,3V, e collegarle direttamente ad Arduino UNO significa rischiare di danneggiarle. Idem per l'ESP8266. Per ovviare al problema si può decidere di...
    • ricorrere al metodo del partitore di tensione, usando un paio di resistori
    • usare un convertitore di livello logico, che permette di convertire un qualsiasi segnale da 5V a 3,3V e viceversa... oppure
    • far lavorare direttamente Arduino UNO a 3,3V, utilizzando solamente un regolatore di tensione LM1117 a 3,3V o equivalente ed un diodo 1N4007.
    In questo tutorial voglio proprio spiegarvi come si può alimentare a 3,3V Arduino UNO limitando a questa tensione il suo livello logico alto.
    Quello nelle foto è un Arduino UNO R3, ma non è difficile adattare il tutorial anche agli altri due modelli. I componenti a cui si fa riferimento ci sono su tutta la serie UNO e sono posizionati più o meno allo stesso modo.

    Far funzionare Arduino UNO a 3,3V è possibile? Si rischiano danni alla scheda?

    Arduino UNO utilizza due microcontroller, Atmega8U2 su R1 ed R2 / Atmega16U2 su R3 (utilizzati come interfaccia USB-seriale) e l'Atmega328P che abbiamo imparato a conoscere e che è il cuore vero e proprio di Arduino, fin dalle prime versioni.

    Ho linkato i datasheet di ognuno dei chip, e se fate una ricerca al loro interno, sotto "Operating voltage" troverete che 8U2 e 16U2 funzionano senza problemi a tensioni che vanno da 1,8 a 5,5V, mentre il 328P richiede dai 2,7V minimi ai 5,5V massimi. In tutti i casi i 3,3V non sono assolutamente un problema, e rientrano nelle specifiche dei componenti.
    La stessa cosa non può essere applicata anche per Arduino Duemilanove, che comunque non è più in commercio: il convertitore USB-seriale FT232R prodotto da FTDI funziona solo da tensioni che partono a 4.0V. Per farlo funzionare a 3,3V serve un quarzo oscillatore supplementare.

    [​IMG]
    Sostituzione del regolatore di tensione

    Passiamo all'azione. Come prima cosa dovremo individuare il regolatore di tensione a 5V sul nostro Arduino UNO. Questo componente ha lo scopo di abbassare la tensione da un max di 20V ai 5V a cui Arduino funziona (È questo componente a permettere che Arduino venga alimentato tramite il jack cilindrico anche da pila 9V e alimentatori 12V).
    Cambiandolo con un regolatore di tensione a 3,3V non cambieremo la tensione di alimentazione possibile, che sarà sempre di 20V massimi.

    [​IMG]

    Basterà quindi dissaldare il regolatore a 5V (LM1117 5V) e sostituirlo con un LM1117 a 3,3V o equivalenti.
    • LM1117 3,3V (100% equivalente)
    • AMS1117 3,3V (100% equivalente)
    • AZ1117D 3,3V (100% equivalente)
    • CJU1117 3,3V (100% equivalente)
    • LD1117DT33 (100% equivalente)
    • MCP1825-33 (facendo il dovuto scambio di pin, visto che sono disposti diversamente. Il limite in corrente è di 500mA)
    • LM7833 (facendo il dovuto scambio di pin, visto che sono disposti diversamente, considerando anche che il componente è più grande di quello originale. Supporta 1A di corrente max)

    Una volta applicata questa prima modifica, Arduino convertirà l'alimentazione in ingresso dal jack cilindrico, ma non quella che arriva dalla porta USB.
    Per portare a 3,3V anche l'alimentazione da USB, dovrai spostare un'altro componente.

    [​IMG]

    Convertire 5V USB in 3,3V

    Come appena detto, il regolatore di tensione non riceve in ingresso i 5V della porta USB perchè sono già a 5V, e non necessiterebbero di regolazione... perchè Arduino viene alimentato normalmente a 5V.
    Ma alimentando Arduino a 3,3V, i 5V della porta USB sono ancora troppi, dobbiamo fare in modo che anche quelli vengano abbassati.


    Il componente che nella foto qui sopra porta la sigla 5031 è un fusibile a 5V e 500mA che serve a proteggere la porta USB del PC dagli assorbimenti di corrente troppo alti, che possono verificarsi ad esempio se colleghiamo troppi componenti ad Arduino o se qualcosa va storto: se Arduino richiedesse più di 500mA al PC, le porte USB potrebbero danneggiarsi. Con questo fusibile di mezzo non succede, perchè il primo a danneggiarsi qualora l'assorbimento raggiungesse i 500mA a 5V sarebbe il fusibile stesso.

    Non vogliamo perdere questa protezione, quindi dovremo modificare il circuito in modo che i 5V vengano regolati a 3,3V... spostando anche il fusibile.

    Arduino UNO ha 2 varianti, che spostano il fusibile oltre ad alcuni componenti. Per regolare l'alimentazione da USB a 3,3V dovremo mettere in serie un diodo 1N4007 con il fusibile da 5V 500mA e saldarli tra il pin "IN" del regolatore di tensione e il punto di saldatura dove al fusibile arrivano i 5V dalla porta USB (che nell'Arduino UNO R2 è la piazzola più vicina al bordo della scheda, dove c'era il fusibile, mentre per l'Arduino UNO R3 vedi la foto qui sotto)

    [​IMG]
    Un Arduino UNO R3 modificato in questo modo per funzionare a 3,3V può essere utilizzato senza problemi anche con l'ESP8266.
     
    #1
    Ultima modifica: 5 Ott 2015
  2. matvid

    matvid Livello 3

    Iscritto:
    14 Apr 2015
    Messaggi:
    48
    Like ricevuti:
    7
    su arduino uno c'è già il pin da 3.3v e un'altro da 5v:blush:
     
    #2
  3. zoomx

    zoomx Livello 19

    Iscritto:
    12 Set 2015
    Messaggi:
    892
    Like ricevuti:
    339
    La modifica proposta da Bus fa funzionare tutta la scheda a 3.3v compresi i pin digitali.
    Quella a cui ti riferisci è una semplice alimentazione, fra l'altro ampiamente insufficiente per alimentare un ESP8266 o tanti altri circuiti.
    Inoltre molti chip, e l'ESP8266 è uno di questi, non tollerano sugli ingressi tensioni di 5v che, a lungo andare, li bruciano.
     
    #3
    A cdante100 e StandardBus piace questo messaggio.
  4. matvid

    matvid Livello 3

    Iscritto:
    14 Apr 2015
    Messaggi:
    48
    Like ricevuti:
    7
    Ok ora ho capito.
    Ma scusate la mia ignoranza ma cos'è l'ESP8266?
     
    #4
  5. zoomx

    zoomx Livello 19

    Iscritto:
    12 Set 2015
    Messaggi:
    892
    Like ricevuti:
    339
    #5
Sto caricando...

Condividi questa Pagina