×
单片机 > 单片机程序设计 > 详情

用AVR单片机直接控制其步进电机

发布时间:2020-05-28 发布时间:
|

用mege8L的PB0-PB3连接步进电机的四个接线端!该步进电机的转矩很小,强烈建议不要将其从底座上拆下!!!否则没有轴承支撑,摩擦力太大,转不起来! 


#include  
#define uchar unsigned char 
#define uint unsigned int 


uchar np; 
const uchar motortb[]={0x11,0x99,0x88,0xcc,0x44,0x66,0x22,0x33};//步进电机运行数据表 

void delay(uchar t)// 每步延时的子程序 

uchar i; 
uint j; 
for (i=0;ifor (j=0;j<900;j++); 


void a_step(uchar d,uchar t)       //步进电机走一步d=0 正转d=1 反转, t 越大走得越慢 慢                   

if (d&0x01) 

if (np==0) 
np=7; 
else np--; 

else 

if (np==7) 
np=0; 
else np++; 

PORTB=motortb[np]; 
delay(t); 


void a_turn(uchar d,uchar t)// 步进电机走一圈 

uchar i; 
for (i=0;i<96;i++) 
a_step(d,t); 


void main(void) 

DDRB=0xff; 
PORTB=0x44; 
np=4; 
while (1) 
a_turn(1,5);//转速可以在5-25左右的范围内调节,t太小则嗡嗡作响,转不起来 

关键字:AVR单片机  直接控制  步进电机 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
ARM 汇编的必知必会