做设计找图片的网站有哪些,企业网站模板 优帮云,小程序登录功能,在线做venn图网站文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介
本项目使用Proteus8仿真Arduino单片机控制器#xff0c;使LCD1602液晶#xff0c;L298电机#xff0c;直流电机#xff0c;HC05/06蓝牙模块#xff0c;HCSR04超声波#xff0c;红外寻迹模块等。 主… 文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介
本项目使用Proteus8仿真Arduino单片机控制器使LCD1602液晶L298电机直流电机HC05/06蓝牙模块HCSR04超声波红外寻迹模块等。 主要功能 系统运行后LCD1602显示小车运行状态、模式、检测距离 当小车在蓝牙模式可通过蓝牙发送命令控制小车前进、后退、左转、右转、模式、LED开关 当小车在寻迹模式通过左右红外传感器感应寻迹前进时LED亮否则灭 当小车在避障模式通过超声波检测距离当距离小于避障值右转否则前进 蓝牙控制命令十六进制 0X10-前进 0X11-后退 0X12-左转 0X13-右转 0X14-停止 0X15-蓝牙模式 0X16-寻迹模式 0X17-避障模式 0X18-LED开 0X19-LED关 二、软件设计
/*
作者嗨小易QQ3443792007*///系统数据获取
void sys_data_get(void)
{while(1){//获取距离sys_ctrl.disultrasonicwave_measure();//红外感应if(HW_L0 HW_R1)sys_ctrl.ir1;else if(HW_L1 HW_R0)sys_ctrl.ir2;else if(HW_L1 HW_R1)sys_ctrl.ir0;break;}
}//系统数据显示
void sys_data_show(void)
{while(1){//模式显示if(sys_ctrl.mode0)lcd1602_show_string(2,0,LY);else if(sys_ctrl.mode1)lcd1602_show_string(2,0,XJ); else if(sys_ctrl.mode2)lcd1602_show_string(2,0,BZ);//红外感应状态显示if(sys_ctrl.ir0)lcd1602_show_string(6,0,N);else if(sys_ctrl.ir1)lcd1602_show_string(6,0,L);else if(sys_ctrl.ir2)lcd1602_show_string(6,0,R); //距离显示lcd1602_show_nums(11,0,sys_ctrl.dis,3,0);break;}
}//系统数据设置
void sys_data_set(void)
{if(Serial.available()) //当串口接收到信息后{UART_RX_BUF[0]Serial.read();//读取接收到的数据}//模式选择if(UART_RX_BUF[0]CAR_MODE_LY){sys_ctrl.dir0;sys_ctrl.mode0;}else if(UART_RX_BUF[0]CAR_MODE_XJ)sys_ctrl.mode1;else if(UART_RX_BUF[0]CAR_MODE_BZ)sys_ctrl.mode2;//蓝牙模式if(sys_ctrl.mode0){//蓝牙控制命令switch(UART_RX_BUF[0]){case CAR_FORM://前进sys_ctrl.dir1;break;case CAR_BACK://后退sys_ctrl.dir2;break;case CAR_LEFT://左转sys_ctrl.dir3;break;case CAR_RIGHT://右转sys_ctrl.dir4;break;case CAR_STOP://停止sys_ctrl.dir0;break;case LED_ON://LED开LED(0);break;case LED_OFF://LED关LED(1);break;} }if(UART_RX_BUF[0]!0)UART_RX_BUF[0]0;
}//系统功能控制
void sys_fun_ctrl(void)
{//蓝牙模式if(sys_ctrl.mode0){//小车控制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;//右转}
// //小车状态显示
// _car_staus_show(sys_ctrl.dir);
// if(sys_ctrl.dir!0)sys_ctrl.dir0; }//寻迹模式else if(sys_ctrl.mode1){//如果没有感应黑线前进开灯if(sys_ctrl.ir0){LED(0);sys_ctrl.dir1;car_forward();}//如果左侧感应黑线左转关灯else if(sys_ctrl.ir1){LED(1);sys_ctrl.dir3;car_left();}//如果右侧感应黑线右转关灯else if(sys_ctrl.ir2){LED(1);sys_ctrl.dir4;car_right();} }//避障模式else if(sys_ctrl.mode2){LED(1);//如果检测距离大于避障距离前进if(sys_ctrl.disBZ_VALUE){sys_ctrl.dir1;car_forward(); }//如果检测距离小于避障距离右转else{sys_ctrl.dir4;car_right(); } }//小车状态显示_car_staus_show(sys_ctrl.dir);
} 三、实验现象
B站演示视频https://space.bilibili.com/444388619 联系作者
专注于51单片机、STM32、国产32、DSP、Proteus、ardunio、ESP32、物联网软件开发PCB设计视频分享技术交流。