You are on page 1of 5

5/21/13

iu khin 4 ng c servo RC dng PIC ( How to control 4 servo motor with PIC16F877A ) | PHAN HONG THCH

iu khin 4 ng c servo RC dng PIC ( How to control 4 servo motor with PIC16F877A )

Cho cc bn hm nay mnh xin gi thiu cch iu khin ng c servo RC s dng PIC16F877A

Nhng trc ht mnh s gii thiu mt cht v loi ng c ny: Loi ng c servo RC ny c s dng rt nhiu trong cc m hnh my bay v robot RC: ngh l radio controlled ( iu khin bng sng v tuyn ) Bn trong ca ng c gm : 1 ng c DC 1 chui cc bnh rng gim tc 1 mch iu khin 1 bin tr ( dng phn hi v tr ca servo bng in p )

[http://2.bp.blogspot.com/-CH8h2jD_kIc/UXuoaOTaO5I/AAAAAAAAAHM/fW6JqCLIctM/s1600/New+Bitmap+Image+(2).bmp]

Ngun cp cho ng c servo RC thng t 4.8V n 7.2V Mt ng c servo RC s c 3 si cp ( 2 si ngun v 1 si xung iu khin ) cn mun bit u l si ngun u l si xung th bn nn tm trong datasheet ca n . ng c servo RC c thit k quay c gii hn ( khong 270 theo datasheet ca 1 s loi ) Trc ca ng c servo RC c nh v theo k thut iu bin rng xung PWM Mch ca ng c ch p ng mt dy xung c tn s 50Hz vi rng ca xung (mc cao ca xung) bin thin t 1ms n 2ms, hnh sau miu t c tnh ca xung iu khin:

phanhoangthach.blogspot.com/2013/04/ieu-khien-4-ong-co-servo-rc-dung-pic.html

1/5

5/21/13

iu khin 4 ng c servo RC dng PIC ( How to control 4 servo motor with PIC16F877A ) | PHAN HONG THCH

[http://1.bp.blogspot.com/-T8zo6ygUpYE/UXuoaG4bYKI/AAAAAAAAAHI/QKLwyEzr6eM/s1600/New+Bitmap+Image+(3).bmp]

20ms chnh l chu k ca xung (50Hz) 1.5ms chnh l rng ca xung tng ng vi v tr ca trc ng c , ta cn phi iu iu khin thay i gi tr ny diu khin ng c quay ti gc quay m ta mong mun

Hnh sau ch s tng quan gia v tr ca trc servo vi rng ca xung iu khin:

[http://2.bp.blogspot.com/aFfvgbW0xU8/UXuojibMBZI/AAAAAAAAAHg/wZLWTKBRYw/s1600/New+Bitmap+Image.bmp]

a s cc ng c servo RC trn th trng iu dng xung c rng t 1ms -2ms iu khin mt s loi khc th khng nm trong khong ny.

OK th l mt cht kin thc c bn ,mnh s vo vn chnh, dng cch no iu khin loi ng c ny, theo mnh th c 3 cch:
phanhoangthach.blogspot.com/2013/04/ieu-khien-4-ong-co-servo-rc-dung-pic.html 2/5

5/21/13

iu khin 4 ng c servo RC dng PIC ( How to control 4 servo motor with PIC16F877A ) | PHAN HONG THCH

--Dng IC chuyn dng iu khin ( min bn ti) --Dng vi mch NE555 iu khin ( ci ny l kin thc c bn cho dn in t ,mnh khng bn ti ) --Dng vi x l ( ci ny th qu tuyt vi cho nhng ai thch khm ph v my m nghin cu) Mnh yu vi x l! y mnh dng dng vi x l PIC v MSP430 ( MSP430 s gi thiu sau ) v dng C lp trnh Cch 1: Bt tt cng xut ca PIC theo hm delay_ms() hoc delay_us() to xung while(true) //vng lp { output_high(PIN_C0); //bt chn RC0 delay_us(1500); // ch 1,5ms output_low(PIN_C0); //tt chn RC0 delay_ms(20); //ch 20ms } ( ni tht l cch ny qu t!) Cch 2: dng ngt timer bt tt cc chn ra to xung (cch ny yu cu cc bn phi hiu r v cu to timer trong PIC16F877A) cch ny trng PRO hn Mnh chn timer0 to xung v timer0 c th to ra tn s thp cho ng dng ny mnh set timer0 sao cho timer0 trn mi 0,1ms , khi timer0 trn s sinh ra 1 c ngt v hm set_servo s chy, sau khi kt thc chng trnh s t ng xa c ngt v chng trnh ch c ngt k tip, mnh s dng cc bin value , value1 , value2 , value3 iu khin rng ca xung tng ng vi 4 chn xut xung RC0 , RC1 , RC2 , RC3. V d nh chn value=10 th xung ra s l 10*0,1=1ms hoc value3=15 th xung ra l 15*0,1=1,5ms... Sau y l on code demo(dng CCS vit) : #use delay(clock=16000000) char dem; char value,value1,value2,value3; #INT_TIMER0 void set_servo() { set_timer0(164); dem++; //bin m tng thm 1 gi tr mi 0,1ms if (dem >= 200) // 200*0,1=20ms (xung 50Hz) { dem=0; // reset bin m tm kim RC1=1; //bt cng RC2=1; RC3=1; RC4=1; } if (dem >= value)RC1=0; //tt cng if (dem >= value1)RC2=0; if (dem >= value2)RC3=0; if (dem >= value3)RC4=0; }

PHAN HONG TH
Sidebar
Home
0 T ch cm bin mu d

0 Module cm bin pht

0 iu khin 4 ng c s

0 iu khin 14 thit b i

Ghi ,c v xa d liu 0 t

0 M ha v gii m 8bit

0 iu khin t xa bng

void main() { set_tris_c(0x00); //set cc chn port C iu l chn xut portC = 0x00; enable_interrupts(int_timer0); //cho php ngt timer0 enable_interrupts(global); setup_timer_0(RTCC_INTERNAL|RTCC_DIV_4); //chon tn s cho timer0 t clock chnh (16MHz) set_timer0(164); //ci t timer timer0 trn mi 0,1ms while(true) //vng lp { value=10; //gi tr gn cho cc bin iu khin rng xung value1=18; value2=12;
3/5

phanhoangthach.blogspot.com/2013/04/ieu-khien-4-ong-co-servo-rc-dung-pic.html

5/21/13

iu khin 4 ng c servo RC dng PIC ( How to control 4 servo motor with PIC16F877A ) | PHAN HONG THCH

value3=20; } } y l dng sng ra trn cc chn RC0 ,RC1 ,RC2 ,RC3 (dng chng trnh m phng)

Gi phn hi

[http://1.bp.blogspot.com/-hykG7YAnYI/UXuohfxBycI/AAAAAAAAAHY/ROBGJ7CMjvk/s1600/New+Bitmap+Image+ (4).bmp]

Nh vy vi code ny th mnh c th iu khin 4 servo RC cng 1 lc hoc c th iu khin nhiu ng c servo RC hn Hy vng vi bi vit ca mnh n s tht s hu ch cho nhng ai quan tm Thanks for read Mi tht mt xin lin h qua email ca mnh : phanhoangthach1989@gmail.com T : 01216512808

ng 4 weeks ago bi Phan Hoang Thach


0

Xem nhn xt

phanhoangthach.blogspot.com/2013/04/ieu-khien-4-ong-co-servo-rc-dung-pic.html

4/5

5/21/13

iu khin 4 ng c servo RC dng PIC ( How to control 4 servo motor with PIC16F877A ) | PHAN HONG THCH

Cha c nhn xt no

Thm nhn xt di tn Trng Quang Cnh

phanhoangthach.blogspot.com/2013/04/ieu-khien-4-ong-co-servo-rc-dung-pic.html

5/5

You might also like