【Proteus仿真】【Arduino单片机】蓝牙遥控小车

2023-12-21 06:37:42


一、功能简介

本项目使用Proteus8仿真Arduino单片机控制器,使LCD1602液晶,L298电机,直流电机,HC05/06蓝牙模块等。
主要功能:
系统运行后,LCD1602显示小车运行状态,速度档位,控制命令;可通过蓝牙发送命令控制小车前进、后退、左转、右转、停止。


二、软件设计

/*
作者:嗨小易(QQVIP群2:570487280)

*/


//系统数据采集
void sys_data_get(void)
{
	while(1)
	{		
		

		break;
	}
}

//系统数据显示
void sys_data_show(void)
{
	while(1)
	{
		//速度显示
		lcd1602_show_nums(6,0,sys_ctrl.speed,1,0);
		//小车方向状态显示
		_car_staus_show(sys_ctrl.dir);
		//控制命令显示
		lcd1602_show_num(14,0,UART_RX_BUF[0],0);

		break;	
	}		
}

//系统参数设置
void sys_data_set(void)
{
	//前进
	switch(UART_RX_BUF[0])
	{
		case CAR_STOP://停止
			sys_ctrl.dir=0;
			break;
		case CAR_FORM://前进
			sys_ctrl.dir=1;
			break;
		case CAR_BACK://后退
			sys_ctrl.dir=2;
			break;
		case CAR_LEFT://左转
			sys_ctrl.dir=3;
			break;
		case CAR_RIGHT://右转
			sys_ctrl.dir=4;
			break;
		case CAR_SPEED_ADD://加速
			if(sys_ctrl.speed<5)
				sys_ctrl.speed++;
			UART_RX_BUF[0]=0;
			break;
		case CAR_SPEED_DEC://减速
			if(sys_ctrl.speed>1)
				sys_ctrl.speed--;
			UART_RX_BUF[0]=0;
			break;
	}					
}

//系统功能控制
void sys_fun_ctrl(void)
{
	//控制小车
	switch(sys_ctrl.dir)
	{
		case 0:car_stop();break;//停止
		case 1:car_forward();break;//前进
		case 2:car_back();break;//后退
		case 3:car_left();break;//左转
		case 4:car_right();break;//右转
	}
	pwm_set_duty_cycle(sys_ctrl.speed*20);//占空比		
}


//应用控制系统
void appdemo_show(void)
{
	sys_parm_init();//系统参数初始化
	lcd1602_init();
	pwm_init(0XFF,0XD1,100,0);//初始时,PWM占空比为0
	sys_open_show();//系统开机显示
	UART_Init();//波特率9600
	UART_SendString("UART Init OK\r\n");

	while(1)
	{
		sys_data_get();//系统数据采集
		sys_data_show();//系统数据显示
		sys_data_set();//系统参数设置
		sys_fun_ctrl();//系统功能控制	
	}
}



三、实验现象

B站演示视频:https://space.bilibili.com/444388619
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

联系作者

视频地址:https://space.bilibili.com/444388619/video
专注于51单片机、STM32、国产32、DSP、Proteus、arduino、ESP32、物联网软件开发,PCB设计,视频分享,技术交流。

文章来源:https://blog.csdn.net/Hello_Muyi/article/details/135099630
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。