Go Down

Topic: arduino due PWM 0-3.3v a 0-5v  (Read 3299 times) previous topic - next topic

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.
Scientia potentia est

SukkoPera

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).
Make your Sega MegaDrive/Genesis region-free with Arduino! https://goo.gl/X7zBcq

Guida rapida a ESP8266: https://goo.gl/kzh62E

astrobeed

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

birrohgt

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

SukkoPera

#34
Sep 03, 2016, 09:09 am Last Edit: Sep 03, 2016, 09:11 am by SukkoPera
Capisco, ma tutto il "toccare il codice" che devi fare è aggiungere questo:

Code: [Select]
void analogWriteInverted (byte pin,
byte pwm) {
  analogWrite (pin, 255 - pwm);
}



E cambiare tutte le analogWrite() in analogWriteInverted().
Make your Sega MegaDrive/Genesis region-free with Arduino! https://goo.gl/X7zBcq

Guida rapida a ESP8266: https://goo.gl/kzh62E

birrohgt

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   

birrohgt

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

come posso calcolare la resistenza e il condensatore?

grazie

birrohgt


Go Up