基于Arduino开发的智能蓝牙小车
基于Arduino的智能蓝牙小车
材料准备:
Arduino开发板一块、四驱小车底板及相关配件一套、L298N驱动模块一个、HC-05/06蓝牙模块一块,九伏电源一块(用于主板供电)、12V锂电池一块(带充电器,供驱动器电源)。
L298N使用方法

如图所示,外接一个12V电源,将Logic Input上四个输入口分别接到控制板对应位置。(外接12V电源,还需从GND处接一根电源至控制板)
HC-05/06 蓝牙模块
HC-06 Arduino UNO
VCC VCC
GND GND
TXD RXD
RXD TXD
代码如下
#define IN1 5 // 定义开发板5口为IN1(L298N驱动器)
#define IN2 6 //定义开发板6口为IN1(L298N驱动器)
#define IN3 9 //定义开发板9口为IN1(L298N驱动器)
#define IN4 10 //定义开发板10口为IN1(L298N驱动器)
#include<SoftwareSerial.h> //添加这个库文件,可调用库函数
SoftwareSerial BT(3,4); // 定义开发板3,4为RX,TX
char val; //定义参数接收蓝牙的值
#define LEFT '3' //左转编码
#define RIGHT '4' //右转编码
#define GO '1' //前进编码
#define BACK '2' //后退编码
#define STOP '0' //停止编码
void setup() {
BT.begin(9600); //蓝牙波率设置为9600
Serial.begin(9600); //设置串口波特率
pinMode(IN1,OUTPUT); //设置为输出口
pinMode(IN2,OUTPUT); //设置为输出口
pinMode(IN3,OUTPUT); //设置为输出口
pinMode(IN4,OUTPUT); //设置为输出口
initCar(); //调用,停车,下文有
}
//开始判断是否接收数据,数据为多少
void loop() {
if(BT.available()){
val=BT.read();
if(val == GO){
//前进
go();
}else if(val == BACK){
//后退
back();
}else if(val == LEFT){
//左转
turnLeft();
}else if(val == RIGHT){
//右转
turnRight();
}else if(val=='0'){
//停车
stopCar();
}
}
}
void initCar(){
//默认全是低电平 停止状态
digitalWrite(IN1,LOW);
digitalWrite(IN2,LOW);
digitalWrite(IN3,LOW);
digitalWrite(IN4,LOW);
}
void turnLeft(){
//左转
digitalWrite(IN1,HIGH);
digitalWrite(IN2,LOW); //右轮前进
digitalWrite(IN3,LOW);
digitalWrite(IN4,LOW); //左轮不动
}
void turnRight(){
//右转
digitalWrite(IN1,LOW);
digitalWrite(IN2,LOW); //右轮不动
digitalWrite(IN3,HIGH);
digitalWrite(IN4,LOW); //左轮前进
}
void go(){
//前进
digitalWrite(IN1,HIGH);
digitalWrite(IN2,LOW); //右轮前进
digitalWrite(IN3,HIGH);
digitalWrite(IN4,LOW); //左轮前进
}
void back(){
//倒车
digitalWrite(IN1,LOW);
digitalWrite(IN2,HIGH); //右轮后退
digitalWrite(IN3,LOW);
digitalWrite(IN4,HIGH); //左轮后退
}
void stopCar(){
//停车
initCar();
}
接线如下:
Arduino UNO 蓝牙HC-05/06
5V VCC
GND GND
PWM 3 RXD
PWM4 GND
L298N
PWM5 IN1
PWM6 IN2
PWM9 IN3
PWM10 IN4
GND GND
L298N 电源
+12V 电源正
GND 电源负
基于Arduino开发的智能蓝牙小车的更多相关文章
- 基于 Arduino 开发板,这款插座是可编程且开源的
基于 Arduino 开发板,这款插座是可编程且开源的 https://www.oschina.net/news/74861/open-source-socket https://github.com ...
- 基于Arduino开发的简易“高水位报警系统解决方案”
长期以来,针对“某些办公室空调没有排水系统,只能用水桶接水,经常造成水漫金山的问题”而提出来的. 材料:Arduino开发板一块.水位传感器一个.高电平蜂鸣器一个.杜邦线若干. 原理:将水位传感器置于 ...
- Arduino开发版学习计划--小车的行走
小车的前进后退,左右转弯 代码如下 void motor(char pin,char pwmpin,char state,int val) { pinMode(pin, OUTPUT); ) { an ...
- 基于Qt的wifi智能小车的制作(一)
基于Qt的wifi智能小车的制作(一) 好久不写博客了,真的是有点惭愧了.翻开上一次的博客,到现在已经2个多月了,只能说是自己太懒惰了!忙是另一回事!趁今天晚上有点时间回顾下这一段时间的收获以及做的 ...
- 基于Neptune开发板的键盘蓝牙模块DIY指南
目录: 1.下载开发板程序2.安装USB串口(CH340)驱动3.安装烧写工具4.烧写开发板程序 本期我们带来基于润和Neptune开发板(以下简称Neptune开发板)的键盘蓝牙模块DIY指南,利用 ...
- ESP8266开发之旅 基础篇② 如何安装ESP8266的Arduino开发环境
授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...
- 手把手搭建自己的智能家居 - 基于 IOT Pi 的智能甲醛检测器
智慧家居 - 基于 IOT Pi 的智能甲醛检测器 之前的文章体验 MS-RTOS 的时候入手了一个块 IOT Pi ,放着也是浪费,这次我们就利用 IOT PI 开发一个智能甲醛检测器.φ(> ...
- 基于能量收集的智能家居-2013国家级大学生创业实践项目申报_商业计划书_V0.2
SmartHome项目商业计划 基于能量收集的 免电池无线智能家居系统 IA-SmartHome团队 2012.12 l 基于无线的智能家居解决方案,节省施工成本: l 基于能 ...
- x86 构架的 Arduino 开发板Intel Galileo
RobotPeak是上海的一家硬件创业团队,团队致力于民用机器人平台系统.机器人操作系统(ROS)以及相关设备的设计研发,并尝试将日新月异的机器人技术融入人们的日常生活与娱乐当中.同时,RobotPe ...
随机推荐
- 网络知识_01:ISO七层模型
一 IOS七层模型 1.1OSI的概念 Open System Interconnect开放系统互连参考模型,是由ISO(国际标准化组织)定义的.它是个灵活的.稳健的和可互操作的模型. 1.2OSI模 ...
- 别怕,"卷积"其实很简单(上)
文章来自我的CSDN同名博客,欢迎文末扫码关注~ 前言 相信很多时候,当我们在看到“卷积”时,总是处于一脸懵逼的状态,不但因为它的本身概念比较难理解,还因为它在不同的应用中发挥出的变幻莫测的作用也 ...
- .NET Core 3.1之深入源码理解HealthCheck(二)
写在前面 前文讨论了HealthCheck的理论部分,本文将讨论有关HealthCheck的应用内容. 可以监视内存.磁盘和其他物理服务器资源的使用情况来了解是否处于正常状态. 运行状况检查可以测试应 ...
- 「学习笔记」珂朵莉树 ODT
珂朵莉树,也叫ODT(Old Driver Tree 老司机树) 从前有一天,珂朵莉出现了... 然后有一天,珂朵莉树出现了... 看看图片的地址 Codeforces可还行) 没错,珂朵莉树来自Co ...
- 面试中经常问到的Redis七种数据类型,你都真正了解吗?
前言 Redis不是一个简单的键值对存储,它实际上是一个支持各种类型数据结构的存储.在传统的键值存储中,是将字符串键关联到字符串值,但是在Redis中,这些值不仅限于简单的字符串,还可以支持更复杂的数 ...
- 如何验证docker-compose安装成功
安装过程及如何验证docker-compose安装成功 步骤1: 通过运行 curl 从GitHub上进行安装下载 sudo curl -L "https://github.com/dock ...
- Redis-CAP定理和BASE理论(二)
CAP理论概述 1998 年来自柏克莱加州大学的计算机科学家 埃里克.布鲁尔(Eric Brewer) 提出分布式系统的三个基本指标:Consistency(一致性).Availability(可用性 ...
- react与redux的一点心得(理解能力有限,蜗牛进度)
Redux是一款状态管理库,并且提供了react-redux库来与React亲密配合, 但是总是傻傻分不清楚这2者提供的API和相应的关系.这篇文章就来理一理. 如果要用一句话来概括Redux,那么可 ...
- MySQL插入操作
说明:value的值可以为数据,DEFAULT,NULL,expr 含有ATUO_INCREMENT的列可以插入DEFAULT.NULL,或者不插入记录来实现自动增长. 插入记录的三种方法:①可以同时 ...
- windows I/O设备
当外部设备连接到windows后,设备所连接到的集线器驱动程序将为设备分配硬件ID,然后Windows 使用硬件 Id 查找设备与包含设备驱动程序的驱动程序包之间最近的匹配项. 如果查找到,设备就可以 ...