赞
踩
Hi,大家好,今天向大家介绍一个学长做的单片机项目
基于单片机的遥控小车设计与实现
大家可用于 课程设计 或 毕业设计
单片机和底盘接线
完整接线
制作流程主要分为四个部分:1.组装小车;2.烧写代码;3.调试蓝牙;4.整车测试
其中,前三个部分的耦合性很低,每个部分可以独立操作和调试
L298N转接驱动板
蓝牙( 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"引脚
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); }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。