arduino due PWM 0-3.3v a 0-5v

Mi sembra che te la cavi bene con il saldatore: perché non usi un semplice transistor?

I convertitori bidirezionali vanno bene per piccolo segnali, ma il partitore dal lato 3.3V <--- 5.5V e il transistor per il lato 3.3V ---> 5V funziona sempre!

ok grazie provo con un transistor

ecco lo schema che ho provato sembra funzionare bene per le pompe l' unico problema che non arrivo al 100% della potenza perché massimo ho in uscita 4,6 volt

mi sapresti aiutare per avere 5 volt?

Aspetta conferme più autorevoli, ma credo che il segnale PWM debba andare sulla base (tramite un resistore da 100 ohm) e l'emettitore essere collegato direttamente a GND.

no perché se lo metto sulla base il segnale è invertito nel senso il pwm del arduino è a 0 transistor interdetto hai capi della r1 ho 5 volt invece se arduino a 3.3v transistor conduce hai capi della r1 0 volt

birrohgt:
ecco lo schema che ho provato sembra funzionare bene per le pompe l' unico problema che non arrivo al 100% della potenza perché massimo ho in uscita 4,6 volt

Da dove salta fuori questo orrore ?
Chi l'ha disegnato non solo non capisce nulla di elettronica, ma ti sta facendo rischiare di bruciare il pin della DUE dove l'hai collegato.

Una piccola nota aggiuntiva, se la tua pompa ha un controllo integrato, come hai scritto, che accetta un segnale pwm che questo sia 0-5V o 0-3.3V non cambia nulla visto che la velocità di rotazione dipende dal duty-cycle e non dalla tensione del segnale.

E anche se è invertito che importa? Vorrà dire che per avere un valore PWM x farai una analogWrite (255 - x)...

PS: Se setti la risoluzione del PWM a 12 bit dovrai usare 4095 al posto di 255.

astrobeed:
Una piccola nota aggiuntiva, se la tua pompa ha un controllo integrato, come hai scritto, che accetta un segnale pwm che questo sia 0-5V o 0-3.3V non cambia nulla visto che la velocità di rotazione dipende dal duty-cycle e non dalla tensione del segnale.

scusa ho sbagliato la pompa non va a pwm ma ha il controllo in cc 0 a 5v perché sul suo controller originale ce un filtro RC formato da una resistenza e un condensatore verso massa

perché dici che lo schema è un orrore???????

consigliami tu come posso fare

grazie

birrohgt:
scusa ho sbagliato la pompa non va a pwm ma ha il controllo in cc 0 a 5v perché sul suo controller originale ce un filtro RC formato da una resistenza e un condensatore verso massa

Non diciamo cavolate, se la pompa lavora con una tensione 0-5 V non lavora col PWM, il filtro RC in ingresso c'è per tagliare eventuali disturbi sulla tensione di controllo e non per trasformare il PWM in DC, cosa che si può fare ma che va fatta nel giusto modo e non "alla come viene viene".
Nel tuo caso serve un corretto rc, costante di tempo non minore di 100*1/Fpwm, seguito da un opamp che provvede ad amplificare leggermente, oltre che a disaccoppiare, in modo da ottenere 0-5V, questo è il modo corretto per fare le cose.
Meglio ancora usare il DAC della DUE, però in questo caso la parte analogica diventa più complessa perché il DAC non varia tra 0 e 3.3V, ha un range compreso tra 0.55 V e 2.75V, qui trovi un esempio di come fare per variare il range tra 0 e 3.3V, modificando i valori è possibile ottenere 0-5V

ok grazie ma non so come si fa con il DAC

io devo controllare 2 pompe che devono lavorare indipendenti con variazioni diverse con il dac di fa?

poi vorrei sapere perché è un orrore il circuito che ho postato giusto per capire

oggi ho preso un oscilloscopio in prestito dove lavoro e ha confermato la mia teoria

dal controller originale manuale delle pompe per acquario dal suo chip (che non si legge il modello) esce un segnale PWM a da 0 a 5 v ecco la foto

prima di andare alla pompa ce una resistenza da 1k in serie e un condensatore verso massa tipo un filtro RC e dopo questo circuito mi trovo un segnale continuo che va da 0 a 5V (non ce più il segnale pwm)

quindi pompa ha bisogno di un 0-5 v in continua

questo circuito andrebbe meglio di quello di prima???

grazie

Ma perché devi andare a complicarti la vita con i transistor, poco adatti per le applicazioni digitali.
Usa un qualunque mosfet per piccoli segnali, collega il Gate con una R da 330 ohm sul pin della DUE, il source direttamente a GND, il Drain al 5V con una R da 1k (5 mA in conduzione), il PWM lo prendi sul DRAIN, ovviamente è un NOT del segnale originale, ma questo non è un problema visto che a livello software 255 = motore spento, 0 = motore alla massima velocità se usi il PWM a 8 bit, se lo usi a 10 bit 255 diventa 1023.
Se nel cassetto hai degli IC con porte logiche, p.e. delle NAND o delle NOT, a 5V puoi usare questi per il convertitore 3.3V - 5V, a patto che sono CMOS e non TTL come tecnologia, collega due NAND, o due NOT, in cascata ed ecco risolto il problema, in ingresso accettano senza problemi, anche se siamo prossimi al limite, il PWM a 3.3V e lo rendono a 5V.

astrobeed:
a livello software 255 = motore spento, 0 = motore alla massima velocità se usi il PWM a 8 bit, se lo usi a 10 bit 255 diventa 1023.

Non mi risulta che sulla Due si possa settare il PWM a 10 bit. Mi pare siano solo o 8 o 12. In tal caso i valori da usare sono 255 e 4095, come ho già scritto un po' di post fa (totalmente ignorato).

Non ho la DUE, e non la prenderò mai :), sono andato a memoria senza controllare. :slight_smile:

astrobeed:
Ma perché devi andare a complicarti la vita con i transistor, poco adatti per le applicazioni digitali.
Usa un qualunque mosfet per piccoli segnali, collega il Gate con una R da 330 ohm sul pin della DUE, il source direttamente a GND, il Drain al 5V con una R da 1k (5 mA in conduzione), il PWM lo prendi sul DRAIN, ovviamente è un NOT del segnale originale, ma questo non è un problema visto che a livello software 255 = motore spento, 0 = motore alla massima velocità se usi il PWM a 8 bit, se lo usi a 10 bit 255 diventa 1023.
Se nel cassetto hai degli IC con porte logiche, p.e. delle NAND o delle NOT, a 5V puoi usare questi per il convertitore 3.3V - 5V, a patto che sono CMOS e non TTL come tecnologia, collega due NAND, o due NOT, in cascata ed ecco risolto il problema, in ingresso accettano senza problemi, anche se siamo prossimi al limite, il PWM a 3.3V e lo rendono a 5V.

io ti ringrazio molto ma non sono un esperto come voi è per questo che vi sto chiedendo aiuto ad esempio mi piacerebbe capire il discorso delle nand o delle not che modello dovrei usare e come collegarle?

perché dici che arduino due non la prenderesti mai? che problemi ha?

grazie mille

per SukkoPera certo che ho letto il tuo suggerimento ma come ti ho detto non sono molto esperto e non vorrei toccare il codice

Capisco, ma tutto il "toccare il codice" che devi fare è aggiungere questo:

void analogWriteInverted (byte pin, 
byte pwm) {
  analogWrite (pin, 255 - pwm);
}

E cambiare tutte le analogWrite() in analogWriteInverted().

ok

ma perché mi avete detto di usare i mosfet al posto dei transistor cosa cambia?????

poi ho sempre il problema che quando il mio pwm è al massimo in uscita con le pompe collegare non ho 5v ma 4.5

vorrei aggiungere un filtro passa basso in uscita per avere una tensione più continua possibile

come posso calcolare la resistenza e il condensatore?

grazie

nessuno?