Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

convertitore di livello per Seriale (TX-RX) Arduino-ESP32

Tipologie, strumenti di sviluppo, hardware e progetti

Moderatore: Foto UtentePaolino

0
voti

[1] convertitore di livello per Seriale (TX-RX) Arduino-ESP32

Messaggioda Foto Utentekonig87 » 11 mag 2022, 12:20

Ciao a tutti,
devo far comunicare un Arduino Mega ed un ESP32 via seriale (usando i pin seriali dedicati sia di Mega che di Esp32), ma Arduino lavora a 5v mentre Esp32 a 3.3v.
Teoricamente quindi il TX di MEGA eroga è al livello di 5v e prima di arrivare nell' RX di ESP deve essere abbassato a 3,3v , mentre il TX di esp esce a 3,3v e può entrare tranquillamente dentro l' RX di MEGA.

in giro ho visto dei convertitori di livello, ma sono dichiarati solo per i2c mentre io non sto sfruttando i2c, bensi UART.

Posso usare un semplice partitore di tensione per abbassare la tensione del MEGA ? in giro ho letto che bastano una resistenza e un dioio, ma non c è alcuno schema.
Voi come fate?
Grazie delle dritte
Avatar utente
Foto Utentekonig87
70 1 2 6
Frequentatore
Frequentatore
 
Messaggi: 283
Iscritto il: 21 lug 2008, 19:51

0
voti

[2] Re: convertitore di livello per Seriale (TX-RX) Arduino-ESP3

Messaggioda Foto UtenteEtemenanki » 11 mag 2022, 12:34

Essendo la comunicazione bidirezionale, non puoi usare solo delle resistenze ed essere sicuro che la cosa funzioni (al 90% probabilmente non funzionerebbe)

I convertitori "per I2C", se sono semplici convertitori di livello senza gestione del protocollo, dovrebbero andare bene anche per la seriale, che di solito e' piu lenta se ricordo bene ... al massimo, un paio di mosfet e 4 resistenze e risolvi autocostruendolo ;-)

Parliamo di seriale 0/5V fra schede e non di "protocollo seriale" completo di tensioni negative, giusto ?
"Sopravvivere" e' attualmente l'unico lusso che la maggior parte dei Cittadini italiani,
sia pure a costo di enormi sacrifici, riesce ancora a permettersi.
Avatar utente
Foto UtenteEtemenanki
9.507 3 6 10
Master
Master
 
Messaggi: 5935
Iscritto il: 2 apr 2021, 23:42
Località: Dalle parti di un grande lago ... :)

0
voti

[3] Re: convertitore di livello per Seriale (TX-RX) Arduino-ESP3

Messaggioda Foto Utentekonig87 » 11 mag 2022, 12:42

Grazie della risposta,
parliamo di segnali 0-5v senza tensioni negative.
Avatar utente
Foto Utentekonig87
70 1 2 6
Frequentatore
Frequentatore
 
Messaggi: 283
Iscritto il: 21 lug 2008, 19:51

0
voti

[4] Re: convertitore di livello per Seriale (TX-RX) Arduino-ESP3

Messaggioda Foto Utenteluxinterior » 11 mag 2022, 13:58

Dai un'occhiata qui
Avatar utente
Foto Utenteluxinterior
4.311 3 4 9
Master EY
Master EY
 
Messaggi: 2690
Iscritto il: 6 gen 2016, 17:48

1
voti

[5] Re: convertitore di livello per Seriale (TX-RX) Arduino-ESP3

Messaggioda Foto UtenteWALTERmwp » 11 mag 2022, 14:05

Ciao @konig87, guarda in questo articolo del "nostro" Foto UtenteTardoFreak, puoi fare un ripasso e trovare subito il suggerimento.

Saluti
W - U.H.F.
Avatar utente
Foto UtenteWALTERmwp
30,2k 4 8 13
G.Master EY
G.Master EY
 
Messaggi: 8982
Iscritto il: 17 lug 2010, 18:42
Località: le 4 del mattino

1
voti

[6] Re: convertitore di livello per Seriale (TX-RX) Arduino-ESP3

Messaggioda Foto Utentekonig87 » 11 mag 2022, 14:14

ok chiaro, il diodo di cui parlavano era quindi uno Zener che "aggancia" la tensione a 3.3 V, e una R messa prima per limitare il flusso di corrente che altrimenti andrebbe verso massa. Faccio così, non avendo uno Zener tra i piedi provo con un partitore di R per scendere a 3v, se non va ordino sia degli zener che dei convertitori di livello nello stesso ordine e ci smanetto un poco sopra!
Grazie mille per le delucidazioni, se gradite vi farò sapere
Avatar utente
Foto Utentekonig87
70 1 2 6
Frequentatore
Frequentatore
 
Messaggi: 283
Iscritto il: 21 lug 2008, 19:51

0
voti

[7] Re: convertitore di livello per Seriale (TX-RX) Arduino-ESP3

Messaggioda Foto UtenteWALTERmwp » 11 mag 2022, 14:17

konig87 ha scritto:(...) Grazie mille per le delucidazioni, se gradite vi farò sapere
prego, di nulla e ... facci sapere, magari con uno schemino e qualche misura.
Grazie a te.

Saluti
W - U.H.F.
Avatar utente
Foto UtenteWALTERmwp
30,2k 4 8 13
G.Master EY
G.Master EY
 
Messaggi: 8982
Iscritto il: 17 lug 2010, 18:42
Località: le 4 del mattino

2
voti

[8] Re: convertitore di livello per Seriale (TX-RX) Arduino-ESP3

Messaggioda Foto Utentekonig87 » 4 lug 2022, 14:47

WALTERmwp ha scritto:
konig87 ha scritto:(...) Grazie mille per le delucidazioni, se gradite vi farò sapere
prego, di nulla e ... facci sapere, magari con uno schemino e qualche misura.
Grazie a te.

Saluti



ciao a tutti,
eccomi finalmente. E' da un mese che lavoro su uno sketch.
Ricapitolando, per i posteri o per me stesso tra qualche anno: ho messo in comunicazione 1 Arduino MEGA 2560 ed un ESP32 tramite la Seriale UART interna, e ho risolto il problema del livello logico diverso (ESP32 lavora a 3,3v mentre Arduino Mega a 5v) creando un partitore di tensione sul TX di Arduino. In dettaglio:
-> Premesso che TX di Arduino va su RX di ESP32 e vice versa
-> Premesso che TX di Arduino eroga 5v ed ESP32 ne tollera massimo 3,3 altrimenti rischia di bruciarsi
-> Premesso che TX di ESP32 eroga 3,3v che sono un segnale logico Alto per Arduino quindi non c è bisogno di nessun componente elettronico in mezzo.
in tal caso l unico problema è tra il TX di Arduino (5v) ed RX di Esp32 (max 3,3v), per risolverlo ho creato un partitore di tensione con 2 Resistenze da 4,7Kohm tra TX del mega e Massa. Essendo un partitore di due R uguali, la tensione inviata ad ESP32 è di 2,5v che per ESP32 è un segnale logico Alto senza dubbio alcuno.

Ho installato R da 4,7kohm sperimentalmente, infatti con valori molto più alti o molto più piccoli avevo problemi di ricezione: spesso ESP32 riceveva false stramissioni anche quando MEGA non trasmetteva, oppure al trasmettere di Arduino Mega lui riceveva valori sballati.
Nell intorno di 4,7kohm non ho riscontrato nessun problema, i due dispositivi comunicano ad una distanza di 40cm. non ho provato a distanze maggiori.
NOTA IMPORTANTE: nel mio progetto uso anche un SIM800L che comunica col Mega, ovviamente anche sulla Seriale dedicata alla comunicazione con SIM800L ho dovuto mettere lo stesso partitore di tensione.
Osservando lo schema rende meglio, è semplicissimo e funziona, gia testato h24 da un paio di giorni. invio i comandi tramite Telegram ad ESP32 e lui si interfaccia tranquillamente con MEGA e mega, se necessario, comanda il SIM800L.

Avatar utente
Foto Utentekonig87
70 1 2 6
Frequentatore
Frequentatore
 
Messaggi: 283
Iscritto il: 21 lug 2008, 19:51

1
voti

[9] Re: convertitore di livello per Seriale (TX-RX) Arduino-ESP3

Messaggioda Foto UtenteWALTERmwp » 4 lug 2022, 16:19

Ciao @konig87, bravo e grazie per l'aggiornamento.

Se fosse possibile sarebbe interessante(almeno per me) vedere le forme d'onda(quanto sono "squadrati" i gradini) ai nodi dei partitori.
Per curiosità poi, anche posizionare due trimmer al posto delle R collegate a TX2 e TX3, misurare la tensione e osservare quali i margini per continuare a distinguere il livello logico 1.

Saluti
W - U.H.F.
Avatar utente
Foto UtenteWALTERmwp
30,2k 4 8 13
G.Master EY
G.Master EY
 
Messaggi: 8982
Iscritto il: 17 lug 2010, 18:42
Località: le 4 del mattino

0
voti

[10] Re: convertitore di livello per Seriale (TX-RX) Arduino-ESP3

Messaggioda Foto Utentekonig87 » 5 lug 2022, 14:52

a casa al mare ho un oscilloscopio con banda 20mhz, analogico. se puo andar bene, posso provare a fare delle foto alla forma d onda ai nodi dei partitori. per quanto riguarda il trimmer, in verità mi viene complicato visto che ormai ho saldato tutto su breadboard, ma ti posso dire che a 1kohm non funzionava e a 16-18kohm non funzionava, quindi (nel mio caso, con alimentazione sia via USB che via L7812CV) il range di Resistenze utile andava da circa 2kohm a meno di 16kohm.

E aggiungo una cosa ZOZZA per la quale sicuramente mi banneranno da questo forum: da 1 settimana sto provando senza resistenze, accettando l idea di bruciare ESP32 e il SIM800L a causa dei 5volt di arduino in TX: bene, anche se scambiano array di bytes via seriale almeno 1 volta al minuto, ancora esp32 e sim800L funzionano a meraviglia. ESP32 di preciso è quello di AZdelivery, 38 pin (19+19). SIM800L invece in un altro progetto (combinatore gsm per casa al mare, quella con l oscilloscpio) lavora insieme ad un arduino nano sempre a 5v e non si vuole bruciare da 2-3anni a questa parte. IN SOSTANZA ho creato il partitore pur intuendo che nel caso di comunicazione seriale il discorso 3,3v o 5v non va a danneggiare l hardware. Però facciamo finta che non ho scritto nulla. :oops: :ok:
Avatar utente
Foto Utentekonig87
70 1 2 6
Frequentatore
Frequentatore
 
Messaggi: 283
Iscritto il: 21 lug 2008, 19:51

Prossimo

Torna a Realizzazioni, interfacciamento e nozioni generali.

Chi c’è in linea

Visitano il forum: Nessuno e 3 ospiti