软件环境:icc+avrstudio 打开motor.h更改以下内容即可。 //PD4,PD5 电机方向控制 #define moto_en1 PORTD |= 0x10 #define moto_en2 PORTD |= 0x20 #define moto_uen1 PORTD &=~ 0x10 #define moto_uen2 PORTD &=~ 0x20 软件核心介绍: 通过控制电机的IN1和IN2改变方向, IN1和IN2不同时,电机转动; IN1和IN2相同时,电机急停。 硬件连接电路图 avr+N298控制电机输入信号与电机工作方式 N298电机控制芯片引脚图 电机控制资料包括 所有电机控制例子源程序,L298数据手册,连接电路图。 今天有人反映,程序有点小问题 程序中这里的IO初始化 void port_init(void) { PORTA = 0x00; DDRA = 0x00; PORTB = 0x00; DDRB = 0x00; PORTC = 0x00; DDRC = 0x00; PORTD = 0x00; // DDRD = 0x80; // D7 PWM //这里修改 DDRD =0xB0; //PD4 PD5 PD7 OUT } 另外注意如果,启动时的PWM占空比太低 电机是转不起来的, void main(void) { //初始工作 init_devices(); while(1) { } } 及这里的for_ward(0); 如果改为for_ward(5);电机转不起来 |
|