手头上有个28BYJ-48的步进电机(应该是4相8拍的),但是自己却对其控制的顺序代码有疑问,望大佬解惑一下。
文件给了我一串控制电机的代码,我把控制正反转的部分截了下来,如下:
const int CCWStep[]={0x01,0x02,0x04,0x08}; //反转
const int CWStep[]={0x08,0x04,0x02,0x01}; //正转
...
void moveOnePeriod(int dir,int ms){
int i=0,j=0;
for (j=0;j<4;j++){
for (i=0;i<4;i++){
if(dir == 1)
digitalWrite(motorPins[i],(CCWStep[j] == (1<<i)) ? HIGH : LOW);
else
digitalWrite(motorPins[i],(CWStep[j] == (1<<i)) ? HIGH : LOW);
printf("motorPin %d, %d \n",motorPins[i],digitalRead(motorPins[i]));
}
printf("Step cycle!\n");
if(ms<3)
ms=3;
delay(ms);
}
我的问题是,该控制顺序为什么是16进制的?我该怎么去理解这组数?它是起什么作用?
我能不能把它简单转化成2进制 0001-0010-0100-1000,然后把1看作对应的相被激活?
感觉回答!