하드웨어 일반
스탭 모터 구동하기
노란채송화
2010. 2. 6. 18:52
MCU : ATMEGA88
모델명 : 35BYJ46
제품 페이지 : http://www.china-jiuling.com/encp-1.php?pid=4&pname=35BYJ46
제품 카달로그가 인터넷에서 제공되지 않는다. 못찾겠다.
MCU 포트와 케이블 연결은 아래와 같이 했다.
케이블 번호
5 <---> 12V
4<--->PC0
3 <---> PC1
2 <---> PC2
1 <---> PC3
1-2 여자방법으로 구현하여 보았다. 정/역방향 동작을 테이블화 해보면,
const char forward_step_tbl[8] = {
0x01,
0x03,
0x02,
0x06,
0x04,
0x0c,
0x08,
0x09
};
const char backward_step_tbl[8] = {
0x09,
0x08,
0x0c,
0x04,
0x06,
0x02,
0x03,
0x01
};
위에서 작성한 테이블값은 카달로그상 동작관련 표를 보고 작성한것이다.
각 테이블에 있는 값을 순서대로 해당 포트로 때려주면 모터가 동작한다.
차례로 때려줄때 중간에 DELAY를 넣어줘야 한다.
시험결과 약 12000uS 지연이 최대인듯 하다.
그런데 정방향/1초대기/역방향/1초대기로 시험해본결과 위치가 조금씩 어긋나서 시간이 경과돼면
처음 시작한 위치보다 많이 벗어나 있다.
그래서 정지상태에서 모터를 구동/ 모터 정지시DELAY를 따로 설정해서 동작 시켰다.
약 2ms를 줬다.
결과적으로 처음과 달리 제위치로 돌아 온다.