文章目录
1 简介2 主要器件与实现2.1 电机驱动模块2.2 蓝牙模块2.3 蓝牙调试APP3 实现效果5 部分参考代码6 最后1 简介
Hi,大家好,这里是丹成学长,今天向大家介绍一个学长做的单片机项目
基于单片机的遥控小车设计与实现
大家可用于 课程设计 或 毕业设计
单片机-嵌入式毕设选题大全及项目分享:
/m0_71572576/article/details/125409052
2 主要器件与实现
四轮驱动智能汽车底盘主控:arduino(可选stm32等其他单片机)L293D电机驱动器护罩SG90微型伺服电机超声波传感器-HC-SR04HC-05蓝牙模块电池座电池单片机和底盘接线
完整接线
制作流程主要分为四个部分:1.组装小车;2.烧写代码;3.调试蓝牙;4.整车测试
其中,前三个部分的耦合性很低,每个部分可以独立操作和调试
2.1 电机驱动模块
L298N转接驱动板
2.2 蓝牙模块
蓝牙( Bluetooth® ):是一种无线技术标准,可实现固定设备、移动设备和楼宇个人域网之间的短距离数据交换(使用2.4—2.485GHz的ISM波段的UHF无线电波)。
我们在此使用的蓝牙模块(HC-05)已经在内部实现了蓝牙协议,不用我们再去自己开发调试协议。这类模块一般都是借助于串口协议通信,因此我们只需借助串口将我们需要发送的数据发送给蓝牙模块,蓝牙模块会自动将数据通过蓝牙协议发送给配对好的蓝牙设备。
与单片机连接
TX: 接Arduino UNO开发板"RX"引脚
RX: 接Arduino UNO开发板"TX"引脚
GND: 接Arduino UNO开发板"GND"引脚
VCC: 接Arduino UNO开发板"5V"或"3.3V"引脚
2.3 蓝牙调试APP
3 实现效果
5 部分参考代码
char serial_data; // 将从串口读入的消息存储在该变量中int wheel_R_1 = 5; // 右轮in1对应Arduino 5号引脚int wheel_R_2 = 6; // 右轮in2对应Arduino 6号引脚int wheel_L_1 = 9; // 左轮in1对应Arduino 9号引脚int wheel_L_2 = 10; // 左轮in2对应Arduino 10号引脚void setup(){// 配置所有控制轮的引脚为输出pinMode(wheel_L_1, OUTPUT);pinMode(wheel_L_2, OUTPUT);pinMode(wheel_R_1, OUTPUT);pinMode(wheel_R_2, OUTPUT);// 配置串口波特率Serial.begin(9600);}void loop(){if(Serial.available()){// 将从串口读入的消息存储在该变量中serial_data = Serial.read();// 按照 w a s d x 在键盘上的布局来控制车// 如果接收到 w ,直行if( serial_data == 'w' ){move_ahead( );Serial.println("The car is moving ahead!");}// 如果接收到 x ,后退else if( serial_data == 'x'){move_backwards( );Serial.println("The car is moving backwards!");}// 如果接收到 a ,左转else if( serial_data == 'a'){turn_left( );Serial.println("The car is turning left!");}// 如果接收到 d ,右转else if( serial_data == 'd'){turn_right( );Serial.println("The car is turning right!");}// 如果接收到 s ,停止else if( serial_data == 's'){stop();Serial.println("The car is stopping!");}}}// 定义直行函数void move_ahead(){digitalWrite( wheel_L_1, HIGH);digitalWrite( wheel_L_2, LOW);digitalWrite( wheel_R_1, HIGH);digitalWrite( wheel_R_2, LOW);}// 定义后退函数void move_backwards(){digitalWrite( wheel_L_1, LOW);digitalWrite( wheel_L_2, HIGH);digitalWrite( wheel_R_1, LOW);digitalWrite( wheel_R_2, HIGH);}// 定义左转函数void turn_left(){digitalWrite( wheel_L_1, LOW);digitalWrite( wheel_L_2, LOW);digitalWrite( wheel_R_1, HIGH);digitalWrite( wheel_R_2, LOW);}// 定义右转函数void turn_right(){digitalWrite( wheel_L_1, HIGH);digitalWrite( wheel_L_2, LOW);digitalWrite( wheel_R_1, LOW);digitalWrite( wheel_R_2, LOW);}void stop(){digitalWrite( wheel_L_1, LOW);digitalWrite( wheel_L_2, LOW);digitalWrite( wheel_R_1, LOW);digitalWrite( wheel_R_2, LOW);}
单片机-嵌入式毕设选题大全及项目分享:
/m0_71572576/article/details/125409052
6 最后
如果觉得《【毕设项目】基于单片机的遥控小车设计与实现 - 嵌入式 物联网 stm32 c51》对你有帮助,请点赞、收藏,并留下你的观点哦!