准备材料:电机驱动板、Arduino板、蓝牙模块、小车全家桶

制作流程:一、组装小车  二、接线  三、烧录代码   四、调试蓝牙  五、测试

一、组装

按照图纸组装,有手就行。一定一定要准备螺丝刀和多几条杜邦线,或者问商家要多几条电线

血的教训:由于电线不足,所以没有安装电源开关,也只测试了一个电机是否能转动成功。

电机驱动模块介绍:

这是最低级的:

最好买普遍的L298N电机驱动:

arduino板可以供电,为什么要加电机驱动模块?

1、四块电池接电机,电流过大,烧坏arduino板。

2、电机驱动模块可以实现两个直流电机的正反向驱动,正转、反转、刹车、慢行,否则只会直行

3、电机驱动模块具有驱动能力强,发热量低,抗干扰能力强的特点。

其中左边和右边的孔一一对应,我们可以将Arduino的数字输出针脚接到in1 ~ in4上,即可将对应的高低电平信号映射到驱动板输出的接线柱上,从而控制电机

二、接线

原理图:

Arduino板 驱动板
VIN +
GND    
5 INT1
6 INT2
9 INT3
10 INT4

原理:电池组供电给电机驱动板,和Arduino板。Arduino板相当于一个智能开关,传输信号给驱动板的INT1-4引脚,INT引脚再决定是否输出电压给它们对应的输出引脚(接电机)。

蓝牙模块用法传送门:Arduino蓝牙模块实验(HC-42)_Z·y001的博客-CSDN博客

蓝牙模块先不用接。 先测试一下驱动板,电机是否能转动

刚接上去电机即可转动。

三、代码烧录

拆下驱动板

单独连接Arduino和电脑

char serial_data;   // 将从串口读入的消息存储在该变量中int wheel_R_1 = 5;  // 右轮in1对应Arduino 5号引脚
int wheel_R_2 = 6; // 右轮in2对应Arduino 6号引脚
int wheel_L_1 = 9;  // 左轮in3对应Arduino 9号引脚
int wheel_L_2 = 10;  // 左轮in4对应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);
}

进入串口监视器,在这里我们可可以对上传到板上的程序进行测试,在输入栏输入“a”后,点击【发送】按钮,会发现文本框里可以从Arduino得到相应的反馈(这是在源代码中设置的),然后还可以依次测试发送“w”、“s”、“d”这几种消息,如均正常,则程序无误。

四、调试蓝牙

蓝牙模块用法传送门:Arduino蓝牙模块实验(HC-42)_Z·y001的博客-CSDN博客

手机的蓝牙助手设置按钮

测试蓝牙效果:手机按下按钮,出现对应的结果

五、最终组装测试

(驱动板有些差异,仅供参考)

实际效果:超级超级简陋的安装,由于只有极少的电线、杜邦线,所以只能实现原地转圈圈功能。

Arduino蓝牙遥控小车相关推荐

  1. 新朋实验室之玩具遥控车改装为ARDUINO蓝牙遥控小车(代码及制作过程开源)

    新朋实验室之玩具遥控车改装为ARDUINO蓝牙遥控小车(代码及制作过程开源) 2017年08月21日 12:55:25 XPLab 阅读数:4008 你家里的玩具遥控车坏了?遥控器丢了?先不要急着丢掉 ...

  2. Arduino mega2560蓝牙遥控小车简介

    Arduino mega2560蓝牙遥控小车简介 小车一览 主要模块如下: 一.电源 (1)BOM表:18650电池两节(单节3.6v,6800mAh) 18650 电池盒(两节带开关) 二.电机驱动 ...

  3. 蓝牙遥控小车2.0版发布啦

    蓝牙遥控小车2.0版发布啦! 蓝牙模块的主从机模式 1.主从机模式 2.设置主从机模式 蓝牙遥控器 1.硬件接线 2.程序设计 蓝牙小车 1.硬件接线 2.程序设计 今天要跟大家分享的是两个蓝牙模块之 ...

  4. MSP432蓝牙遥控小车

    目录 前言 搭建 硬件 软件 原理 源码 前言 这个小车是去年电赛的时候准备的,很遗憾我们赛区因为疫情被取消了比赛,我们也都已经大二大三了,因此我们没有机会再参加两年一次的电赛了.但是这些成果总不能放 ...

  5. 微信小程序+UDP+wifi8266+l293d扩展板+Arduino uno遥控小车

    微信小程序+UDP+wifi8266+l293d扩展板+Arduino uno遥控小车 序言 前面突然看到自己已经落灰的Arduino板子,感觉自己必须做点什么.正好手上有个8266的模块.有个焊接接 ...

  6. Arduino开发遥控小车(三)基于nRF24L01无线模块实现舵机转向和直流电机调速

    Arduino开发遥控小车(三)基于nRF24L01无线模块实现舵机转向和直流电机调速 前面和大家分享了通过nRF24L01无线模块实现数据发送和接收的基本方法,本次继续和大家分享最终实现遥控小车转向 ...

  7. 5.39 综合案例2.0 - STM32蓝牙遥控小车2(语音控制)

    综合案例2.0 - 蓝牙遥控小车1- 语音控制 成品展示 案例说明 器件说明 小车连线 小车源码 语音模块遥控 语音遥控连线 模块使用说明 1.MLT-BT05 4.0 蓝牙模块 2.ASRPRO-2 ...

  8. 【STM32】F103C8T6 蓝牙遥控小车

    STM32F103C8T6 蓝牙遥控小车 前言 硬件部分 连线部分 软件部分 代码 问题与解决... 前言 本次项目使用的是STM32F103C8T6核心板作为主控,通过连接蓝牙模块,实现和手机APP ...

  9. 基于HAL库-蓝牙遥控小车

    stm32+HAL库制作蓝牙遥控小车 材料及其接线 蓝牙模块:HC05/6 材料均可在某宝上进行购买. 注意:蓝牙模块可进行串口调试也可不调试(及为默认设置),本文使用的为未调试状态下的蓝牙串口,有关 ...

最新文章

  1. 点空白也弹窗口。看我弹
  2. NoSQL数据库探讨之一 - 为什么要用非关系数据库?
  3. 学校的体育设施预订服务系统
  4. html中加入一个计时器,向html中的计时器添加毫秒
  5. 浏览器 刷新页面后回到顶部_JavaScript仿知乎回到顶部功能
  6. 不会Object.defineProperty你就out了
  7. halcon 圆环类缺陷检测的一种方法(极坐标变换法)
  8. AOP(面向切面编程)大概了解一下
  9. 模式搜索的KMP算法详解与C语言代码实现
  10. 详解Linux防火墙iptables禁IP与解封IP常用命令
  11. 廖雪峰Python教程练习题
  12. 在中国知网下载 PDF 格式的学位论文
  13. UE虚幻引擎云渲染支持8K方案
  14. 寻找故障检测相关论文的期刊
  15. 有甲乙丙丁四个字,取出任意三个字,打印所有可能性
  16. 公有云上应该怎么做容灾?
  17. 科普|掀开马甲包的 “神秘面纱”
  18. uniapp地图轨迹回放
  19. 《自控力》分享一些减缓压力小妙招
  20. Opencv实现hwc到chw(归一化、减均值、除方差)重磅封装版

热门文章

  1. response对象在servlet中的常用方法讲解
  2. MYSQL基础之浅聊 变量
  3. Hive面试题精选-2021
  4. input搜索框在ios系统中兼容问题
  5. 百度AI实现Web端人脸识别登陆-Springboot-Vue/element-ui
  6. Java(web)项目安全漏洞及解决方式【面试+工作】
  7. 软件评测师-15.信息安全知识与安全测试
  8. Python数据类型练习题
  9. linux系统benchmark工具,Linux下一种简单易行的cpu benchmark方法
  10. 华为云跨服务器传输文件,与云服务器传输文件