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.
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)
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...
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 !
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.
steve-cr:
Il MOSFET è preferibili perché sono meno componenti !
...
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 ???
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