七 步進電機

2021-10-10 11:33:21 字數 2362 閱讀 1096

功能:按數字鍵 1~9,按下回車開始轉動,上下鍵配合表示正反轉,按下上鍵表示正轉,下鍵表示反轉;左鍵固定正轉 90 度,右鍵固定反轉 90;esc 鍵終止轉動。中斷服務函式中每隔1ms掃瞄一次按鍵,每間隔2ms將節拍碼送入p1口(beats不為0的情況下);主函式中呼叫keydriver。呼叫關係如圖:

unsigned char code keycodemap[4][4] = , //數字鍵 1、數字鍵 2、數字鍵 3、向上鍵

, //數字鍵 4、數字鍵 5、數字鍵 6、向左鍵

, //數字鍵 7、數字鍵 8、數字鍵 9、向下鍵

//數字鍵 0、esc 鍵、 回車鍵、 向右鍵

};

unsigned char keysta[4][4] = , , ,

};signed long beats = 0; //電機轉動總拍數

unsigned char thr0,tlr0;

void keydriver();

void configtimer(unsigned long ms);

void main()

}void configtimer(unsigned long ms)

void startmotor(signed long angle)

void stopmotor()

void keyaction(unsigned char keycode)

else if(keycode == 0x26) //上鍵,正轉

else if(keycode == 0x28) //下鍵,反轉

else if(keycode == 0x25) //左鍵,正轉90度

else if(keycode == 0x27) //右鍵,反轉90度

else if(keycode == 0x0d) //回車鍵,電機轉動

else //正轉

}else if(keycode == 0x1b) //esc鍵,清零 }

void keydriver()

, ,,

}; for(i=0;i<4;i++)

backup[i][j]=keysta[i][j]; //儲存當前按鍵狀態

}} }

}void keyscan()

,,, };

keybuf[keyout][0] = (keybuf[keyout][0]<<1)| key_in_1;

keybuf[keyout][1] = (keybuf[keyout][1]<<1)| key_in_2;

keybuf[keyout][2] = (keybuf[keyout][2]<<1)| key_in_3;

keybuf[keyout][3] = (keybuf[keyout][3]<<1)| key_in_4;

for(i=0;i<=3;i++)

else if((keybuf[keyout][i]&0x0f)==0x0f)

else

{}} keyout++;

if(keyout>=4)

switch(keyout) //掃瞄下一行

}void turnmotor() //電機轉動函式,在中斷中進行,2ms執行一次

; static signed char index=0; //節拍角標,必須定義成signed型別

unsigned char temp;

if(beats != 0) //全域性變數beats不為0,則轉動

}else //反轉

}temp = p1;

temp = temp&0xf0;

temp = temp|beatcode[index];

p1 = temp;

} else }

void interrupttimer0() interrupt 1

}

Arduino A4988 步進電機

初識arduino,有什麼錯漏的地方請指正.學會使用a4988驅動電機對於diy3d印表機,雕刻機很有幫助。6線一般是兩組,先用萬用表接其中一根線,然後一次點其他線,凡是不同的都是另外一組,每一組有三根線,兩兩測試,電阻最大的是線圈的兩頭抽頭,剩下一根是中心抽頭。實驗目的 arduino與a4988...

28BYJ 48步進電機

今天練習了一下步進電機,看過資料後開始進行程式設計測試,程式設計後能順利讓電機轉動起來,並且數度可調,但是當我想讓電機只轉一圈時問題來了。這款步進電機的減速比為1 64,步進角為5.625 64度。那麼要轉一圈需要的脈衝多少呢,我自己算了算。乙個脈衝轉5.625 64 0.087890625度,所以...

9 4 28BYJ 48步進電機

28byj 48 是 4 相永磁式減速步進電機,其外觀如圖 9 3 所示 圖 9 3 步進電機外觀 我們先來解釋 4 相永磁式 的概念,28byj 48 的內部結構示意圖 9 4 所示。先看裡圈,它上面有 6 個齒,分別標註為 0 5,這個叫做轉子,顧名思義,它是要轉動的,轉子的每個齒上都帶有永久的...