|
|||||||||||
| 技術交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術 | 電源技術 | 測控之家 | EMC技術 | ARM技術 | EDA技術 | PCB技術 | 嵌入式系統(tǒng) 驅動編程 | 集成電路 | 器件替換 | 模擬技術 | 新手園地 | 單 片 機 | DSP技術 | MCU技術 | IC 設計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
35BYJ46步進電機的驅動問題? |
| 作者:lanqiao_80 欄目:單片機 |
用單片機與ULN2803A來驅動,電機為四相八啪驅動方式,DC12V,但是我發(fā)現(xiàn)電機只有震動,沒有轉動,好奇怪。不知道是那里錯誤,量了一下電壓,單片機輸出為3V左右, |
| 2樓: | >>參與討論 |
| 作者: highway 于 2006/6/13 12:31:00 發(fā)布:
開始時速度慢點,你的時序正確嗎?硬件連接正常嗎? |
|
| 3樓: | >>參與討論 |
| 作者: lanqiao_80 于 2006/6/13 16:34:00 發(fā)布:
硬件已經(jīng)正確了。但程序有問題啊。 程序如下:它只能向一個方向轉,安鍵沒有用啊? 高手看看。是什么問題? //***************************************************** //功能:步進電機的正轉和反轉. //作者:LQ //日期:2006.06.08 //修改: //***************************************************** #include<reg51.h> const unsigned CHAR motortab[]={0x88,0xCC,0x44,0x66, 0x22,0x33,0x11,0x99}; //步進電機運行參數(shù) unsigned CHAR np; void turn_right(void); void turn_left(void); void turn_stop(void); void delay(unsigned CHAR t) { unsigned CHAR i; unsigned int j; for(i=0;i<t;i++) { for(j=0;j<100;j++); } } void turn_step(unsigned CHAR d) { if(d&0x01) { if(np==0) { np=7; } else { np--; } } else { if(np==7) { np=0; } else { np++; } } P2=motortab[np]; } //************************************************** //功能:電機正轉控制 //參數(shù):無 //入口:無 //出口:無 //************************************************** void turn_right(void) { unsigned CHAR temp1; temp1=P1; while(temp1==temp1&0xfd) { turn_step(1); delay(2); temp1=P1; } if(temp1==temp1&0xfe) { turn_left(); } else if(temp1==temp1&0xfb) { turn_stop(); } } //************************************************** //功能:電機反轉控制 //參數(shù):無 //入口:無 //出口:無 //************************************************** void turn_left(void) { unsigned CHAR temp1; temp1=P1; while(temp1==temp1&0xfe) { turn_step(0); delay(2); temp1=P1; } if(temp1==temp1&0xfd) { turn_right(); } else if(temp1==temp1&0xfb) { turn_stop(); } } void key(void) { unsigned CHAR t; t=P1; SWITCH(t) { case 0xfe:turn_left(); case 0xfd:turn_right(); case 0xfb:turn_stop(); default:break; } } //************************************************** //功能:電機停止控制 //參數(shù):無 //入口:無 //出口:無 //************************************************** void turn_stop(void) { delay(1); P2 = 0X00; P1 = 0XFF; } void main(void) { P2=0X00; P1=0XFF; np=4; while(1) { key(); } } |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |