基于单片机的步进电机小车控制系统设计_毕业设计(编辑修改稿)内容摘要:

,磁极通电;开关断开,磁极断电。 SA 通电时 A 磁极接通,产生磁场,吸引转子 2 靠近磁极 A;之后 SA 断开, SB 接通,产生磁场,吸引转子 3 靠近磁极 B;接着 SB断开, SC 接通产生磁场,吸引转子 4 靠近磁极 C,周而复始电机就会旋转。 开关通电断电的时间和间隔越长 ,则转子换向需要的时间就越长,即电机转的越慢;反之则电机转的越快。 电机的加速旋转与减速旋转也可以又各相定子通断电的频率改变 [12]。 步进电机 选用 步进电机是以脉冲信号依次使定子激励 ,以数字电压输入来控制转速与转动方向。 因此 ,步进电机可工作于单相通电 ,双相通电 ,以及双相交叉通电 [13]。 本设计中选用的是 42HS02 型 两相四线步进电机,它 有 多 种控制方式 ,本设计中采用的是 双二拍整步方式,即采用通电次序两相,四拍: (+A)(+B)(A)(+B)(A)(B)(+A)(B)—。 两相绕组 同时通电时 ,同时对转子产生引力。 与单二拍相比,双二拍不容易产生丢步的现象。 步进电机驱动器的设计 常用的步进电机的驱动芯片有两种,一种是 L297,另一种是 L298n[14]。 基于单片机的步进电机小车 控制 系统设计 12 L298N 是 ST 公司生产的一种高电压、大电流电机驱动芯片。 一般的控制芯片起到控制作用,但是驱动能力不强,而电机(不单是步进电机)所需要的电流一般比较大,控制芯片的 IO 口不能提供大电流,所以一般不能直接驱动电机。 L298n 是驱动芯片,可以将控制芯片的输出转换成较高的电压和能够输出较大的电流。 L297是意大利 SGS半导体公司生产的 步进电机专用控制器,它能产生 4相控制信号,可用于计算机控制的两相双极和四相单相步进电机,能够用单四拍、双四拍、四相八拍方式控制步进电机。 所以将 L297 与 L298n 同时相连组成的步进电机驱动电路,无论对硬件的系统集成和控制软件,都是省时省力的事,因为组合后每只步进电机只需步进脉冲、正反转两个信号便行。 如图 37 所示。 图 38 步进电机驱动电路 在设计中,这样的步进电机有驱动器两个,分别驱动左右两个步进电机。 在电路图中 in in2 与 in3 是分别接收由单片机输出的信号的端口, in1 接收使能控制信号, in2 接收方向控制信号, in3 接收时钟控制信号, in in2 与 in3 分别与单片机的 P1^0、P1^ P1^2 口相连。 由于设计中有两个驱动器,另外一个驱动器的三个输入口分别与 P1^ P1^ P1^5 相连,这样单片机的 6 个口就可以控制步进电机的运动了。 out out out3 与 out4 分别是步进电机驱动器的四个输出口,为了步进电机能按要求转动,这四个输出口因该按顺序与步进电机的四条引线相连。 单片机输出对应驱动器输入驱动器输出如表 31,表 32 所示。 表 31 电机正转表 A+ B+ A B 驱动器输 1 1 0 0 第 3 章系统硬件设计 13 出电平 正转 0 1 1 0 0 0 1 1 1 0 0 1 表 32 电机反转表 A+ B+ A B 驱动器输出电平 反转 1 1 0 0 1 0 0 1 0 0 1 1 0 1 1 0 系统功能设计 循迹功能 循迹功能是步进电机小车沿着一条黑色固定轨迹前进的功能,小车跟随轨迹就要用到光电传感器。 光电传感器是利用被检测物对光束的遮挡或反射,由同步回路选通电路,从而检测物体有无的 [15]。 光电传感器在一般情况下,有三部分构成,它 们分为:发送器、接收器和检测电路。 发送器对准目标发射光束,发射的光束一般来源于半导体光源,发光二极管 (LED)、激光二极管及红外发射二极管。 光束不间断地发射,或者改变脉冲宽度。 接收器有光电二极管、光电三极管、光电池组成。 在接收器的前面,装有光学元件如透镜和光圈等。 在其后面是检测电路,它能滤出有效信号和应用该信号 [16]。 光电传感器是一种能进行非接触检测的传感器 , 其具有检测范围广 、 检测距离远的优点。 其最大检测距离往往和被检物的尺寸、形状、颜色及表面状态有关。 对环境条件要求不严格 , 如高温区域、被检物半透明 时均能正确检测 , 但不适宜用在潮湿结露或灰尘很大的场合。 如何选择检测方式应主要考虑以下几点因素检测距离被检物的尺寸被检物的反光情况如何 , 如深色物体的反光能力弱被检物是否处于振动场合。 被检物与背景的色差如何周围环境光强如何,是否存在自然光或人工照明检测线路上是否有灰尘,灰尘会大大减小光电传感器的检测距离。 检测方式可分为对射式、反射式、偏振式、镜面式、漫反射式、会聚式和光幕式等。 在本设计中用到的是反射式检测。 反射式光电传感器的发射头和接收头安装于同一侧 , 正常情况下,发光器发出的光源被反光板反射回来再被收 光器收到;一旦被检测物挡住光路,收光器收不到光时,光电开关就动作,输出一个开关控制信号。 基于单片机的步进电机小车 控制 系统设计 14 TCRT5000 光电传感器模块是基于 TCRT5000 红外光电传感器设计的一款红外反射式光电开关。 传感器采用高发射功率红外光电二极管和高灵敏度光电晶体管组成,输出信号经施密特电路整形,稳定可靠。 应用场合: 图 39 光电传感器 如图 39,光电传感器的发射头在小车行驶过程中以一定角度范围不断地向地面发射红外光,当小车在白色地面行驶 时,红外光经白色反射后 ,被接收管接收;一旦接收管接收到信号,输出端将输出低电平;当小车行驶到黑线时,由于黑色对光吸收强,接收管接收到红外光少,接收管没有导通,集电极在上拉电阻的作用下输出高电平,从而实现了检测黑线的功能。 步进电机小车的驱动电机只有两个,在前后各有一个从动万向轮,小车的转向还是很灵活的,故在小车的循迹功能中只设置了两个光电传感器,一左一右分布在车底前部,它们之间的距离要大于黑色轨迹的宽度 ,利于小车走偏时有足够的空间调整自身的位置。 如图 310 所示。 由光电传感器的自身构造可知检测到黑色物体时 输出为高电平,检测到白色物体时输出为低电平。 设高电平为 1,低电平为 0。 第 3 章系统硬件设计 15 图 310 光电传感器位置图 避障功能 避障功能是步进电机小车在行进的过程中自动躲避障碍并前行的功能,实现避障功能要用到红外传感器。 红外反射式传感器是集发射与接收于一体的光电传感器 .具有探测距离远 (最远可达到 80 cm)、受可见光干扰小、体 积小、功耗低、应用方便等特点 .而且它检测障碍物的距离可以根据实际要求通过尾部的电位器旋钮进行调节,非常适用于小车避障 . 在本设计中选用红外反射式传感器,它的使用非常方便,只需将传感器检测到的开关信号直接送入单片机处理即可,无障碍物时传感器输出高电平,有障碍物时输出低电平,并且传感器尾部指示灯亮起 . 图 311 红外传感器位置图 本设计中为避障功能设计了三个红外传感器,分别放置在车身的正前方、左前方和右前方,水平互成 60o角,如图 311 所示,这样就可以把发射的红外线排布在小车的前方任何范围,提高小车反应及增强避障的能力。 当三个中的一个或多个(障碍物较大)接收部分的传感器,就能根据反射回来的红外线进行自动的调整,从而使小车的运行轨迹达到自动避障的目的。 下图是传感器的驱动及接受电路,其中侦测前方障碍的距离,可以通过调节滑动变阻器的阻值,经比较处理后,将对应的电压输出给红外发射管,达到调节距离的目的。 距离可以根据场地的实际情况调节, 障碍比较少的情况可以将距离调节调节的大些;障碍比较复杂时可以将距离调节小些,这样就可以避免在原地打转的情况,经行精确避障。 上位机电路设计 对于一些需要计算机与单片机通信的场合来说,电脑的串口非常重要,例如很多设备都必须采用串口和电脑端软件连接,很多电路模块可以非常直观方便地利用串口调试软件进行调试,很多仪器必须通过串口进行通讯和数据交换 [17]。 基于单片机的步进电机小车 控制 系统设计 16 但是目前笔记本电脑因为空间的限制和其他方面考虑的原因都没有串口,甚至一些台式电脑也取消了串口配置,这就很大程度的限制了串口的应用。 USB 转串口模块全称为 USB to Serial port Module,它可以将 USB 接口虚拟成一个串口,解决无串口的苦恼 [18]。 如果要设计这样一种电路,通过比较,在满足下载需求、价格合理的情况下,最为适中的就是 PL2303。 它可以稳定下载,并可以支持多种操作系统。 PL2303HX 的特点是: 28 脚贴片 SOIC 封装 12MHZ USB 规范 ,可以直接将 USB 信号转换成串口信号 75~ 1228800,有 22 种波特率可以选择,并支持 16 共 5种数据比特位,是一款相当不 错的 USB 转串口芯片。 这是 PL2303 芯片开发的 USB 转串口模块,引脚电平为 TTL,引脚定义如下: TXD 、 RXD、 GND 地线。 PL2303 需要一个 12MHz 的外部晶体为自己提供时钟 , 外部并联的两个匹配起振电容。 为了防止高速信号在端口附近产生反射现象 , 需要在 USB 端口引脚 D1 和 D2 上分别接上一个阻值为 18Ω左右的终端匹配电阻。 D1 接一个上拉电阻以帮助实现枚举功能。 此外考虑到防止 USB 口短路问题,串入 R24,从而保护 USB 口 [19]。 如图 312 所示。 这个模块的接 线如下: 1. 地连接,要将 PL2303 的 GND 与单片机的 GND 共地; 2. PL2303 芯片的 TXD 管脚与单片机的 管脚连接 ; 3. PL2303 芯片的 RXD 管脚与单片机的 管脚连接 ; 4. 电脑端的 USB 电源作为单片机系统的电源。 第 3 章系统硬件设计 17 图 312 USB 转串口电路图 图 313 STC 单片机的串口烧写软件 电路连接准备好之后,打开 STC 单片机的串口烧写软件 STC_ISP,如图 313 所示。 下载的步骤如下 : 1. 选择 STC 单片机型号( STC89C52)。 基于单片机的步进电机小车 控制 系统设计 18 2. 选中要烧写的文件( .hex 文件)。 3. 下载串口选择。 4. 点击下载,此时单片机需要冷启动。 在下载完程序之后,单片机就可以按设想运行了。 第 4 章系统软件设计 19 第 4 章系统软件设计 电机控制流程图 电机旋转受使能控制位 en、方向控制位 cw 控制 [20],如图 41 所示。 具体程序见附录Ⅰ。 开 始延 迟产 生 脉 冲e n 是 否 高 电 平c w 位 的 电 位c w = 1 c w = 0电 机 正 转 电 机 正 转是 否 结 束NNYY结 束 图 41 电机控制流程图 电机方向控制 电机旋转方向受方向控制位 cw 控制。 例如 cw_left=1 可使电机顺时针旋转,只要将旋转的子函数中 cw_left=0,电机就变为逆时针旋转。 方向控制主函数如下: while(1) { move_left(10,0,1)。 基于单片机的步进电机小车 控制 系统设计 20 } 方向控制子函数: void move_left(uint speed_l,uchar cw,uchar en) { speed=speed_l。 //speed_l 速度控制变量 cw 方向控制变量 en 使能控制变量 if(cw==1) { cw_left=1。 } else { cw_left=0。 } if(en==1) { en_left=1。 } else { en_left=0。 } } 电机 速度控制 在中断中, n 不断累加,当你增加到预设的数之后 clk_left 与 clk_right 就会置为高电平,就会发出一个脉冲,使两个电机旋转一步;或 clk_left 与 clk_right 置 为 低电平,这时电机不转。 之后 n 被置为 0,重新开始累加,进入下一轮循环。 n 或 speed 的数值越大 clk_left 与 clk_right 改变的时间间隔就会越大,电机的步与步的间隔就大,电机的旋转速度就会变慢,反之亦然 [21]。 void timer1_serve() interrupt 3 { TH1=(65536100)/256。 TL1=(65536100)%256。 n=n+1。 第 4 章系统软件设计 21。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。