AI o o AI6 BYTE 4 BYTE Position
AI馬達的命令 o o AI馬達的命令分為設定命令(6 BYTE)以及控制命令 (4 BYTE), 利用這些命令就可以控制馬達 位置命令(Position Send Command) - Header = 0 x. FF(Packet start) - Data 1 =BIT 5~7為速度, BIT 0~6為ID - Data 2 = 0~254(Position) - Checksum = (Data 1 XOR Data 2) AND 0 x 7 F
8051串列副程式 void uart(void) { TMOD=0 x 20; PCON=PCON & 0 x 7 F; TH 1=0 x. FD; TR 1=1; SCON=0 x 50; IP=0 x 10; IE=0 x 90; TI=0; RI=0; } void transmit(unsigned char tdata) { SBUF=tdata; while(TI==0); TI=0; }
傳送角度副程式 main() { uart(); transmit(0 x. FF); //HEAD transmit(0 x 00); //data 1速度 0, ID 0 transmit(0 x 80); //data 2角度=333/2=166 transmit((0 x 00 ^ 0 x 80) & 0 x 7 F); //作出CHCEK SUM while(1); }
伺服馬達的控制程式 #include<AT 89 X 51. H> void move(unsigned char ang) { unsigned char a, b; P 2_0=1; a=0; while(a<5) //作 0. 5 m. S脈波 { b=0; while(b<100) b++; } a=0; while(a<ang) //作HI的部分 { b=0; while(b<10) b++; a++; } P 2_0=0; a=200 -ang; while(a>0) //作掉剩下的0 { b=0; while(b<10) b++; a--; } while(a<193) //作 20 m. S脈波 { b=0; while(b<100) b++; } main() { while(1) move(50); }
- Slides: 21