Get Adobe Flash player

Controllo PWM da PC

User Rating:  / 1
PoorBest 

Link Articolo Originale: 

http://www.grix.it/viewer.php?page=10178

Controllo PWM con VB6

Spesso leggo la richiesta di controlli pwm completi, da qui ho deciso di postare vari progettini di libero utilizzo con relativi schemi sorgenti e pcb, il progetto è semplicemente un controllo PWM low-side alla portata di tutti con alimentazione variabile da 6V a 24V con correnti fino a 8/10A, per potenze superiori postero un progettino con il componente Q1 adeguato e pilotaggio del mosfet con tensioni intorno hai 10V, in questo schema molto semplice ed economico piloteremo il gate del mosfet con +5V del processore e 40Khz di frequenza, la frequenza relativamente bassa e la limitata potenza ci permettono di sfruttare tranquillamente la potenza erogata dal segnale della nostra MCU il tutto gestito tramite porta seriale di un PC con Windows2000 o successivi.

Descrizione


Dividiamo le descrizioni in due grossi sottogruppi, Hardware quindi schemi e componenti e Software file eseguibile per Windows e sorgente per la MCU.

Hardware

Iniziamo dai componenti e relativi costi:

MCU = Picaxe 08M costo 2,9€

Q1 = Mosfet N IRF540 costo 0,9€ (Sostituibile con altro mosfet N che non abbia capacità di gate molto alte)

REG1 = LM7805 costo 0,5€ (visto l'esiguo assorbimento del circuito possiamo omettere il dissipatore)

R1=100 costo 0,1€

R2,R3 = 470 costo 0,1€

R4 = 180 costo 0,1€

R5 = 22k costo 0,1€

R6 = 10k costo 0,1€

C1,C2 = 10uF costo 0,3€

C3 = 100nF costo 0,2€

D1 = 1N4148 costo 0,2€

2 led uno verde uno rosso costo 0,3€

Dissipatore per IRF540 costo 2€ (vista la frequenza bassa del PWM possiamo tenere il dissipatore sganciato da massa e quindi omettere la mica di isolamento)

Basetta millefori costo 2€

Totale spesa meno di 10,00 €

Tempo di montaggio 15/20 minuti

Passiamo allo schema

clicca per ingrandire

Descrizione dello schema:

All'accenzione la MCU si mette in ascolto sul suo canale RX da noi opportunamente collegato al canale TX del PC, se arriva un numero compreso tra 1 e 100 la MCU accenderà il led verde e impostera l'uscita pwm con un DC identico al numero che ha ricevuto, se per esempio inviamo "50" il pwm si accenderà con DC 50% e così via, visto il comando riconosciuto si rimetterà in ascolto sull' RX fino al prossimo comando. Se inviamo "0" il pwm e il led verde si spegneranno e la MCU tornerà in ascolto per il comando successivo.

Ho previsto anche un errore che nelle trasmissioni seriale può essere dovuto a molti motivi vedi disturbi esterni o malfunzionamenti con invio di byte casuali in fase di accensione e/o spegnimento in tal caso la MCU resetterà la variabile interna del pwm, spegnerà il pwm, spegnerà il led verde e accenderà il led rosso, tornerà in ascolto in attesa di un comando valido. Il segnale pwm del nostro micro colpira il gate del mosfet tramite una piccola resistenza, alla frequenza di 40Khz e con 5V circa di pilotoggio riusciamo a caricare la capacità del gate che è di circa 1700/1800 pF con un fronte di salita ancora accettabile fino a circa 10A di corrente tra drain e surce. Il pilotoaggio low-side o basso è il piu' semplice da realizzare e il piu' economico ma questo era lo scopo iniziale. Il componente IRF540 supporta aggevolmente fino hai 30A di corrente con tensioni intorno agli 80V ma per far questo necessita di un pilotaggio di gate preamplificato con almeno 12V e picchi di corrente di circa 0,8A e una dissipazione adeguata.

Visto che stiamo realizzando un controllo a bassissimo costo, la conduzione del mosfet è pressochè al limite, non pretendiamo che il nostro circuitino piloti il motore di un ascensore a 24V, presto postero un controllo per carichi "pesanti" certo i costi non possono essere nell'ordine di 10,00 €. Potete sostituire il motore con vari utilizzatori come lampade, led ad alta efficenza e così via.

Vediamo il Software

Ho deciso di utilizzare un Picaxe per semplicità di programmazione (non necessita di alcun programmatore solo di 3 resistenze, rimando a sezioni specifiche su Picaxe all'interno di questo sito) e per l'utilizzo di un editor Basic a tutti comprensibile. Voglio solo fare un piccolo appunto a rigurado, sono il proprietario di un azienda elettronica, vi assicuro che nelle fasi di prototipazione o in schede custom dove i quantitativi sono di 1/2 pezzi i Picaxe, BasicStamp, AVR  e altri fanno da padrone. Si è vero sono considerati da amatori o hobbisty ma funzionano e svolgono egreggiamente il loro lavoro. Gli AVR ad esempio vengono normalmente utilizzati anche in produzione.

Il software del Picaxe lo incollo direttamente qui, se volete utilizzarlo basta un banale copia/incolla all'interno dell'editor picaxe. Il codice è tutto commentato quindi di facile utilizzo.

'MCU PICAXE 08M
'CONTROLLO PWM LOW-SIDE CONTROLLATO DA PC VIA RS232
OUTPUT 1' PIEDINO 1 USCITA COLLEGATO LED ROSSO
OUTPUT 0' PIEDINO 0 USCITA COLLEGATO LED VERDE
INPUT 3' PIEDINO 3 INGRESSO COLLEGATO TX PC
OUTPUT 4' PIEDINO 4 USCITA COLLEGATO RX PC 
inizio:
serin 3, n2400_4, w0 ' ricevo via seriale il comando desiderato
if w0=0 then arresto ' se invio "0" il pwm si spegne
if w0>0 and w0<101 then accensione ' se invio da 1 a 100 il pwm si imposta da 1%a 100% se invio altri caratteri il pwm si arresta vedi errore
errore:
w0=0 'resetto la variabile
pwmout 2, off' spengo il pwm
high 1 ' accendo il led rosso di errore
low 0' spengo il led verde di acceso
goto inizio ' torno all'inizio ed attendo un comando valido
arresto:
pwmout 2, off ' spengo il pwm
low 1' spengo eventuale errore
LOW 0' spengo il led di acceso
goto inizio' torno all'inizio ed attendo un comando valido
accensione:
low 1' spengo il led rosso di errore
high 0' spengo il led di acceso
pwmout 2, 24, w0
goto inizio' torno all'inizio ed attendo un comando valido
 
Tutto ciò che si trova dopo l'apostrofo sono commenti
 
Il software da inserire nel PC e relativo sorgente, il codice per la MCU, e lo schema  sono prelevabili qui:PWM.zip 
Il software utilizza alcuni componenti ocx non ho creato un installer quindi consiglio di scaricare vbruntime6 che è sempre utile, se utilizzate Vista o Seven conviene eseguire il programma come XP.
 
Qui non c'è molto da dire, gestisc potenza, accenzione e spegnimento.
 
Sono sempre affascinato da siti dove confluiscono le idee di molte persone se questo piccolo esempio pensate vi sia utile posterò altri schemi e progetti e sarò lieto di rispondere a tutte le vostre domande compatibilmente con i tempi che ho a disposizione.
 
Prossimi schemi
PWM di potenza
Pilotaggio High-side

Login Form

Elettronica Open Source