L298应用实例.docVIP

  • 13
  • 0
  • 约 6页
  • 2017-02-06 发布于江西
  • 举报
L298应用实例实例一:用L298驱动两台直流减速电机的电路。引脚6,9可用于PWM控制。如果机器人项目只要求直行前进,则可将5,10和7,12两对引脚分别接高电平和低电平,仅用单片机的两个端口给出PWM信号控制6,11即可实现直行、转弯、加减速等动作。 实例二:用L298实现二相步进电机控制。 ? 关键词:直流电机控制,L298,avr电机控制。 本程序由AVR与虚拟仪器网站提供,免费共享,不记版权,欢迎转载,请注明出处。 网址: 论坛:/bbs/ 本程序通过测试,实现预期效果,如果你在使用中遇到问题,请在论坛交流。 程序编写整理:古欣 软件环境:icc+avrstudio 下载工具:PHYSICO AVR JTAGstk500 仿真编程器 介绍:/bbs/read.php?tid-61e.html 硬件环境: mega32+N298,你可以选择我们提供的运动控制开发板。 硬件连结: 请参考 硬件连接电路图.jpg 使用方法:直接将main.hex文件下载到单片机中就可以使用。你可以打开工程文件查看 ,motor.c已经是一个结构化的驱动程序,可以方便的调用。 更改连接:请打开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改变方向, ? pwm控制速度。 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); ? ? ? ? ? //默认速度运转 正 ? Delay1s(5); ? ? ? ? ? //延时5s ? motor_stop(); ? ? ? ? //停止 ? Delay1s(5); ? ? ? ? ? //延时5s ? back_ward(0); ? ? ? ? //默认速度运转 反 ? Delay1s(5); ? ? ? ? ? //延时5s ? speed_add(20); ? ? ? ? //加速 ? Delay1s(5); ? ? ? ? ? //延时5s ? speed_subtract(20); ? ? //减速 ? Delay1s(5); ? ? ? ? ? //延时5s } ? } 及这里的for_ward(0); ? ? ? ? ? //默认速度运转 正 如果改为for_ward(5);电机转不起来

文档评论(0)

1亿VIP精品文档

相关文档