基于单片机的智能自动扫地机器人控制电路设计(仿真、程序、电路)【毕设课设】

摘要

本技术文档详细阐述了基于单片机智能自动扫地机器人的控制电路设计。扫地机器人通过超声波传感器实现自动避障,LED显示屏用于实时显示当前电压值,确保机器在低压情况下不会运行,通过差速转弯机制实现灵活转向,并依靠电机驱动实现扫地功能。本设计采用89C51单片机作为控制核心,利用Protues软件进行电路设计与仿真,通过Altium Designer软件进行PCB板设计,并应用C语言编写控制程序。

一、引言

随着智能家居的快速发展,智能扫地机器人作为其中的重要一员,受到了广大消费者的青睐。本文旨在设计一款基于单片机的智能自动扫地机器人,通过合理的电路设计和程序编写,实现扫地机器人的自主避障、电压监测、灵活转弯和高效扫地等功能。

二、器件介绍

  1. 89C51单片机

89C51单片机是一款常用的8位微控制器,具有高性能、低功耗、易于编程等特点。它包含4KB的Flash ROM、128B的RAM以及多个I/O端口,适合用于智能扫地机器人的控制。

  1. 超声波传感器

超声波传感器用于检测扫地机器人前方的障碍物。通过发射超声波并接收反射回来的信号,可以计算出与障碍物的距离,从而实现自动避障功能。

  1. LED显示屏

LED显示屏用于实时显示当前电压值。通过单片机对电池电压的采样和处理,可以在LED上显示出当前的电压状态,提醒用户及时充电。

  1. 电机驱动模块

电机驱动模块用于控制扫地机器人的电机。通过单片机发送控制信号,驱动模块可以实现对电机的正反转、转速调节等功能,从而实现扫地机器人的扫地和转弯动作。

三、电路设计

  1. 电源电路

电源电路为整个扫地机器人提供稳定的电源供应。通过电源转换模块将市电转换为适合单片机和电机使用的直流电源。

  1. 单片机控制电路

单片机控制电路是整个扫地机器人的核心。通过连接超声波传感器、LED显示屏和电机驱动模块等外设,实现对扫地机器人的全面控制。

  1. 避障电路

避障电路主要由超声波传感器和单片机组成。超声波传感器将检测到的障碍物信息发送给单片机,单片机根据接收到的信息判断是否需要避障,并发送相应的控制信号给电机驱动模块。

  1. 电压监测电路

电压监测电路用于实时监测电池电压。通过单片机对电压进行采样和处理,将电压值显示在LED显示屏上。

四、软件设计

  1. Protues软件使用

Protues软件用于电路设计与仿真。通过该软件,可以绘制出扫地机器人的电路图,并进行仿真测试,验证电路设计的正确性。

  1. Altium Designer软件使用

Altium Designer软件用于PCB板设计。根据电路设计的需求,通过该软件可以设计出符合要求的PCB板,方便后续的电路制作和焊接。

  1. C语言基础知识

C语言是本设计中用于编写单片机控制程序的主要语言。通过C语言,可以实现对单片机的初始化、外设控制、数据处理等功能。

五、结论

本技术文档详细阐述了基于单片机智能自动扫地机器人的控制电路设计。通过合理的硬件和软件设计,实现了扫地机器人的自动避障、电压监测、灵活转弯和高效扫地等功能。该设计具有较高的实用性和可靠性,为智能家居领域的发展提供了新的思路和方向。

 

 

 

#include <reg52.h>	     //包含52系统头文件
#include "bst_car.h"	 //包含bst_car.h智能小车头文件

#define uc unsigned char
#define ui unsigned int //宏定义

uc pwm_val_left  =0;//变量定义
uc pwm_val_right =0;
uc push_val_left =9;// 左电机占空比N/20	//速度调节变量 0-20。。。0最小,20最大
uc push_val_right=9;// 右电机占空比N/20

bit Right_PWM_ON=1;	           //右电机PWM开关
bit Left_PWM_ON =1;			   //左电机PWM开关

bit kaishi,jishi;	  //开始运行标志位 计时开始标志位
uc sec,min,xiuxi,flag2;	  //秒、分钟、休息、调时按键定义											

//延时函数	
void delay(unsigned int xms)				
{
    unsigned int i,j;
	for(i=xms;i>0;i--)		      //i=xms即延时约xms毫秒
    for(j=112;j>0;j--);
}

//设置时间函数
void settime(void)						 
{
	if(kset==0)							//按键按下
		{
			delay(20);					//延时去抖
			if((kset==0)&&(flag2==0))	//再次判断按键按下并且计时模式为0时
			{
				FM=0;					//蜂鸣器响
				shiwu=0;				//十五分钟灯亮
				sanshi=1;
				liushi=1;
				xiuxi=15;				//计时时间赋值15
				flag2++;				//计时模式加
				while(kset==0);			//按键释放
				FM=1;               //蜂鸣器停止
			}

部分代码....

资料下载地址:

https://docs.qq.com/doc/p/ffc421513a628b30450ae742547c0b850456d7c8

作者:Mr song song

物联沃分享整理
物联沃-IOTWORD物联网 » 基于单片机的智能自动扫地机器人控制电路设计(仿真、程序、电路)【毕设课设】

发表评论