Pozdrav...
Za komunikaciju sam koristio PWM modul gde sam menjao frekvenciju zavisno od potrebe. Frekvencije PWM-a se krecu od 2,44kHz do 31,24kHz. Dakle u frekventnom treba podesiti frekvenciju za skaliranje na 31,2kHz i time ce se moci podesiti 50Hz frekvencije motora, dok ce minimalna frekvencija motora moci da se zada sa 2,44kHz sto predstavlja 3,9Hz. U user manual-u regulatora na 197 str. se pri dnu nalazi objasnjenje kako radi algoritam za ovaj nacin podesavanja frekvencije. Regulator meri ulaznu frekvenciju i poredi je sa podesenom frekvencijom za skaliranje procenat koji se dobije tim odnosom se mnozi sa maksimalnom frekvencijom motora koja se takodje zadaje u registru A004. Dakle ako se zada max frekvencija motora od 50Hz, frekvencija PWM signala 2,44kHz i frekvencija za skaliranje 31,2kHz, frekvencija motora se dobija kao (2,44/31,2)*50=3,9Hz
Sledece funkcije sam koristio za podesavanje frekvencije motora:
Code:
void Upali()//Postavlja faktor ispune razlicit od 0 i ukljucuje PWM //na postavljenu frekvenciju
{
//postavlja faktor ispune na 50% pri najvisoj frekvencija
//pri manjim frekvencijama taj faktor ispune opada
CCPR1L = 60>>2;
CCP1CON &= 0xCF;
CCP1CON |= (0x30&(60<<4));
}
void Ugasi()
{
//faktor ispune postavlja na 0 i time gasi PWM
CCPR1L = 0>>2;
CCP1CON &= 0xCF;
CCP1CON |= (0x30&(0<<4));
}
void PWM_Init()
{
CCP1CON = 0x0C;
PR2 = 0xFF;
T2CON = 0x01;
Ugasi();
T2CON |= 0x04;
}
void Podesi_procenat_f(unsigned int parametar) //parametar se krece u //opsegu 19-255
{
TRISC2=0;
PR2=parametar;
}
Funkcijom PWM_Init() se konfigurise PWM modul, ali je i ugasen, tj. duty je 0. Funkcijom Podesi_procenat_f() se podesava frekvencija PWM-a u datom opsegu. Oscilator je 10MHz. Ukoliko se u toku rada pozove funkcija Ugasi(), PWM ce se ugasiti, ali ce frekvencija motora biti minimalna, tj ona koja se podesi u samom regulatoru. Sve parametre koje treba podesiti se nalaze na str. 197 u user manual.
Funkcije su na brzaka napisane, ali sasvim zadovoljavaju potrebe...
Korisceni kontroler je PIC16F887, a kompajler je HI-TECH.
Pozdrav svima...