Example: marketing

Chapter. 12 스텝모터(Step Motor) 구동하기

(Step Motor) Chapter. 12 Jaeheung, LeeHBE-MCU-Multi AVR 1. (Step Motor) 2. (Step Motor) ( , ) 1902 1960 NC AC , DC ( ) (Open Loop Control), .. (Step Motor) (Step Motor) n : .n : . n (Step Motor) 1 (Full step) n nSTEP_A -> STEP_/A -> STEP_B -> STEP_/B -> STEP_A ->>> n1 n 1 n 1 2 3 4 5 6 7 8 9 A 1 0 0 0 1 0 0 0 1 B 0 1 0 0 0 1 0 0 0 /A 0 0 1 0 0 0 1 0 0 /B 0 0 0 1 0 0 0 1 0 1 (Step Motor) 1 (Step Motor) 2 n 2 2.

실습19 : 스텝모터돌리기 ¨실습개요 ¤ATMega128의GPIO핀에스텝모터의제어신호를연결하여, 스텝모 터를회전시키도록한다. ¤모터가1바퀴돌때마다신호를보내주는인코더를이용하여, 모터가 2바퀴돌때마다, 방향을전환하도록한다 ¤스텝모터의구동방식은1-2상여자방식을쓰도록한다

Tags:

  Atmega128

Information

Domain:

Source:

Link to this page:

Please notify us if you found a problem with this document:

Other abuse

Advertisement

Transcription of Chapter. 12 스텝모터(Step Motor) 구동하기

1 (Step Motor) Chapter. 12 Jaeheung, LeeHBE-MCU-Multi AVR 1. (Step Motor) 2. (Step Motor) ( , ) 1902 1960 NC AC , DC ( ) (Open Loop Control), .. (Step Motor) (Step Motor) n : .n : . n (Step Motor) 1 (Full step) n nSTEP_A -> STEP_/A -> STEP_B -> STEP_/B -> STEP_A ->>> n1 n 1 n 1 2 3 4 5 6 7 8 9 A 1 0 0 0 1 0 0 0 1 B 0 1 0 0 0 1 0 0 0 /A 0 0 1 0 0 0 1 0 0 /B 0 0 0 1 0 0 0 1 0 1 (Step Motor) 1 (Step Motor) 2 n 2 2.

2 NSTEP_A,STEP_/A -> STEP_/A, STEP_B -> STEP_B, STEP_/B ->STEP_/B,STEP_A ->>> n2 n1 2 n (damping) 1 2 3 4 5 6 7 8 9 A 1 0 0 1 1 0 0 1 1 B 1 1 0 0 1 1 0 0 1 /A 0 1 1 0 0 1 1 0 0 /B 0 0 1 1 0 0 1 1 0 1 (Step Motor) 2 (Step Motor) 1-2 n n 1,2 1/2 1,2 2 . n1 n1 1 2 1/2n 1 2 3 4 5 6 7 8 9 A 1 1 0 0 0 0 0 1 1 B 0 1 1 1 0 0 0 0 0 /A 0 0 0 1 1 1 0 0 0 /B 0 0 0 0 0 1 1 1 0 1 (Step Motor) 1-2 19 : atmega128 GPIO.

3 1 , 2 , 1-2 . atmega128 GPIO , , GPIO 19 : : MCU , STEP Motor MCU D CNT MCU STEP MOTOR MCU C 19 : : 19 : : 19 : MCU C PC0~PC3 D0~D3 MCU D PD0 CNT 19 : : 1 nD(3:0) , 0x1, 0x2, 0x4, 0x8 .n , 0x8, 0x4, 0x2, 0x1 . 123456789D0(A)100010001D1(B)010001000D2( /A)001000100D3(/B)000100010D()0x10x20x40 x80x10x20x40x80x1 19 : : 1-2 nD(3:0) , 0x1, 0x3, 0x2, 0x6, 0x4, 0xC, 0x8, 0x9.

4 N . 123456789D0(A)110000011D1(B)011100000D2( /A)000111000D3(/B)000001110D()0x10x30x20 x60x40xC0x80x90x1 19 : : n1-2 D(3:0) . n . / 0 , 45 KHz n .n , 2 .n .n 0 , .n . 19 : : )#include< >#include< >#define S_MOTOR_DDR DDRC#define S_MOTOR_DATA_OUT PORTC#define S_MOTOR_PORT 0x0F #define DIR_CHANHE_CNT 2 // #define DIR_L 0#define DIR_R 1#define ON 0#define OFF 1unsigned char mot_cnt=0,ecd_cnt=0; unsigned char dir=DIR_R; // unsigned char flag=OFF; // unsigned char flag_cnt=0; 19 : 2)//1-2 unsigned char mot_tbl[]={0x08,0x0c,0x04,0x06,0x02,0x03 ,0x01,0x09};3)SIGNAL(SIG_INTERRUPT0);4)S IGNAL(SIG_OVERFLOW0);5)intmain(){S_MOTOR _DDR |= S_MOTOR_PORT;6)EICRA = 0x02; //1 1 0.}

5 EICRB = 0x00;EIMSK = 0x01; /* 0 1 , SREG I 1 enable . */EIFR = 0x01; /* 0~1 1 , SREG I EIMSK INT7~INT0 1 , MCU . */TCCR0 = 0x07; /* WGM0(1:0)= 00 COM0(1:0) = 00 normal (OC0 )CS(2:0) = 111 Prescaler1024 */TCNT0 = 0xff -160; // (1 / ( Mhz/ 1024 prescaler)) * 160 => 22ms :45khzTIMSK |= 1 << TOIE0; // TIFR |= 1 << TOV0; //TOV0 Timer/Counter0 overflow flag 19 : 6)sei();while(1);return 0;} SIGNAL(SIG_INTERRUPT0){cli();flag=ON; // . if(ecd_cnt== DIR_CHANHE_CNT){ //2 dir = (dir == DIR_R ?}

6 DIR_L : DIR_R ); // dir^=1 .ecd_cnt=0; }sei();} 19 : 6)SIGNAL(SIG_OVERFLOW0){cli();TCNT0 = 0xff -160; if(flag == ON) // flag_cnt++; /* , */if(flag_cnt== 10){ flag = OFF;flag_cnt=0; // ecd_cnt++; }S_MOTOR_DATA_OUT = mot_tbl[mot_cnt]; if(dir == DIR_R){If(mot_cnt++ == 7) mot_cnt=0; }else {if(mot_cnt--== 0) mot_cnt=7;sei();} 16 : TWI(I2C) EEPROM


Related search queries