Risolvere incompatibilità tra componenti a 3.3V e componenti a 5V (ESP8266)

Buonasera a tutti, grazie ai vostri consigli i miei progettini vanno alla grande, sono sempre più interessato a conoscere questo mondo !!
Mi trovo davanti a un bel problema.
Incuriosito dal nuovo modulino WiFi ESP8266 ne ho preso uno, per tentare di creare una stazioncina che caricasse su un qualche sito tipo xively o thingspeak i dati raccolti dal giardino.
Nella fattispecie il mio progettino (al momento ancora a livello cartaceo) prevedeva :

  • Arduino Pro Mini (3.3V o 5V ?!!? )
  • ESP8266
  • DHT11
  • Sensore temperatura suolo
  • 2 sensori umidità suolo
  • LCD 16x2
  • Fotoresistenze
  • Relay 2 canali 5V

Molto bene. Il problema è ora uno. Leggendo i datasheet tutti i componenti vanno a 5V, tranne il ESP8266, che richiede esplicitamente max 3.6V.
A questo punto tutto viene sballato, perchè se non posso usare questo componente non potrei loggare nulla e quindi non avrebbe senso la stazioncina.
Il mio dubbio è allora?
Come fare?

  • Soluzione 1 : Uso pro mini a 3.3V, fonte energia a 3.3V, cosi arduino e ESP8266 vanno bene. Ma tutti gli altri componenti? Non tanto la fotoresistenza, o gli analogici, quanto invece i digitali...come li uso?
  • Soluzione 2 : Uso pro mini 5V e fonte energia 5v, tutti i componenti vanno di lusso, ma come uso il ESP8266 ?

Ringrazio chiunque voglia aiutarmi, credo sia un dubbio che, una volta tolto, mi chiarirà parecchie cose ancora confuse per la testa !!

Eccoti QUI la soluzione ... traslatore di livelli e passa la paura :smiley:

Guglielmo

gpb01:
Eccoti QUI la soluzione ... traslatore di livelli e passa la paura :smiley:

Guglielmo

Moooolto interessante, sopratutto perchè costa poco ahahahhaha. :smiley:
Quindi con questo aggeggino, che mi pare di capire serva a trasformare i livelli logici da 5 a 3.3 e viceversa, quale soluzione devo adottare di quelle che scrivevo prima ?
La soluzione 1 o la 2 ?

Uso un arduino a 3.3V e "abbasso" tutto a 3.3V o uso il 5V, alzando il modulo wifi a 5V ?
Considerando i numeri (tutti i moduli contro il solo modulo wifi) la soluzione preferibile sarebbe la 2, giusto?

Se non hai problemi di "basso consumo" (... alimentazione a batterie) ... non ti complicare la vita e alimenta il tutto a 5V, meno il ESP8266 che alimenti a 3.3V e con l'adattatore adatti i segnali di I/O.

Guglielmo

gpb01:
Se non hai problemi di "basso consumo" (... alimentazione a batterie) ... non ti complicare la vita e alimenta il tutto a 5V, meno il ESP8266 che alimenti a 3.3V e con l'adattatore adatti i segnali di I/O.

Guglielmo

Il tutto sarà alimentato da apposito trasformatore collegato alla presa domestica, quindi i risparmi di energia non sono prioritari, anche perchè considerando che il logging dura si e no 5 minuti in un giorno e poi la centralina "dorme" i risparmi sarebbero irrisori.

Andando nello specifico, volendo quindi adattare solo l'ESP8266 ai 5V, devo collegare i pin cosi :
ESP8266 TX -- TX CONVERTITORE TX -- RX ARDUINO
ESP8266 RX -- RX CONVERTITORE RX -- TX ARDUINO

Corretto?

Come avrai visto, QUI c'è un bel thread sul ESP8266 ... nella la seconda metà della discussione, c'è gente che già lo ha provato e collegato ... guardati cosa hanno dovuto collegare (... quali pin) e considera che qualsiasi cosa colleghi NON deve superare i 3.3V.

Guglielmo

gpb01:
Come avrai visto, QUI c'è un bel thread sul ESP8266 ... nella la seconda metà della discussione, c'è gente che già lo ha provato e collegato ... guardati cosa hanno dovuto collegare (... quali pin) e considera che qualsiasi cosa colleghi NON deve superare i 3.3V.

Guglielmo

Si, avevo buttato un'occhio a quella discussione, ma c'erano un sacco di pareri molto complessi su roba a livello di firmware e non avevo continuato la lettura, me lo leggerò per bene.
Grazie mille per l'aiuto !!!

Salve a tutti, una domanda, ma se io per sbaglio a quel convertitore ci metto in ingresso 9 Volt, lo distruggo? chiedo questo perché volevo capire come fare dei collegamenti ed alimentare un modulino ESP8266, per sbaglio gli ho mandato in ingresso 9V di una batteria. Poi mi son reso conto che non erano i 5V dell´arduino. Morale della favola, il modulino ESP non funzionava comunque (cosa che invece fá se lo alimento con 1 alimentatore esterno a 3.3(Vdc).
Nel caso in cui non lo abbia distrutto, sapreste dirmi come collegare fare i collegamenti tra convertitore e ESP?

ho trovato questo collegamento che non funziona:

http://www.google.com/imgres?imgurl=https://dlnmh9ip6v2uc.cloudfront.net/assets/b/1/c/8/e/52275e89757b7fcd1b8b4567.png&imgrefurl=http://www.esp8266.com/viewtopic.php?f%3D8%26t%3D296&h=843&w=1617&tbnid=mwQ_U4qwFFM7tM:&zoom=1&docid=n-2vfkmTOOxA7M&ei=wnL1VL6LLcy-PfuKgMgC&tbm=isch&ved=0CB0QMygAMAA

Poi ho trovato quest´altro collegamento, non ancora provato (sono al lavoro adesso..):

http://www.instructables.com/file/FK71AJ9I58IDE8J/?size=ORIGINAL

giorgio90:
Si, avevo buttato un'occhio a quella discussione, ma c'erano un sacco di pareri molto complessi su roba a livello di firmware e non avevo continuato la lettura, me lo leggerò per bene.
Grazie mille per l'aiuto !!!

gpb01:
Come avrai visto, QUI c'è un bel thread sul ESP8266 ... nella la seconda metà della discussione, c'è gente che già lo ha provato e collegato ... guardati cosa hanno dovuto collegare (... quali pin) e considera che qualsiasi cosa colleghi NON deve superare i 3.3V.

Guglielmo

Salve a tutti, quel "QUI" purtroppo non funzionava..poi ho scoperto ci son le virgolette nell´URL.. :slight_smile:

Una domanda, ma se io per sbaglio a quel convertitore ci metto in ingresso 9 Volt (tra HV e GND), lo distruggo? Nella fattispecie, io ho questo modulo:

EBAY

chiedo questo perché volevo capire come fare dei collegamenti ed alimentare un modulino ESP8266, per sbaglio al convertitore gli ho mandato in ingresso 9V di una batteria. Poi mi son reso conto che non erano i 5V dell´arduino. Morale della favola, il modulino ESP non funzionava comunque anche se gli mandavo (tra HV e GND) i 5V dell´arduino (l´ESP invece fá il suo dovere se lo alimento con 1 alimentatore esterno a 3.3(Vdc), e ci mando RX e TX direttamente in Arduino (Nano V3.0)

Nel caso in cui non lo abbia distrutto (il convertitore), sapreste dirmi come fare i collegamenti tra convertitore e ESP? Nel mio progetto non vorrei usare l´alimentatore esterno, ma i5V di arduino per alimentare il modulo.

ho trovato/provato questo collegamento che non funziona:

QUESTO

Poi ho trovato quest´altro collegamento, non ancora provato:

QUEST´ALTRO

Mi chiedevo se forse era meglio un DC/DC converter (LD33V?) ma avendo comperato quel modulo TTL...

grazie in anticipo per i vostri consigli.

svato1979:
Salve a tutti, quel "QUI" purtroppo non funzionava..poi ho scoperto ci son le virgolette nell´URL.. :slight_smile:

... grazie della segnalazione, correto !!! :slight_smile:

Guglielmo

gpb01:
... grazie della segnalazione, correto !!! :slight_smile:

Guglielmo

Ciao Guglielmo, riguardo ad i collegamenti del modulo convertitore logico di livelli Vs ESP, sapresti dirmi qualcosa quale dei due schemi é quello giusto? Sto testando "QUEST´ALTRO", ma ancora non funziona.. c´é qualcosa che non mi convince. O é rotto il convertitore (in ingresso HV-GND ho 4.98Vdc , e in uscita LU-GND mi da 1.3Vdc, oppure c´é qualcosa che nn va..

Su HV DEVI portare i +5V, su LV DEVI portare i +3.3V, in questo modo hai alimentato correttamente il modulino convertitore come, del resto, è molto ben descritto QUI, nella sezione "Using the BD-LLC for Serial" (... guarda BENE lo schema) !

Guglielmo

Segnalo (se erro ditelo) che è possibile usare un chip CD4050 per conversione 5<->3,3

nid69ita:
Segnalo (se erro ditelo) che è possibile usare un chip CD4050 per conversione 5<->3,3

Direi proprio di no, esistono appositi IC per la conversione da 5V <-> 3.3V, p.e. SN74LVCC3245A, gestisce 8 bit costa poco però è monodirezionale, se occorre mischiare IN e OUT sullo stesso IC c'è l'ottimo TXB0108, autosensing per la direzione dati sul singolo bit (8 bit totali), però costa quasi 1.5 Euro.
Le alternative agli IC specializzati sono il partitore resistivo, molto comodo e a costo zero se è necessario convertire uno/due out da 5V a 3.3V, il circuito con i mos è bidirezionale però non sopporta elevate velocità dati, max 400 kbps, assolutamente inadatto per convertire una SPI e qualunque altro bus dove la pendenza dei fronti è critica.

nid69ita:
Segnalo (se erro ditelo) che è possibile usare un chip CD4050 per conversione 5<->3,3

Allora mi sa provero questo CD4050 perché questo modulino convertitore proprio non vuole funzionare. Tra l´altro, coi collegamenti esattamente fatti cosí come nello schema che mi ha consigliato Guglielmo, i leddini rosso e blu si accendono instantaneamente quando ci mando 5Vdc in ingresso, per poi spegnersi. Se scollego il piedino CH_PD in uscita, si accende solo il leddino rosso (quello blu no) e in uscita, tra LV e GND ho i 3.3Vdc fatidici.. mah..

svato1979:
Allora mi sa provero questo CD4050

Col CD4050 non ci fai nulla, non è un level shifter.

svato1979:
Allora mi sa provero questo CD4050 perché questo modulino convertitore proprio non vuole funzionare ...

Il modulo funziona bene, quindi ... o lo hai danneggiato o non lo stai collegando come da schema.

Per il CD4050 ... mi sembra che Astro ti abbia sufficientemente spiegato ... :smiling_imp:

Guglielmo

Il 4050 se alimentato a 3.3V collegato con ingresso a 5V da TX(1) e uscita a 3.3V verso ESP8266 funziona benissimo come convertitore di livello.
........come RX puoi usare un partitore di tensione

icio:
Il 4050 se alimentato a 3.3V collegato con ingresso a 5V da TX(1) e uscita a 3.3V verso ESP8266 funziona benissimo come convertitore di livello.

Ma assolutamente no, il CD4050 come Vin max ammette Vdd + 0.4V, o Vdd a seconda del produttore/variante, se lo alimenti a 3.3V in ingresso al massimo puoi dargli 3.7V, o 3.3V, non puoi dargli 5V.
Un level shifter deve lavorare in entrambe i sensi, se da una parte entri con 5V esce con 3.3V, ma deve fare anche l'opposto, se entro con 3.3V esco con 5V.

Attenzione però che questi traslatori di livello non sono dei regolatori di tensione.
Non è che se da un lato fornisco 5V dall'altro prelevo 3V3. No. Gli devi fornire tu da un lato i 5V e dall'altro i 3V3. Non c'è trasformatore a bordo.
Si limitano a trasferire il segnale tra i due livelli.