51单片机的红外遥控小车设计和制作的C语言程序

51单片机的红外遥控小车设计和制作的C语言程序,第1张

 论文摘要:本文介绍一款红外线遥控小车,以AT89S51单片机为核心控制器,用L289驱动直流电机工作,控制小车的运行。本御旁款小车具有红外线遥控手动驾驶、自动驾驶、寻迹前进等功能。本系统采用模块化设计,软件用C语言编写。转贴卜亩于 51论 文网 www.51lun-wen.cn一、设计任务和要求以AT98C51单片机为核心,制作一款红外遥控小车,小车具有自动驾驶,手动驾驶和循迹前进等功能。自动驾驶时,前进过程中可以避障。手动驾驶时,遥控控制小车前进、后退、左转、右转、加速等 *** 作。寻迹前进时小车还可以按照预先设计好的轨迹前进。转贴于 51论 文网 www.51lun-wen.cn二、系统组成及工作原理本系统由硬件和软件两部分组成。硬件部分主要完成红外编码信号的发射和接受、障碍物检测、轨迹检测、直流电机运行的发生等功能。软件主要完成信号的检测和处理镇弊橡、设备的驱动及控制等功能。AT89S51单片机查询红外信号并解码,查询各个检测部分输入的信号,并进行相应处理,包括电机的正反转,判断是否遇到障碍物,判断是否小车其那金中有出轨等。系统结构框图如图1所示。转贴于 51论 文网 www.51lun-wen.cn图1 系统结构框图三、主要硬件电路1、遥控发射器电路该电路的主要控制器件为遥控器芯片HT6221,如图2所示。HT6221将红外码调制成38KHZ的脉冲信号通过红外发射二极管发出红外编码。图2中D1是红外发射二极管,D2是按键指示灯,当有按键按下时D2点亮。

1、循迹小车是一种能够自己寻找轨迹并按轨迹运动的“智能”车。本文简要记录这一电子制作过程,希望大家喜欢。有什么建议和意见,欢迎大家留言。

2、根据元器件清单清点器件蚂裂,看是否缺件少件。下图是元器件全家福:

3、依次焊接元器件:要先焊接小的元器件,再焊接大的元器件,最后粘上电池座和马达。焊接好所有元器件后再次肉眼检查有没有焊反,虚焊漏焊的点。确认无误后,进行第三步。

4、焊接好所有元器件后再次肉眼检查有没有焊反,虚焊漏焊的点。确认无误后,进行第三步。

5、装上电池调试。电马达的2根线可搜衫能闷漏闭会装反,光敏电阻和发光二极管的相对位置可能需要调整,可调电阻(电位器)的电阻值可能不合适需要调整。

6、调试后,小车可以再黑色的轨道上自动循迹,制作成功。黑色轨迹可以自己做,用黑色胶布再地板上自定义轨道,小车慢悠悠的在轨道上行走。

下面是一个使用Verilog实现小车红外寻迹功能的简单示例代码,其中假设小车的红外线传感器采用3个接口,编号分别为0、1、2,当红外线传感器检测到黑线时输出高电平乎孙,否则输出低电平。具体实现方法如下:

module infrared_track(

input wire clk,

input wire reset,

input wire [2:0] sensor,

output reg [1:0] direction

)

parameter LEFT = 2'b00

parameter STRAIGHT = 2'b01

parameter RIGHT = 2'b10

parameter STOP = 2'b11

always @ (posedge clk or posedge reset) begin

if (reset) begin

direction <= STRAIGHT// 初始状态小车直行

end

else begin

case (sensor)

3'b001: direction <= LEFT// 左转

3'b010: direction <= STRAIGHT// 直行

3'b100: direction <= RIGHT// 右转

default: direction <= STOP// 停止

endcase

end

end

endmodule

在此Verilog代码中,模块infrared_track包含4个端口,分别为clk(时钟信号)、reset(复位信号)、sensor(红外线传感器帆顷清信号)、direction(小车运动方向信号)。其中,sensor是一个3位宽度的输入端口,每一位表示一个红外线传感器的状态,direction是一个2位宽度的输出端口,表示小车运动的方向,其具体取值由LEFT、STRAIGHT、RIGHT和STOP4个宏常量定义。

在时钟信号的作用下,infrared_track模块将检测红外线传感器的状态,并根据检测结果输出小车的运动方向。具体实现方法是使用一个case语句对sensor输入进行分支判断,如果传感器检测到黑线,则态前根据不同的检测位置输出对应的小车运动方向。如果传感器没有检测到黑线,则停止小车运动。

以上是一个简单的Verilog实现小车红外寻迹功能的示例代码,具体实现方法可能因实际情况而异,需要根据具体的红外线传感器、控制器和小车硬件等因素进行相应的调整和优化。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12517785.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存