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


一、功能简介

本项目使用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设计,视频分享,技术交流。

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-21 13:00:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-21 13:00:01       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-21 13:00:01       82 阅读
  4. Python语言-面向对象

    2023-12-21 13:00:01       91 阅读

热门阅读

  1. shell——变量之字符串的截取

    2023-12-21 13:00:01       51 阅读
  2. Vue的网络请求、插槽、Vuex

    2023-12-21 13:00:01       64 阅读
  3. git或svn提交消息时,fix、feat等命令的含义

    2023-12-21 13:00:01       71 阅读
  4. 爬虫scrapy管道的使用

    2023-12-21 13:00:01       60 阅读
  5. 面试经典150题(38-41)

    2023-12-21 13:00:01       55 阅读
  6. golang开发--beego入门

    2023-12-21 13:00:01       47 阅读
  7. SpringBoot集成Drools

    2023-12-21 13:00:01       59 阅读
  8. 【单元测试】测还是不测,这是一个问题

    2023-12-21 13:00:01       50 阅读