一、简介
Arduino是一款便捷灵活、方便上手的开源电子原型平台。它比较容易入门。但是就在我刚刚接触硬件的时候我不知道如何上手,想要自己开发出一个,经过在网上查找资料才知道Arduino对新人比较友好,比较容易上手。
二、材料的准备
小车套件:
网上有很多的小车底盘售卖,都是成套的
驱动模块:
驱动模块我采用的是L298N电机驱动板,
此电机驱动板有以下几个优点:
1.工作电压高,输出电流大,驱动能力强,发热量低,抗干扰能力强
2.可以将高电压转化为5V的稳定电压
3.比较经典,网上有许多介绍
通信模块:
通信模块可选择蓝牙模块,也可以选择wifi模块
在这里我选择的是HC-06蓝牙模块,因为比较的容易使用,不需要配置什么,在手机上随便下载一个蓝牙调试助手连接上就可以通信了
三、制作
我使用的是两个L298N电机驱动模块 一个控制前面两个电机 另外一个控制后面两个电机
L298N使能端都默认的给5V
下面直接上代码(这个代码写的比较的繁琐,但是比较容易看懂)
char serialData;
char value;
int in1 = 2;
int in2 = 3;
int in3 = 4;
int in4 = 5;
int in5 = 6;
int in6 = 7;
int in7 = 8;
int in8 = 9;
void setup() {
Serial.begin(9600);
pinMode(in1,OUTPUT);
pinMode(in2,OUTPUT);
pinMode(in3,OUTPUT);
pinMode(in4,OUTPUT);
pinMode(in5,OUTPUT);
pinMode(in6,OUTPUT);
pinMode(in7,OUTPUT);
pinMode(in8,OUTPUT);
}
void loop(){
if( Serial.available() > 0 ){
serialData = Serial.read();
if('f' == serialData) {
Serial.print(serialData);
Serial.println(": 前进");
digitalWrite(in1,HIGH);
digitalWrite(in2,LOW);
digitalWrite(in3,LOW);
digitalWrite(in4,HIGH);
digitalWrite(in5,LOW);
digitalWrite(in6,HIGH);
digitalWrite(in7,LOW);
digitalWrite(in8,HIGH);
}
else if('b' == serialData) {
Serial.print(serialData);
Serial.println(": 后退");
digitalWrite(in1,LOW);
digitalWrite(in2,HIGH);
digitalWrite(in3,HIGH);
digitalWrite(in4,LOW);
digitalWrite(in5,HIGH);
digitalWrite(in6,LOW);
digitalWrite(in7,HIGH);
digitalWrite(in8,LOW);
}
else if( 'r' == serialData){
Serial.print(serialData);
Serial.println(": 右平移");
digitalWrite(in1,HIGH);
digitalWrite(in2,LOW);
digitalWrite(in3,HIGH);
digitalWrite(in4,LOW);
digitalWrite(in5,LOW);
digitalWrite(in6,HIGH);
digitalWrite(in7,HIGH);
digitalWrite(in8,LOW);
}
else if('l' == serialData){
Serial.print(serialData);
Serial.println(": 左平移");
digitalWrite(in1,LOW);
digitalWrite(in2,HIGH);
digitalWrite(in3,LOW);
digitalWrite(in4,HIGH);
digitalWrite(in5,HIGH);
digitalWrite(in6,LOW);
digitalWrite(in7,LOW);
digitalWrite(in8,HIGH);
}
else if('s' == serialData){
Serial.print(serialData);
Serial.println(": 停止");
digitalWrite(in1,LOW);
digitalWrite(in2,LOW);
digitalWrite(in3,LOW);
digitalWrite(in4,LOW);
digitalWrite(in5,LOW);
digitalWrite(in6,LOW);
digitalWrite(in7,LOW);
digitalWrite(in8,LOW);
}
else if('R' == serialData){
Serial.print(serialData);
Serial.println(": 原地右旋");
digitalWrite(in1,HIGH);
digitalWrite(in2,LOW);
digitalWrite(in3,HIGH);
digitalWrite(in4,LOW);
digitalWrite(in5,HIGH);
digitalWrite(in6,LOW);
digitalWrite(in7,LOW);
digitalWrite(in8,HIGH);
}
else if('L' == serialData){
Serial.print(serialData);
Serial.println(": 原地左旋");
digitalWrite(in1,LOW);
digitalWrite(in2,HIGH);
digitalWrite(in3,LOW);
digitalWrite(in4,HIGH);
digitalWrite(in5,LOW);
digitalWrite(in6,HIGH);
digitalWrite(in7,HIGH);
digitalWrite(in8,LOW);
}
else{
}
}
}
最后的效果可能根据你的接线不同会有些差异,这个只需要后期调试一下就可以了