直流电机
L298N直流驱动
Arduino uno
蓝牙模块
小车模型
安卓手机和蓝牙串口软件
首先给大家介绍主要硬件,分别是l298n直流驱动、arduino uno、蓝牙模块
arduino具体的连接线路图,大家可以按照箭头所示连接,程序已经和图示接口定义的一样在arduino主板上已经标注好了串口信息,可以跟着连接
蓝牙模块的TX接主板的RX,RX接主板的TX就是对调一下才可以实现数据交换,然后GND与VCC分别对应相接蓝牙模块:四个引脚1. TX接主板RX2. RX接主板TX3. VCC接c1-VCC4. GND接C2-GND
L298N直流驱动1. 负极和正极分别接电机的正负极2. 项目通常使用12v供电,电源正极接12v,负极接GND3. IN1、IN2、IN3、IN4接主板上的相同串口4. EN1和EN2接相应串口,EN使能端上有跳冒,要保持两个引脚串联的情况下接引脚(这是关键,好多人就是在这卡住了,导致不能转动)
咋们采用的是蓝牙遥控方式,所以可以下载已经现有的app
小编我用的是蓝牙串口工具,然后在里面的按键定义字符本次实验里的前进是字符‘G’后退是字符‘B’左移是字符‘L’右移是字符‘R’停止是字符‘S’在设置蓝牙界面的时候按照以上字符设置。
以下就是用到的代码:int IN1=9;int IN2=10;int IN3=11;int IN4=12;int EN1=6;int EN2=7;int A=80;int B=80;const String GO = 'G';const String BACK = 'B';const String RIGHT = 'R';const String LEFT = 'L';const String STOP = 'S';/*********前进方法******/void forward() { digitalWrite(IN1,HIGH); digitalWrite(IN2,LOW); analogWrite(EN1,A); digitalWrite(IN3,LOW); digitalWrite(IN4,HIGH); analogWrite(EN2,B); }void backup() { digitalWrite(IN1,LOW); digitalWrite(IN2,HIGH); analogWrite(EN1,A); digitalWrite(IN3,HIGH); digitalWrite(IN4,LOW); analogWrite(EN2,B); }void left() { digitalWrite(IN1,LOW); digitalWrite(IN2,HIGH); analogWrite(EN1,A); digitalWrite(IN3,LOW); digitalWrite(IN4,HIGH); analogWrite(EN2,B); }void right() { digitalWrite(IN1,HIGH); digitalWrite(IN2,LOW); analogWrite(EN1,A); digitalWrite(IN3,HIGH); digitalWrite(IN4,LOW); analogWrite(EN2,B); }void Stop() { digitalWrite(IN1,LOW); digitalWrite(IN2,LOW); analogWrite(EN1,30); digitalWrite(IN3,LOW); digitalWrite(IN4,LOW); analogWrite(EN2,30); }String readTtl() { String comdata = ''; while (Serial.available()) { comdata += char(Serial.read()); delay(2); } return comdata; }void setup() { Serial.begin(9600); pinMode(IN1,OUTPUT); pinMode(IN2,OUTPUT); pinMode(IN3,OUTPUT); pinMode(IN4,OUTPUT); pinMode(EN1,OUTPUT); pinMode(EN2,OUTPUT); digitalWrite(IN1,HIGH); digitalWrite(IN2,HIGH); digitalWrite(IN3,HIGH); digitalWrite(IN4,HIGH); }void loop() { String s = readTtl(); if (s == GO ) forward(); if (s == LEFT ) left(); if (s == STOP ) Stop(); if (s == RIGHT ) right(); if (s == BACK ) backup(); }
电源不要大于各个元件的额定电压,如果电压过大可以用降压模块或者电源模块来保护电路