안녕하세요?
고객님들 중에 AM-MS2를 이용할 때, 스테핑 모터의 속도를 스위치로 조절하고 싶다고 하셔서,
참고하실 만한 소스를 올려드립니다. 예전에 짯던 소스 중의 일부를 편집한 것입니다.
[소스 설명] 타이머를 활용하여, MS2에 넣어주는 클럭을 넣는 타이밍을 조절하면 속도가 조절 됩니다. TS8을 이용하여 속도와 아울러 방향도 조절하도록 프로그래밍 되어 있습니다.
이 소스에서 main 함수의 swtich(SW_PORT) 구문에서
D0~D3번키 1번모터구요
D0번키 : 1번모터 CCW 구동
D1번키 : 1번모터 CW 구동
D2번키 : 1번모터 정지
D3번키 : 1번모터 동작
D4~D7번키 2번모터구요
D4번키: 2번모터 CCW 구동
D5번키 : 2번모터 CW 구동
D6번키 : 2번모터 정지
D7번키 : 2번모터 동작
이렇게 되어 있습니다만,
motor1durate 값을 조절하면 모터 속도가 조절됩니다.
모터가 두 개 구동이 필요 없다면, D4~D7번을 새롭게 짜서 넣으면서,
1번 모터의 구동에 관련해서 모터 속도 조절하는 부분을 넣으면 될 것 같습니다.
아니면, 그냥 스위치 보드인 TS8을 두 개 사용하면 될 것 같습니다.
즉 위의 구동은 포트 A에 포트 D 에도 하나 꽂아주면 그것은 속도 조절에 쓰게 됩니다.
D0~D3을 쓰고 있습니다.
D0~D1 : 모터 1의 속도 증감
D2~D3 : 모터 2의 속도 증감
만약,
switch(SW_PORT){
case 0x01 : .....................
.......................여기까지는 똑같이 놓고.
아래 부분만 변경
case 0x80 : speedswstate[0] = PRESS;
break;
case 0x40 : speedswstate[1] = PRESS;
break;
case 0x20 :
break;
case 0x10 :
break;
그리고, // 이후 모터의 속도 컨트롤
switch(SPEEDSW_PORT&0xC3){
이 부분의 swtich 문은 삭제 이렇게 하면 쉬울 것 같네요.
수고하세요.