L298N电机驱动+光耦隔离
- 格式:pdf
- 大小:265.94 KB
- 文档页数:3
L298N 电机驱动器使用说明书[温馨提示温馨提示]]在使用本产品前,请仔细阅读本使用说明书,这样您在使用中遇到问题时,也许可以通过本说明书就能解决;请妥善保管本说明书,以备日后参考;本册外观图片仅供参考,请以实物为准。
[注意事项注意事项]]本产品为直流电源供电,请确认电源正负极正确后上电; 请勿带电插拔连接线缆;此产品非密封,请勿在内部混入镙丝、金属屑等导电性异物; 储存和使用时请注意防潮防湿;第一次上电时观察绿色电源指示灯是否点亮,如果不亮,请立即断电和我们联系,或检查电源是否接反。
板上有个5V 备用输出插备用输出插针针J4J4,,只是输出给单片机等系统板使用,千万不能从这里引入外部电源千万不能从这里引入外部电源,,否则可能烧坏否则可能烧坏驱动板驱动板驱动板稳压稳压芯片78M05。
您需要的话可以自己焊接您需要的话可以自己焊接,,默认不焊接默认不焊接。
驱动器为功率设备,请保持工作环境的散热通风;在连上电机后使其连续工作一段时间后观察电机和驱动芯片的温升正常后方可进行后续使用,如果电机或驱动芯片(L298N)温度过高请和我们联系。
[主要主要功能特点功能特点功能特点]]关键芯片:L298N 双H 桥直流/步进电机驱动芯片L298N 芯片工作电压:DC 4.5~5.5V 。
电机驱动电源电压DC 6--35V 。
电源输入正常时有LED 灯指示。
最大输出电流2A (瞬间峰值电流3A ),最大输出功率25W 。
输入控制有光耦隔离,抗干扰能力强。
输出正常时电机运转有LED 灯指示。
具有二极管续流保护。
可单独控制2台直流电机或1台两相4线(或6线)步进电机。
可以采用并联接法控制一台高达3A 的直流电机。
可实现电机正反转。
直流电机转速可通过PWM 方式实现调速。
可以输出5V 电源。
[控制接口说明控制接口说明]]本驱动器控制接口采用光耦共阳极接法实现隔离功能,因此在驱动器上不需要连接控制端的地,控制时是通过控制端的地形成回路的,也避免了控制地和驱动地共地造成电机启动对控制的干扰;只要把控制端的电源正(一般有+3.3V 、+5V 、+12V 、+24V 等等)接在驱动器端口J2的VCC 上即可。
【简要说明】一、尺寸:长71mmX宽43mmX高28mm二、主要芯片:L297、L298N三、工作电压:控制信号直流4.5~5.5V;电机电压直流5V~30V四、最大工作电流:2A五、额定功率25W六、特点:1、具有电源指示。
2、转速可调3、抗干扰能力强4、具有续流保护和过电流保护5、可单独控制一台步进电机6、可控制两相和四相步进电机7、可控制直径在42mm内的任何,两相和四相步进电机适用场合:单片机学习、电子竞赛、产品开发、毕业设计。
【标注图片】【步进电机控制接线图】步进电机的控制实例步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。
步进电机可分为反应式步进电机(简称VR)、永磁式步进电机(简称PM)和混合式步进电机(简称HB)。
一、步进电机最大特点是:1、它是通过输入脉冲信号来进行控制的。
2、电机的总转动角度由输入脉冲数决定。
3、电机的转速由脉冲信号频率决定。
二、步进电机的驱动电路根据控制信号工作,控制信号由单片机产生。
(或者其他信号源)三、控制步进电机的速度如果给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步。
两个脉冲的间隔越短,步进电机就转得越快。
调整单片机发出的脉冲频率,就可以对步进电机进行调速。
(注意:如果脉冲频率的速度大于了电机的反应速度,那么步进电机将会出现失步现象)。
四、此板驱动步进电机测试程序说明:以AT89S52单片机控制单元,C语言编程!【接线图】【测试程序】/********************************************************************汇诚科技实现功能:正转_反转_减速_加速程序使用芯片:AT89S52 或者STC89C52晶振:11.0592MHZ编译环境:Keil作者:zhangxinchun淘宝店:汇诚科技【声明】此程序仅用于学习与参考,引用请注明和作者信息!*********************************************************************/ #include<reg52.h>#define uchar unsigned char#define uint unsigned intuchar Y=1; //初始化速度/********************************************************控制位定义********************************************************/sbit shi_neng=P1^0; // 使能控制位sbit fang_shi=P1^1; // 工作方式控制位sbit fang_xiang=P1^2;// 旋转方向控制位sbit mai_chong=P1^3; // 脉冲控制位sbit zheng_zhuan=P2^0; // 正转sbit fan_zhuan=P2^1; // 反转sbit jia_su=P2^2; // 加速sbit jian_su=P2^3; // 减速/********************************************************延时函数********************************************************/ void delay(uchar i)//延时函数{uchar j,k;for(j=0;j<i;j++)for(k=0;k<180;k++);}/********************************************************加速函数********************************************************/ void jia(){Y=Y-1;if(Y<=1){Y=1;}//如果速度值小于等于1,值保持不变}/********************************************************减速函数********************************************************/ void jian(){Y=Y+1;if(Y>=100){Y=100;}}/********************************************************主函数********************************************************/main(){shi_neng=1; // 使能控制位fang_shi=1; // 工作方式控制位fang_xiang=1;// 旋转方向控制位mai_chong=1; // 脉冲控制位while(1){if(zheng_zhuan==0){fang_xiang=1;}if(fan_zhuan==0){fang_xiang=0;}if(jia_su==0){delay(10);while(!jia_su);jia();}if(jian_su==0){delay(10);while(!jian_su);jian();}mai_chong=~mai_chong; //输出时钟脉冲delay(Y); //延时(括号内数值越小,电机转动速度越快)}}/********************************************************结束********************************************************/【应用原理图】L297_L298芯片混合式步进电机驱动器元件清单序号名称标注名型号封装备注1 电阻R1、R3 1K 贴片0805封装2 电阻R2 3.9K 贴片0805封装3 电阻R4、R5 0.5欧姆直插2W4 电阻R6 22K 贴片0805封装5 电容C1 25V0.22uf 直插电容6 电阻C2 50V100UF 电解电容7 发个二极管DS1 红色二极管区分正负极8 整流二极管D1~D8 IN40079 芯片U1 L297 20P直插10 芯片U2 L29811 排针P1 6针12 端子6针【图片展示】/********************************************************实现功能:正转程序使用芯片:AT89S52晶振:11.0592MHZ编译环境:Keil********************************************************/#include<reg52.h> //库文件#define uchar unsigned char //字符型宏定义#define uint unsigned int //整型宏定义uchar tt; //定时器计数初值定义uint sec; //速度值定义uchar Y=30; //初始化速度/********************************************************控制位定义********************************************************/sbit shi_neng=P1^0; // 使能控制位sbit fang_shi=P1^1; // 工作方式控制位sbit fang_xiang=P1^2;// 旋转方向控制位sbit mai_chong=P1^3; // 脉冲控制位sbit zheng_zhuan=P2^0; // 正转sbit fan_zhuan=P2^1; // 反转sbit jia_su=P2^2; // 加速sbit jian_su=P2^3; // 减速/********************************************************************延时函数*********************************************************************/ void delay(uchar t){uchar i,j;for(i=0;i<t;i++){for(j=13;j>0;j--);{ ;}}}/********************************************************************定时中断服务函数*********************************************************************/ void t0(void) interrupt 1 using 0 //定时中断服务函数{tt++; //每过250ust tt 加一if(tt==1) //当tt满足条件时{tt=0; //计满重新再计sec++;if(sec==Y) //括号内数值越小,电机转动速度越快{sec=0; //计满重新再计mai_chong=~mai_chong; //脉冲输出}}}/********************************************************初始化********************************************************/ void init(){TMOD=0x02; //定时器工作在方式2ET0=1;EA=1;TH0=0xFF; //对TH0 TL0 赋值TL0=0xFE;TR0=1; //开始定时sec=0;mai_chong=1; // 脉冲控制位}/********************************************************加速函数********************************************************/ void jia(){Y=Y-2;if(Y<=1){Y=2;}//如果速度值小于等于1,值保持不变}/********************************************************减速函数********************************************************/ void jian(){Y=Y+2;if(Y>=100){Y=100;}}/********************************************************主函数********************************************************/main(){init(); //程序初始化shi_neng=0; // 使能控制位fang_shi=1; // 工作方式控制fang_xiang=1;// 控制方向为正转while(1){if(zheng_zhuan==0){delay(100);shi_neng=1;fang_xiang=0;}if(fan_zhuan==0){delay(100);shi_neng=1;fang_xiang=1;}if(jia_su==0){delay(10);while(!jia_su);jia();}if(jian_su==0){delay(10);while(!jian_su);jian();}}}/********************************************************结束********************************************************/keil参考程序正转_反转_加速_减速_高速#include<reg52.h>#define uchar unsigned char#define uint unsigned intuchar Y=1; //初始化速度/********************************************************控制位定义********************************************************/sbit shi_neng=P1^0; // 使能控制位sbit fang_shi=P1^1; // 工作方式控制位sbit fang_xiang=P1^2;// 旋转方向控制位sbit mai_chong=P1^3; // 脉冲控制位sbit zheng_zhuan=P2^0; // 正转sbit fan_zhuan=P2^1; // 反转sbit jia_su=P2^2; // 加速sbit jian_su=P2^3; // 减速/********************************************************延时函数********************************************************/void delay(uchar i)//延时函数{uchar j,k;for(j=0;j<i;j++)for(k=0;k<180;k++);}/********************************************************加速函数********************************************************/ void jia(){Y=Y-1;if(Y<=1){Y=1;}//如果速度值小于等于1,值保持不变}/********************************************************减速函数********************************************************/ void jian(){Y=Y+1;if(Y>=100){Y=100;}}/********************************************************主函数********************************************************/main(){shi_neng=1; // 使能控制位fang_shi=1; // 工作方式控制位fang_xiang=1;// 旋转方向控制位mai_chong=1; // 脉冲控制位while(1){if(zheng_zhuan==0){fang_xiang=1;}if(fan_zhuan==0){fang_xiang=0;}if(jia_su==0){delay(10);while(!jia_su);jia();}if(jian_su==0){delay(10);while(!jian_su);jian();}mai_chong=~mai_chong; //输出时钟脉冲delay(Y); //延时(括号内数值越小,电机转动速度越快)}}AVR系列单片机控制参考程序#include <iom16v.h>#include <macros.h>/**********************************************************************函数数据类型说明**********************************************************************/ #define uchar unsigned char#define uint unsigned int/**********************************************************************延时函数**********************************************************************/ void delay(uint MS){uint i,j;for( i=0;i<MS;i++)for(j=0;j<80;j++); //1141是在8MHz晶振下,通过软件仿真反复实验得到的数值}/**********************************************************************主函数**********************************************************************/ void main(){ uint i;i=10;//改变变量i 的大小可以改变速度,i越大速度越慢DDRB=0XFF;//PORTC=0XFF;PORTB|=BIT(0);//00000001 使能控制开PORTB|=BIT(1);//00000010 四拍工作方式PORTB|=BIT(2);//00000100 正方向旋转while(1){PORTB|=BIT(3);//00001000 脉冲输出delay(i);PORTB&=~BIT(3);delay(i);}}/**********************************************************************结束**********************************************************************/。
L298N控制直流电机正反转一、概述在现代工业自动化和机械设备中,直流电机因其控制简单、响应迅速等特点而被广泛应用。
直流电机的控制并非一件简单的事情,特别是要实现其正反转功能,就需要一种可靠的电机驱动器。
L298N是一款常用的电机驱动器模块,它基于H桥驱动电路,可以有效地控制直流电机的正反转,并且具备过载保护和使能控制功能,使得电机控制更为安全、可靠。
L298N模块内部集成了两个H桥驱动电路,可以同时驱动两个直流电机,且每个电机的驱动电流可达2A,使得它适用于驱动大多数中小型的直流电机。
L298N模块的控制逻辑简单明了,只需通过控制其输入逻辑电平,即可实现电机的正反转、停止等功能。
掌握L298N 模块的使用方法,对于熟悉和掌握直流电机的控制具有重要的意义。
在接下来的内容中,我们将详细介绍L298N模块的工作原理、控制逻辑、驱动电路连接方法以及在实际应用中的使用技巧,以帮助读者更好地理解和应用L298N模块,实现直流电机的正反转控制。
1. 简述直流电机在工业和生活中的重要性直流电机,作为一种重要的电能转换和传动设备,在工业和生活中发挥着至关重要的作用。
它们广泛应用于各种机械设备中,成为驱动各种工业设备和家用电器运行的核心动力源。
在工业领域,直流电机的重要性无可替代。
它们被广泛应用于各种生产线上的机械设备,如机床、泵、风机、压缩机、传送带等。
这些设备需要稳定、可靠的动力源来驱动,而直流电机正好满足这些需求。
它们具有高效、稳定、易于控制等优点,能够实现精确的速度和位置控制,从而提高生产效率和产品质量。
直流电机还在交通运输领域发挥着重要作用。
例如,电动汽车、电动火车、无人机等新型交通工具都采用了直流电机作为动力源。
这些交通工具需要高效、环保的动力系统来驱动,而直流电机正是满足这些需求的理想选择。
在生活中,直流电机也无处不在。
它们被广泛应用于各种家用电器中,如电扇、吸尘器、洗衣机、冰箱、空调等。
这些家电需要稳定、可靠的动力源来运行,而直流电机正是这些家电的核心动力源。
绪论在当前的这个环境,随着不断进步的生产技术,各个企业对自动化技术的要求也是越来越高。
智能车辆或者与智能车辆相关的产品已经开始成为各种自动化系统的关键设备,这其中主要包括了物流、运输等系统。
所以,智能车辆被越来越多的人们所关注,同时,也有越来越多的国家开始对智能车辆的开发和设计进行积极的研究。
智能小车是一个典型的高科技综合系统。
智能小车包含了多种高新科技的系统,而这些系统又运用了更多的高新技术,其中包括了对环境的探测、传感,对运行路线的决策、计算,以及信息通讯和自动控制行驶等多种功能。
简单的来讲,智能小车就是将双腿变成了的多个轮子的移动机器人。
所以,智能小车在机械和电路的设计方面,都要比其他智能机器人的运行也更稳定,也更加简单。
另外,由于智能小车的优点就在于控制简便,运行稳定,所以对智能小车的行驶的速度与方向之间的配合就有比较严格的要求。
首先,小车可以通过传感器来获取当前道路状况,然后将传感器获取到的数据传输到处理器,处理器再结合小车当前的行驶状态,迅速地进行计算,对小车的行驶的方向和行车的速度进行快速的调整改变,进而对目标道路进行迅速准确的跟踪。
1.开发概述1.1 研究现状移动机器人出现于20世纪06年代,当时斯坦福研究院(SRI)的Nils Nilssen和charles Rosen等人,在1966年至1972年中研制出了取名shakey的自主式移动机器人,目的是将人工智能技术应用在复杂环境下,完成机器人系统的自主推理、规划和控制[1]。
从此,移动机器人作为机器人学中的一个重要分支,从无到有,数量开始不断的增多。
在目前的环境下,由于企业的生产技术在不断进步,对自动化技术的要求也在一直的加深,在未来工业生产和日常生活中,智能小车系统将会扮演重要的角色,智能小车将会在人们的视野中出现地越来越频繁。
1.2 选题意义随着科技的不断发展,人们也越发的开始关注一些研发人工智能产品的情况。
智能小车可以在各种条件恶劣的情况下代替人们进行一些复杂的任务,例如排雷防爆,矿区检测,狭窄的地方进行货物搬运等。
l298n驱动电机的工作原理_L298N驱动步进电机程序步进电机简介步进电动机是一种将电脉冲信号转换成角位移或线位移的机电元件。
步进电动机的输入量是脉冲序列,输出量则为相应的增量位移或步进运动。
正常运动情况下,它每转一周具有固定的步数;做连续步进运动时,其旋转转速与输入脉冲的频率保持严格的对应关系,不受电压波动和负载变化的影响。
由于步进电动机能直接接受数字量的控制,所以特别适宜采用微机进行控制。
(一)步进电机的种类目前常用的有三种步进电动机:(1)反应式步进电动机(VR)反应式步进电动机结构简单,生产成本低,步距角小;但动态性能差。
(2)永磁式步进电动机(PM)永磁式步进电动机出力大,动态性能好;但步距角大。
(3)混合式步进电动机(HB)混合式步进电动机综合了反应式、永磁式步进电动机两者的优点,它的步距角小,出力大,动态性能好,是目前性能最高的步进电动机。
它有时也称作永磁感应子式步进电动机。
(二)步进电动机的工作原理图X1三相反应式步进电动机结构示意图1定子2转子3定子绕组图x1是最常见的三相反应式步进电动机的剖面示意图。
电机的定子上有六个均布的磁极,其夹角是60。
各磁极上套有线圈,按图1连成A、B、C三相绕组。
转子上均布40个小齿。
所以每个齿的齿距为E=360/40=9,而定子每个磁极的极弧上也有5个小齿,且定子和转子的齿距和齿宽均相同。
由于定子和转子的小齿数目分别是30和40,其比值是一分数,这就产生了所谓的齿错位的情况。
若以A相磁极小齿和转子的小齿对齐,如图,那么B相和C相磁极的齿就会分别和转子齿相错三分之一的齿距,即3。
因此,B、C极下的磁阻比A磁极下的磁阻大。
若给B相通电,B相绕组产生定子磁场,其磁力线穿越B相。
智能小车的设计与制作摘要本项目以2010年国家大学生创新性试验计划为课题背景,首先对智能型运输货物机器人总体设计方案进行叙述,阐述各个要素的工作原理,然后就整个机器人系统分为四个模块,并对每个模块的设计和制作进行阐述。
本项目“智能型运输货物机器人”是在一定空间和条件下自动完成对一个设定目标的搜索,并通过控制机器人的机械设备将其装载到小车上,搜索过程中可检测并躲避障碍物。
本项目基于单片机系统来设计和实现,主要包括四部分,即传感器检测系统、单片机控制系统、电动机驱动系统、机械控制系统。
集成了传感器技术、单片机技术、机械控制技术、程序设计与控制、Multisim仿真软件和PCB电路板的设计等知识,实现了控制、检测、运动及软硬件完美的结合。
关键词机器人;单片机控制;设计;制作1 设计任务概述小车在无人操作的情况下可以完成循迹、避障等功能,并能检测到金属块发出报警声音。
2 系统方案论证与选择本系统主要由微控制器模块、电源模块、避障模块、循迹传感器模块、直流电机及其驱动模块、金属检测模块、角度测量模块,语音提示模块以及液晶显示模块等构成。
本系统的方框图如下所示:2.1车体方案小车利用履带前进的,比较平稳,而且左右轮是两个相同的电机分开牵动的,通过单片机控制可以利用两边转速差来实现转弯功能。
这样,当两个直流电机转向相反同时转速相同时就可以实现电动车的原地旋转,由此可以轻松的实现小车坐标不变的90度和180度的转弯。
2.2控制模块采用MSP430单片机,MSP430系列单片机是一种16位的超低功耗的混合信号处理器。
其之所以称之为混合信号处理器,主要是由于其针对实际应用需要,把许多模拟电路、数字电路和微处理器集成在一个芯片上,以提供“单片”解决方案。
MSP430单片机更适合于低功耗、高速实时控制以及数据计算,它拥有更多的片上资源供设计使用,是设计的不错选择。
2.3电源模块采用7.2V可充电动力电池组。
动力电池组具有较强的电流驱动能力及稳定的电压输出性能,经测试在用此种供电方式下,单片机和传感器工作稳定,直流电机工作良好,且电池体积较小、可以充电、能够重复利用等,能够满足系统的要求。
摘要本文主要是对绞车模拟器的研究。
其研究意义就是实现绞车控制,对航空吊放声纳,舰船拖曳声纳的施放深度,施放速度进行调控。
对声纳的释放和回收起到很大作用。
主要思想是通过C8051F040芯片进行控制,采集到的信号由LM298N 进行处理,通过利用直流电机和旋转编码器[1],模拟绞车转动,并模拟绞车各个开关量,给控制系统提供速度反馈信号以及绞车状态信号。
从而实现绞车的正转,反转,急停,控制绞车转速。
系统由电压控制,直流电机驱动电路,光耦隔离电路,绞控盒,旋转编码器组成。
利用PWM脉宽调制控制原理控制直流电机的方法,闭环控制原理来控制电路的输入输出和转速控制。
最后对C8051F020的初始化编程和程序调制,讨论了在调试程序中遇到的问题,完成了整个电路的最终调试。
达到了毕业设计任务书的要求。
关键词:C8051F020 ,绞车,PWM脉宽调制,直流电机驱动ABSTRACTThis paper is the winch controller. Significance of their research is to realize the winch control, air sonar, ship towed sonar depth cast, cast speed control. The release and recovery of sonar played a significant role. The main idea is to control through the C8051F040 chip, the signal collected by the LM298N processing, through the use of DC motors and rotary encoders, analog winch rotation, and various analog switch winch, to the control system to provide speed feedback signals and status signals the winch. In order to achieve the winch forward, reverse, stop, control winch speed. System consists of voltage control, DC motor drive circuit, opto isolation circuit, control box cutter, rotary encoder components. Using pulse width modulation PWM control of DC motor control theory approach, closed-loop control principles to control the input and output circuit and speed control.Finally, the initial programming and procedures C8051F020 modulation, discussed the problems encountered in the debugger, complete the final commissioning of the entire circuit. Mission statement to the graduation requirements of the task.KEY WORDS: C8051F020, winch, PWM pulse width modulation, DC motor drive目录摘要 (I)ABSTRACT (II)第1章概论 (1)第2章基础知识概述 (2)2.1 C8051F040单片机 (2)2.1.1 C8051F040简介 (2)2.1.2 C8051F040特性 (2)2.1.3 C8041F040引脚及功能 (3)2.1.4 C8051F040工作特性 (4)2.1.5 C8051存储器操作命令代码及其含义 (6)2.2 L298N电机驱动芯片 (8)2.2.1 简介 (8)2.2.2L298N工作原理 (9)2.3 6N137光耦隔离 (10)2.3.1简介 (10)2.3.2 6n137原理 (11)2.4 小结 (12)第3章电路设计 (13)3.1 设计技术指标 (13)3.2 总体电路框图 (13)3.3部分电路设计 (14)3.3.1C8051F040信号输入输出 (14)3.3.2直流电机控制电路 (14)3.3.3旋转编码器 (16)3.4 总体电路设计 (18)3.5 小结 (19)第4章软件设计 (20)4.1 Keil软件 (20)4.2程序流程框图 (21)4.3 C8051F040初始化 (21)4.4 PWM脉宽调制和PCA计数 (22)4.5 主函数与主程序 (23)4.6 调试结果 (28)4.7小结 (30)参考文献 (31)致谢 (32)毕业设计小结 (33)附录 (34)第1章概论随着我国国防科技的发展,航海事业正迅猛进步,在水下声纳方面的研究过程中.航空吊放声纳还有舰船拖曳声纳越来越重要。
电机型号:28BYJ48 5VDC导线颜色:红(com)橙(A) 黄(B) 粉(C) 蓝(D)在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。
步进电机的主要特性:(1)、转动的速度和脉冲的频率成正比。
(2)、28BYJ48 5V驱动的4相5线式的步进电机,而且是减速步进电机,减速比为1:64 ,步距角为5.625/64度。
如果需要转动1圈,那么需要360/5.625*64=4096个脉冲信号。
(3)、步进电机具有瞬间启动和急速停止的优越特性。
(4)、改变脉冲的顺序,可以方便的改变转动的方向。
目前打印机,绘图仪,机器人等等设备都以步进电机为动力核心。
采用的是5V步进电机,该步进电机的耗电流为200mA左右,采用ULN2003驱动,驱动端口为P0.0(A),P0.1(B),P0.2(C),P0.3(C)。
正转次序:AB组-BC组-CD组-DA组(即一个脉冲,正转5.625度);反转次序:AB组-AD组—CD组-CB组(即一个脉冲,正转5.625度),如下表:表1表2步进电机的静态指标①相数——电机内部的线圈组数。
②步距角——表示控制系统每发一个步进脉冲信号,电机所转动的角度。
电机出厂时给出了一个步距角的值,这个步距角可称为“电机固有步距角”,它不一定是电机实际工作时的真正步距角,真正的步距角与驱动器有关。
③拍数——完成一个磁场周期性变化所需脉冲数或导电状态,或指电机转过一个步距角所需脉冲数。
以四相电机为例,有四相四拍运行方式,即AB-BC-CD-DA-AB;四相八拍运行方式,即A-AB-B-BC-C-CD-D-DA-A.励磁方式⑴一相励磁——在每一瞬间,步进电机只有一个线圈导通。
励磁顺序说明:A-B-C-D-A二相励磁——在每一瞬间,步进电机有两个线圈同时导通。
历次顺序说明:AB-BC-CD-DA-AB特点:输出转矩大,振动小,因而成为目前使用最多的励磁方式。
MCU选择的是stm32F103RBT6,步进电机选择4相5线5V步进电机马达减速电机28BYJ-48-5V,驱动选择的是L298N模块,模块供电选择12V供电(5V可能带不起来),模块的OUT1、OUT2接小型步进电机的一个线圈,OUT3、OUT4接另一个线圈,注意L298N模块的GND和MCU 的GND相连。
*******************************************************************************步进电机头文件Stepmotor.h#ifndef __MOTOR_H#define __MOTOR_Hvoid Motor_Init(void);void Motor_Go(void);#endif源文件Stepmotor.c#include "stepmotor.h"#include "sys.h"void Motor_Init(void){GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);//使能PB端口时钟GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3|GPIO_Pin_5| GPIO_Pin_7| GPIO_Pin_8;//PB3接IN1 PB5接IN2 PB7接IN3 PB8接IN4GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//IO口速度为50MHzGPIO_Init(GPIOB, &GPIO_InitStructure);//GPIO_ResetBits(GPIOB,GPIO_Pin_3|GPIO_Pin_5| GPIO_Pin_7| GPIO_Pin_8);******************************************************************************* PWM调制头文件mypwm.h#ifndef __TIMER_H#define __TIMER_H#include "sys.h"void MYTIMER3_Init(u16 arr,u16 psc);void TIM3_PWM_Init(u16 arr,u16 psc);#endif源文件mypwm.c#include " mypwm.h#include "stm32f10x.h"void TIM3_PWM_Init(u16 arr,u16 psc){TIM_OCInitTypeDef TIM_OCInitTypestucture;TIM_TimeBaseInitTypeDef TIM_TimeBaseInitstucture;GPIO_InitTypeDef GPIO_InitStructure;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);//使能定时器时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC|RCC_APB2Periph_AFIO, ENABLE);//使能PC端口,复用时钟GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7;//PC6接ENA PC7接ENB GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //推挽复用输出GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//IO口速度为50MHz GPIO_Init(GPIOC, &GPIO_InitStructure);//GPIO_PinRemapConfig(GPIO_FullRemap_TIM3,ENABLE);//TIM_TimeBaseInitstucture.TIM_Period=arr;//自动装载值TIM_TimeBaseInitstucture.TIM_Prescaler=psc;//预分频值TIM_TimeBaseInitstucture.TIM_CounterMode=TIM_CounterMode_Up;//计数模式向上TIM_TimeBaseInitstucture.TIM_ClockDivision=0 ;//TIM_TimeBaseInit(TIM3,&TIM_TimeBaseInitstucture);TIM_OCInitTypestucture.TIM_OCMode=TIM_OCMode_PWM1 ;//模式1TIM_OCInitTypestucture.TIM_OCPolarity=TIM_OCPolarity_High;//高电平TIM_OCInitTypestucture.TIM_Pulse=599;//改变数值调节占空比TIM_OCInitTypestucture.TIM_OutputState=TIM_OutputState_Enable;//使能TIM_OC1Init(TIM3,&TIM_OCInitTypestucture);TIM_OC1PreloadConfig(TIM3,TIM_OCPreload_Enable);//使能预装载TIM_OCInitTypestucture.TIM_OCMode=TIM_OCMode_PWM1 ;//模式1TIM_OCInitTypestucture.TIM_OCPolarity=TIM_OCPolarity_High;//高电平TIM_OCInitTypestucture.TIM_Pulse=599;TIM_OCInitTypestucture.TIM_OutputState=TIM_OutputState_Enable;//使能TIM_OC2Init(TIM3,&TIM_OCInitTypestucture);TIM_OC2PreloadConfig(TIM3,TIM_OCPreload_Enable);//使能预装载TIM_Cmd(TIM3,ENABLE);//使能定时器}*******************************************************************************主函数#include "stepmotor.h"#include "stm32f10x.h"#include "delay.h"#include "timer.h"int main(){delay_init();Motor_Init();TIM3_PWM_Init(999,71);// 72M/(71+1)(999+1)=1K hzwhile(1) //正转{GPIO_SetBits(GPIOB,GPIO_Pin_5| GPIO_Pin_7| GPIO_Pin_8);//0111GPIO_ResetBits(GPIOB,GPIO_Pin_3);delay_ms(4);GPIO_SetBits(GPIOB,GPIO_Pin_3| GPIO_Pin_7| GPIO_Pin_8);//1011GPIO_ResetBits(GPIOB,GPIO_Pin_5);delay_ms(4);GPIO_SetBits(GPIOB,GPIO_Pin_3| GPIO_Pin_5| GPIO_Pin_8);//1101GPIO_ResetBits(GPIOB,GPIO_Pin_7);delay_ms(4);GPIO_SetBits(GPIOB,GPIO_Pin_3| GPIO_Pin_5| GPIO_Pin_7);//1110GPIO_ResetBits(GPIOB,GPIO_Pin_8);delay_ms(4);}}。
激光枪自动射击打靶装置摘要:系统以MSP430和STM32为控制核心。
MSP430控制两个步进电机42BYGHM604在不同的两个坐标轴上转动以带动激光枪左右和上下移动,从而准确实现激光枪的瞄准和打靶。
STM32对摄像头模块OV7670传输的图像信息进行采集、分析处理,然后在彩屏显示器ILI9325LCD上显示胸环靶的相应图形,并闪烁显示弹着点;另外,STM32通过无线通信模块nRf24L01将信息发送至单片机MSP430,单片机进行分析、处理并在12864点阵液晶显示模块上显示弹着点环数及方位信息,同时由语音模块WTV020对环数进行播报。
经调试,该系统较好的实现了基础部分要求的各项功能及发挥部分要求的第一项功能,基本完成了发挥部分要求的第二项、第三项功能。
另外系统采用语音播报弹着点环数,清晰明了,具有一定的创新性。
关键词:MSP430 STM32 步进电机摄像头彩屏显示器液晶显示器1 系统方案论证1.1激光枪自动控制方案论证方案一:舵机带动激光笔瞄准。
利用两个舵机,在一个舵机的轴上固定另一个舵机,采用PWM波直接调节两个舵机的偏移角度,从而实现双轴瞄准。
但是,对于测控系统而言,5mV以上的控制电压的变化就会引起舵机的抖动,因此要达到精度要求有一定难度。
方案二:直流电机带动激光笔瞄准利用两个直流电机,采用全桥PWM控制直流电机正、反转,从而达到动态瞄准。
但该方案有许多不足之处,直流电机不易受单片机控制,旋转角度无法由程序有效控制且精度不高,对于固定角度旋转比较困难。
方案三:步进电机带动激光笔瞄准给步进电机加一个脉冲信号,电机则转过一个步距角,加上步进电机只有周期性的误差而无累积误差等特点,使得在速度、位置等控制领域采用步进电机控制变的非常的简单,且定位精确,稳定,可靠。
采用双桥电机驱动芯片L298N可实现瞄准机构旋转角度的精确控制。
经试验比较,我们采用第三种方案。
1.2 控制方案论证根据控制对象的特点,比较PID控制、模糊控制和模糊PID控制这三种控制策略发现,常规PID(比例,积分,微分)控制具有简单、稳定性好、可靠性高的特点,但是,常规的PID控制存在一些问题。