Arduino蓝牙遥控小车

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

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

一、组装

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

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

电机驱动模块介绍:

这是最低级的:

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

 

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

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

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

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

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

二、接线

原理图:

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

原理:电池组供电给电机驱动板,和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博客

手机的蓝牙助手设置按钮

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

 五、最终组装测试

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

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

 

 

  • 32
    点赞
  • 258
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值