Convertitore segnali 5v -> 24v

Devo convertire un segnale di una cella di carico con HX711 a 5 volt per leggerlo su un touch screen industriale che, come tutti i PLC, ha la brutta abitudine di avere gli ingressi digitali a 24 volt (è una battuta, è sicuramente meglio averli a 24v).

Oggi è una cella di carico, domani è un sensore digitale, un sensore magnetico, un lettore di assorbimento... Tutte cose che sono nate per Arduino e che è un problema usarle in ambito industriale con solo 5v di segnale.

La scheda di PighiXXX è semplice https://drive.google.com/open?id=1E3ngfYsdDJZKgowOQnc4G0B_SO-bcxSS ma con un ingresso HIGH ho una uscita LOW.

Chiedo ai geni dell'elettronica che soluzione mi consigliano, oltre ad usare un PNP al posto del NPN, che sia rapida, semplice e esente da problemi?

Per l'uscita, invece, cioè convertire i 24v a 5v penso sia abbastanza un normalissimo partitore resistivo tipo R1= 20k e R2=5k6.

no, temo che non mi venga in mente nulla di meglio che mettere un secondo not due NPN connessi come indichi, in sequenza, solo il secondo al 24, il primo al 5v (per semplificare i calcoli delle resistenze), il primo lo puoi sostituire con un ottuplo NOT TTL (una singola porta di un ic con 8 porte NOT intendo)

I classici traslatori di livello 3.3/5 fatti con un MOSFET non dovrebbero funzionare anche con 5/24, usando MOSFET opportuni?

Intendo questo circuito: http://www.hobbytronics.co.uk/mosfet-voltage-level-converter

SukkoPera: I classici traslatori di livello 3.3/5 fatti con un MOSFET non dovrebbero funzionare anche con 5/24, usando MOSFET opportuni?

Intendo questo circuito: http://www.hobbytronics.co.uk/mosfet-voltage-level-converter

Interessante !!!

Oh, la mia era davvero una domanda eh, io non ho mai lavorato oltre i 5V! :smiley:

SukkoPera: Oh, la mia era davvero una domanda eh, io non ho mai lavorato oltre i 5V! :D

SukkoPera: I classici traslatori di livello 3.3/5 fatti con un MOSFET non dovrebbero funzionare anche con 5/24, usando MOSFET opportuni?

Intendo questo circuito: http://www.hobbytronics.co.uk/mosfet-voltage-level-converter

Se ho capito bene, in questo modo ho due piccioni con una fava... Cioè ho ingresso e uscita tutto in uno

Provato a 24v con un STP30NF10 e con un FDP3682 (li ho in casa). Il lato 5v (low side)e il lato high side (24v) funzionano perfettamente !!!

Quindi un karma a Standardoil perché il doppio transistor "non lo avevo considerato" (come il triangolo di Zero), però avrei dovuto aggiungere il lato "lettura" abbassandolo con un partitore, mentre un karma a SukkoPera perché mi ha dato un ottimo suggerimento.

non lo merito, ma lo metto via, grazie e ne ho imparata una anche oggi, grazie anche da parte mia a sukko invece una consderazione libera da parte mia: evidentemente sono rimasto un uomo TTL, non penso a mosfet, una volta visto il circuito suggerito mi è stato chiaro il funzionamento, ma pensarci supera le mie capacità sono della generazione passata, antico come il Neanderthal, la clava, il vapore e la benzina nelle auto, mi sto estinguendo.... Cia' che corro subito a riprodurmi, finchè sono in tempo...

Beh, io so che esiste ma come funziona non mi è troppo chiaro... Siamo uomini digitali, queste sono cose troppo analogiche :D.

Per chi (come me) è più abituato ai BJT che ai mosfet, dovrebbe funzionare uguale anche questo (per tensioni superiori aumentare le resistenze):
bidir_convert.png

Standardoil:
una volta visto il circuito suggerito mi è stato chiaro il funzionamento, ma pensarci supera le mie capacità

E non hai ancora visto il ripetitore bidirezionale I2C :smiley:

Il diodo posso pensare ad un 1n4001, ma il transistor cosa è? un NPN generico tipo bc547 ? Poi è il "dovrebbe funzionare" che mi preoccupa ... :o

Un normale BJT NPN, il 547 va bene.

Il dovrebbe è riferito più che altro alle "prestazioni" dinamiche. Funziona sicuramente per segnali a bassa frequenza (in fondo si pilotano semplicemente i due lati con chiusure verso massa, mentre se restano aperti si ottiene la tensione delle resistenze di pull-up), ma per farci passare i 5..100kHz di una trasmissione seriale o i2c meglio vedere all'oscilloscopio cosa succede ;)

Il MOSFET è preferibili perché sono meno componenti ! :D Guardando poi diversi data sheet penso proverò degli ZVN4206 perché hanno una minore resistenza Drain Source e possono lavorare fino a 60 V. Adesso inserisco uno step-down 24 -> 5 volt, faccio una schedina e così col mio touch screen TPAC1007 (made in italy) posso usare le celle di carico ma anche i DHT22 o altre cose realizzate per Arduino... Magari lo pubblico qui.

Come al solito siete tutti dei grandi !

Una cosina così potrebbe andare bene?

Bi-directional Converter TTL - 24V

Solo un dubbio sulle resistenze dei led 1206 a 5v e 24v (che ho messo perché Etemenanki mi ha ispirato...).

steve-cr: Il MOSFET è preferibili perché sono meno componenti ! :D ...

Anche perche', a parita' di prestazioni, i mosfet in genere commutano piu velocemente di un BJT ;)

EDIT: per i led ... ma sei sicuro che non interferiscano, mettendoli verso massa ? ... perche' quel circuito di conversione funziona verso i positivi, con le "masse" virtuali date dallo stato 0 degli ingressi ... se i led portano un riferimento di massa agli ingressi, anche se con la caduta del led, potrebbero falsare il circuito ... sarebbe meglio, se proprio serve averli, metterli in parallelo alle resistenze di pull-up ...

Vi posto la foto del circuitino già pronto e funzionante ottenuto anche grazie ai vostri consigli.
Lo schema è quello postato quasi due mesi fa: spedito a PCBway ed eccolo qui !!!

Ora posso interfacciare tutta la sensoristica a 5Volt con schede oppure PLC a 24Volt.
E l’alimentazione a questi sensori la ottengo con un step-down MC34063 quindi non ho bisogno di alimentatori esterni.

L’alimentazione della scheda viene fornita dal PLC a 24Volt

La cosa simpatica è che se ho sensori a 24Volt li posso usare su arduino a 5Volt usando la scheda al contrario, alimentandola sempre a 24volt però.

@ETEMENANKI
I led di uscita mi abbassano tragicamente la tensione ai morsetti (2,5 Volt) quando collego il PLC, anche se le resistenze sui MOS le avevo già abbassate a 4K7. Togliendo i led ottengo 11,5 Volt che sono sufficienti per lo stato 1 sul PLC Mitsubishi.
Cosa faccio? metto delle 1K e ci riprovo?
Sullo schema originale trovato qui /mosfet-voltage-level-converter erano da 10K ma qualsiasi ingresso di MCU ha il suo assorbimento…

P.S.
Ma come diavolo si fa ad inserire una immagine GIA’ VISIBILE nel post come fanno alcuni, senza inserire link o attachment ???

steve-cr:
P.S.
Ma come diavolo si fa ad inserire una immagine GIA' VISIBILE nel post come fanno alcuni, senza inserire link o attachment ???

Fai il post, copi il link dell'immagine che alleghi, editi il post ed inserisci l'immagine ... :smiley:

Guglielmo

Grazie Guglielmo. Non ci arrivavo...

Come li hai messi i led ? ... se sono collegati verso massa, non vanno bene ... perche' falsano i riferimenti dati dalle resistenze di pull-up ... purtroppo quello schema di convertitore, anche se funziona ed e' ampiamente usato in molte applicazioni, sfrutta "l'assenza" di una tensione, non la presenza, per commutare, per cui i riferimenti dei 5V e dei 3.3V sono attraverso le relative resistenze, e le correnti sono ovviamente molto basse ... quindi se ci piloti un'ingresso ad alta impedenza, tutto ok, ma se ci colleghi qualcosa che assorbe anche poca corrente, il tutto va in tilt ... puoi provare a collegarli in parallelo alle pullup (con almeno 4K7 di resistenza in serie al led), ma ti darebbero l'indicazione opposta (accesi quando il pin e' a zero) e potrebbero confondere le idee ... purtroppo e' uno dei grossi limiti di quel tipo di circuiti ...

Se la conversione fosse fra 3.3 e 5 V ci sarebbero gia i classici bidirezionali della Maxim, serie MAX337*, ma fra 5 e 24, di chip bidirezionali in push-pull o in trans-gate non me ne viene in mente nessuno al momento ... ma a te servono per forza bidirezionali, le linee di comunicazione ?

Se mio servono bidirezionali? Guarda, con gli esperimenti che sto facendo con i blasonati PLC Mitsubishi vedo che la velocità di Arduino è almeno 50 volte maggiore. Il protocollo di lettura delle celle di carico con HX711 ma anche dei sensori DHT22 parla di impulsi di microsecondi e se questi li posso spedire dal Mitsubishi con uscite a transistor, non li posso leggere dagli ingressi che richiedono almeno 10 millisecondi. Arduino su queste cose è imbattibile: tratta questi sensori in tempo reale senza problemi. Proverò a sostituire le resistenze da 10k (già sostituite con 4k7) con delle resistenze a 1k, assorbendo 0,024 amp, ma non è un problema. Poi ti dico. Ma posso tranquillamente fare a meno dei led intermittenti :-)