8051/PIC > DT516-181.c 바이폴러 스텝모터구동

TODAY1,149 TOTAL684,019
사이트 이용안내
Login▼/회원가입
최신글보기 질문게시판 기술자료 동영상강좌

아두이노 센서 ATMEGA128 PWM LED 초음파 AVR 블루투스 LCD UART 모터 적외선


BASIC4MCU | 8051/PIC | DT-516 강좌 | DT516-181.c 바이폴러 스텝모터구동

페이지 정보

작성자 키트 작성일2017-08-24 11:06 조회581회 댓글0건

첨부파일

본문

3660040644_V9NO6UIv_25C025AF25B425CF25C625FA25B625F325BD25BA25C525DC25B825F025C525CD25C625C425C725FC_ekit.gif3Ftype3Dw7403660040644_juMwfNhI_l298-1_ekit.gif3Ftype3Dw740

 

 

L298 사용

지난 유니폴라 스텝모터 예제에서 사용 했던 6선 스텝모터를 그대로 사용 했습니다.

 

 

//-------------------------------------------------------------
// 82G516 E/V BOARD ( DT-516 )
//-------------------------------------------------------------
// XTAL : 22.1184Hz
//-------------------------------------------------------------
// filename: DT516-181.c
// 바이폴라 스텝모터 구동 
//-------------------------------------------------------------
#include
//
#include "DT516-main.h"
//
U_I count=0;
//
U_C m_tbl_1[4] ={0x03,0x18,0x05,0x28}; // 2상여자
U_C m_tbl_2[4] ={0x2B,0x1B,0x1D,0x2D}; // 4상여자
U_C m_tbl_12[8]={0x2B,0x03,0x1B,0x18,0x1D,0x05,0x2D,0x28}; // 2-4상여자
//
void ADC_Interrupt(void) interrupt 9{ // ADC_Interrupt:
}
//
void Timer_0_Interrupt(void) interrupt 1{ // 7200Hz주기
    P4=0xFF; // FND OFF
    switch(FND_CNT){
        case 0: P0=Seg_Data[count/1000];     FND_COM1=0; break;
        case 1: P0=Seg_Data[(count/100)%10]; FND_COM2=0; break;
        case 2: P0=Seg_Data[(count/ 10)%10]; FND_COM3=0; break;
        case 3: P0=Seg_Data[count%10];       FND_COM4=0; break;
    }
    if(++FND_CNT>3)FND_CNT=0;
    //
    if(delay_buf){ if(--delay_buf==0)delay_flg=1; }
}
//
void main(){
    int i,k;
    TMOD=2; ET0=1; TR0=1; EA=1;
 P2M1=0xFF; // Push-Pull output
    while(1){
     for(k=0;k<1000;k++){ // 4ms * 1000 = 4sec // 2상구동
            for(i=0;i<4;i++){ P2=m_tbl_1[i]; delay_ms(1); }
        }
     for(k=0;k<1000;k++){ // 4ms * 1000 = 4sec // 4상구동
            for(i=0;i<4;i++){ P2=m_tbl_2[i]; delay_ms(1); }
        }
     for(k=0;k<500;k++){ // 8ms * 500 = 4sec // 24상구동
            for(i=0;i<8;i++){ P2=m_tbl_12[i]; delay_ms(1); }
        }
    }
}
//-------------------------------------------------------------

 

 

3660040644_ojPWUKY2_dsc01649_ekit.jpg3Ftype3Dw7403660040644_ENPwKvmz_dsc01650_ekit.jpg3Ftype3Dw7403660040644_Xvtbuw5B_dsc01651_ekit.jpg3Ftype3Dw740

3660040644_1x79VDqN_dsc01652_ekit.jpg3Ftype3Dw740

납땜 귀찮아서 하기 싫었지만...억지로ㅠㅠ

 

3660040644_wxn2KByU_dsc01648_ekit.jpg3Ftype3Dw740

배선은 지난번과 마찬가지로 포트2를 사용 했습니다.

 

3660040644_7S13hmrd_dsc01637_ekit.jpg3Ftype3Dw740

모터가 코일로 이루어져있어서 역기전력에 의한 노이즈가 상당히 발생 합니다.

10배 프로브이므로 수직축은 한칸에 10V 입니다.

L298보호용 브릿지 다이오드를 달기 전의 파형입니다.

35V 정도 되는 파형이 보입니다.

 

3660040644_HDAlr2IP_dsc01642_ekit.jpg3Ftype3Dw740

40V를 넘는 것도 종종 나타납니다.

 

3660040644_WfX1C3Da_dsc01643_ekit.jpg3Ftype3Dw740

Fast Recovery다이오드가 없어서 W02M 일반 정류용 브릿지 다이오드를 연결 했습니다.

파형이 전체적으로 깨끗 해졌지만 여전히 높은 전압의 임펄스성 노이즈는 제거 되지 않고 있습니다.

저런 노이즈를 제거 하기 위해서는 Fast Recovery다이오드를 사용 해야 합니다.

 

3660040644_VgXwYkpP_dsc01644_ekit.jpg3Ftype3Dw740

3660040644_Gdq1nCZY_dsc01645_ekit.jpg3Ftype3Dw740

3660040644_6Ao27yTV_dsc01646_ekit.jpg3Ftype3Dw740

3660040644_ATptL2Qd_dsc01647_ekit.jpg3Ftype3Dw740

스코프 시간축을 좀 더 확대한 사진입니다.

 

3660040644_BFGgLsUZ_dsc01639_ekit.jpg3Ftype3Dw740

2상 구동 전류

 

3660040644_KqRmUPLa_dsc01640_ekit.jpg3Ftype3Dw740

4상 구동 전류

 

3660040644_lOpmLzV8_dsc01641_ekit.jpg3Ftype3Dw740

2-4상 구동 전류

 

지난번 유니폴라 구동과는 전류가 다릅니다.

왜 그런지는 이유를 직접 찾아 보세요

댓글 0

조회수 581

등록된 댓글이 없습니다.

8051/PICHOME > 8051/PIC > 전체 목록

게시물 검색

2019년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2018년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
Privacy Policy
MCU BASIC ⓒ 2017
모바일버전으로보기