lunedì 14 novembre 2011

PIC12F683 - PWM motor/light dimmer


Oggi presentiamo un regolatore o dimmer per motori / lampade in bassa tensione (12V o 24V). Cuore del circuito è il PIC12F683 equipaggiato di un modulo CPP e un convertitore ADC 8/10 bit. Di seguito il collegamento al datasheet:
http://ww1.microchip.com/downloads/en/devicedoc/41211d_.pdf
Mediante il partitore di tensione formato dal potenziometro lineare da 5K portiamo in ingresso del convertitore ADC (PIN 3) una tensione variabile da 0 a 5V. Il valore letto a 8 bit viene passato come 'duty cycle' al modulo CPP per la generazione dell'onda quadra sul pin di uscita (PIN 5).




Di seguito parte del codice in linguaggio PBP.


Define ADC_BITS 8               ' Set number of bits in result
Define ADC_CLOCK 3          ' Set clock source (3=rc)
Define ADC_SAMPLEUS 50 ' Set sampling time in uS
ANSEL = 111000             ' Set AN3 analog, rest digital
CMCON0 = 7                           ' Analog comparators off
...
mainloop:
    ADCIN 3, adval
    hPWM 1, adval, 30000
Goto mainloop



Se viene effettuata la conversione a 10 bit (Define ADC_BITS 10); all'istruzione HPWM occorre passare il valore ottenuto da ADCIN diviso per 4 (adval/4) ottenedo cosi un numero ad 8 bit.
L'onda quadra è poi inviata al MOSFET LOGIC (triggerabile da basse tensioni). Il circuito è equipaggiato da connettore ICSP per la programmazione 'in circuit' mediante il programmatore  PICKIT3 di Microchip Link a PICKIT3 su Microchip

Di seguito lo stesso circuito alimentato a 24V collegato a un motore crouzet con riduttore.

Nessun commento:

Posta un commento