arduino analogwrite_基于手机蓝牙的arduino遥控小车

本文详细介绍了一款基于Arduino的蓝牙遥控小车制作过程,包括接线指南、代码编写及蓝牙串口助手APP配置等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       遥控小车是每个人童年的最爱,不仅好奇它的奇妙,更是喜欢它带来的刺激。小编为大家带来几篇文章,来给大家讲讲制作遥控小车的程序。

一、接线:

(1)HC05蓝牙接线:

e2bdaa84a08b4be96fa06af8f8d5948d.png

1b4af326470060b36ca2cac02f7d2735.png

连接方式:蓝牙上的RX和TX分别接arduino板子上的TX和RX

!!!注意!!!  下载程序的时候要拔掉蓝牙模块(或拔掉arduino板上RX引脚或让蓝牙断电),否则会出现下载错误。

(2)电机接线:

73b85870118367cf8368ea7209d1d90f.png

四个逻辑通道从左到右(即IN1到IN4)分别接5、6、9、10

12v供电,5伏输出给arduino供电

注意:此处驱动一定要和arduino共地!!!否则无法传输数据。

输出A接左边电机,输出B做右边电机

二、书写代码:

然后将以下代码下载到arduino板:

//-------------------------------------------------------------------////*******************************************************************///////////////////////////////////////////////////////////////////////////////////////////////////////电机设置//////////////////////////////////////////////////////////////////////////////////////////////////////// #define leftA_PIN 5#define leftB_PIN 6#define righA_PIN 9#define righB_PIN 10void motor_pinint( );     //引脚初始化void forward( );          //前进void back( );             //后退void turnLeftOrigin( );   //原地左void turnRightOrigin( );  //原地右void turnRightforword( ); //右前void turnLeftforword( );  //左前void turnLeftback( );     //左后void turnRightback( );    //右后void _stop();             //停车 //-------------------------------------------------------------------////*******************************************************************///////////////////////////////////////////////////////////////////////////////////////////////////////蓝牙遥控////////////////////////////////////////////////////////////////////////////////////////////////////////int receive;void reve(void); //----------------------------------------------------------------// void setup(){  Serial.begin(9600); //串口波特率9600(手机端使用)  motor_pinint( );}void loop(){   reve();} void reve(void){          receive=Serial.parseInt();       if(receive==7)     {forward( )         ;delay(500);_stop();}//前进  else if(receive==6)     {back( )            ;delay(500);_stop();}//后退  else if(receive==1)     {_stop()            ;delay(500);_stop();}//停车  else if(receive==3)     {turnLeftforword( ) ;delay(500);_stop();}//左前  else if(receive==2)     {turnRightforword( );delay(500);_stop();}//右前  else if(receive==5)     {turnLeftback( )    ;delay(500);_stop();}//左后  else if(receive==4)     {turnRightback( )   ;delay(500);_stop();}//右后  else if(receive==8)     {turnLeftOrigin( )  ;delay(250);_stop();}//原地左  else if(receive==9)     {turnRightOrigin( ) ;delay(250);_stop();}//原地右} /*电机引脚初始化*/void motor_pinint( ){  pinMode (leftA_PIN, OUTPUT); //设置引脚为输出引脚  pinMode (leftB_PIN, OUTPUT); //设置引脚为输出引脚  pinMode (righA_PIN, OUTPUT); //设置引脚为输出引脚  pinMode (righB_PIN, OUTPUT); //设置引脚为输出引脚  }/**************************************************forward子函数——前进子函数函数功能:控制车前进**************************************************/void forward( ){  analogWrite(leftA_PIN,180);        analogWrite(leftB_PIN,0);         //左轮前进  analogWrite(righA_PIN,180);        analogWrite(righB_PIN,0);         //右轮前进}/**************************************************back子函数——后退子函数函数功能:控制车后退**************************************************/void back( ){  analogWrite(leftA_PIN,0);        analogWrite(leftB_PIN,180);        //左轮后退  analogWrite(righA_PIN,0);        analogWrite(righB_PIN,180);        //右轮后退}/**************************************************turnLeftOrigin子函数——原地左转子函数函数功能:控制车原地左转**************************************************/void turnLeftOrigin( ){  analogWrite(leftA_PIN,0);        analogWrite(leftB_PIN,120);        //左轮后退  analogWrite(righA_PIN,120);        analogWrite(righB_PIN,0);          //右轮前进}/**************************************************turnRightOrigin子函数——原地右转子函数函数功能:控制车原地右转**************************************************/void turnRightOrigin( ){  analogWrite(leftA_PIN,120);        analogWrite(leftB_PIN,0);        //左轮前进  analogWrite(righA_PIN,0);        analogWrite(righB_PIN,120);      //右轮后退}/**************************************************turnRightforword子函数——右前运动子函数函数功能:控制车右前**************************************************/void turnRightforword( ){  analogWrite(leftA_PIN,200);        analogWrite(leftB_PIN,0);        //左轮快前进  analogWrite(righA_PIN,120);        analogWrite(righB_PIN,0);        //右轮慢前进}/**************************************************turnLeftforword子函数——左前运动子函数函数功能:控制车左前**************************************************/void turnLeftforword( ){  analogWrite(leftA_PIN,120);        analogWrite(leftB_PIN,0);       //左轮慢前进  analogWrite(righA_PIN,200);        analogWrite(righB_PIN,0);       //右轮快前进}/**************************************************turnRightforword子函数——右后运动子函数函数功能:控制车右后**************************************************/void turnRightback( ){  analogWrite(leftA_PIN,0);        analogWrite(leftB_PIN,200);        //左轮快后退  analogWrite(righA_PIN,0);        analogWrite(righB_PIN,120);        //右轮慢后退}/**************************************************turnLeftforword子函数——左后运动子函数函数功能:控制车左后**************************************************/void turnLeftback( ){  analogWrite(leftA_PIN,0);        analogWrite(leftB_PIN,120);        //左轮慢后退  analogWrite(righA_PIN,0);        analogWrite(righB_PIN,200);        //右轮快后退}/**************************************************stop子函数—停止子函数函数功能:控制车停止**************************************************/void _stop(){  analogWrite(leftA_PIN,0);        analogWrite(leftB_PIN,0);         //左轮静止不动  analogWrite(righA_PIN,0);        analogWrite(righB_PIN,0);         //右轮静止不动}

三、蓝牙串口助手APP:

下载地址:https://download.youkuaiyun.com/download/qq_38351824/10613322

没有积分的小伙伴,可在下方评论,我发给你。

下载安装后,打开APP后会自动开始搜索附近的蓝牙设备:

4a47923c186f91c4eae131f5540d5c87.png

搜索到后:

411b9610b99fb971d1b501ad8c70495b.png

然后选择我们要连接的设备:

0f305de74936726c1cf40388e1a3af11.png

输入PIN,一般密码为1234或0000或123456

输入正确后如下图

a963be2699ad8c80bdc3a9a8b8dc2bc9.png

这个APP只有这三种模式,但是足够一般人使用啦。我们使用的是键盘模式,其他两种模式,大家可以尝试玩一下。

那么,选择键盘模式后,如下图

fecbb42c0328f803fb7c8fd689430bdb.png

大家的和我的应该不一样,我这个是配置好了的样子(其中退出主函数和调节舵机中值不是,这是我之前用在智能车上的)

那么,如何配置呢?

点击右上角的4e573b8c9090b1bc9d2d9df6ea5fee09.png

d680c971d34582fd6a0b359acaf807c8.png

然后再点击配置键盘值。看似没什么区别,但是在点开按键会弹出界面:

a6e235fccacc06ae97807fc8959237e3.png

显示名:就是刚才那个界面的名字;按下发送值:顾名思义,就是按下该按键后发送的数字。

按照这个对应,更改下

  7---前进

  6---后退

  1---停车

  3---左前

  2---右前

  5---左后

  4---右后

  8---原地左

  9---原地右

然后再点击右上角的

4e573b8c9090b1bc9d2d9df6ea5fee09.png

06442a83ff23f6205756e56001cf7c17.png

然后点击保存就全部大功告成啦!

      如果大家在制作过程中有什么问题或者思路可以在下方留言和我一起交流噢!

如果发现本文有错误,也请在下方评论指出,感激不尽!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值