带调速的安卓手机蓝牙遥控小车
本帖最后由 JML 于 2015-1-30 22:52 编辑所需配件如下:
1:Arduino UNO R3 控制器 ;
2 :L298N电机驱动模块;
3 :无线蓝牙串口透传模块HC-06;
4:小米充电宝(需拆开使用);
5 : 智能车底盘带减速电机
图中的蓝牙遥控软件:
下面附上控制代码,接线方法看代码:
char getstr;
int in1=3;
int in2=4;
int in3=7;
int in4=8;
int n=0;
int inENA=9;
int inENB=10;
//上面定义了板上的4个控制端,12一组,34一组
void _mRight(int pin1,int pin2)//当in1和in2中有一个接高位时,电机会向某一方向转动
{
digitalWrite(pin1,HIGH);
digitalWrite(pin2,LOW);
}
void _mLeft(int pin1,int pin2)//同上
{
digitalWrite(pin1,LOW);
digitalWrite(pin2,HIGH);
}
void _mStop(int pin1,int pin2)//紧急制动,实际就是将电机两个端短接了
{
digitalWrite(pin1,HIGH);
digitalWrite(pin2,HIGH);
}
void setup()
{
Serial.begin(9600);
pinMode(in1,OUTPUT);
pinMode(in2,OUTPUT);
pinMode(in3,OUTPUT);
pinMode(in4,OUTPUT);
pinMode(inENA,OUTPUT);
pinMode(inENB,OUTPUT);
//下面程序开始时让控制端都为高电平,电机保持不动。
digitalWrite(in1,HIGH);
digitalWrite(in2,HIGH);
digitalWrite(in3,HIGH);
digitalWrite(in4,HIGH);
}
void loop()
{
getstr=Serial.read();
if(getstr=='A')
{
Serial.println("go forward!");
_mStop(in1,in2);
_mStop(in3,in4);
_mRight(in1,in2);
_mRight(in3,in4);
}
else if(getstr=='B'){
Serial.println("go back!");
_mStop(in1,in2);
_mStop(in3,in4);
_mLeft(in1,in2);
_mLeft(in3,in4);
}
else if(getstr=='C'){
Serial.println("go left!");
_mStop(in1,in2);
_mStop(in3,in4);
_mRight(in1,in2);
_mLeft(in3,in4);
}
else if(getstr=='D'){
Serial.println("go right!");
_mStop(in1,in2);
_mStop(in3,in4);
_mRight(in3,in4);
_mLeft(in1,in2);
}
else if(getstr=='7'){
Serial.println("go back!");
n=n+85; //每次累加值为5
if (n>=255)
n=255;
analogWrite(9,n);
analogWrite(10,n);
}
else if(getstr=='9'){
Serial.println("go back!");
n=n-85;
if (n<=0)
n=0;
analogWrite(9,n);
analogWrite(10,n);
}
else if(getstr=='F'){
Serial.println("Stop!");
_mStop(in1,in2);
_mStop(in3,in4);
}
}
附件;
下面是成品图:
还真不错
.......................... 路由刷openwrt挂只摄像头:$,你懂得 感谢楼主分享 还带重力感应? 很有才。哈哈{:soso_e100:} 求楼主QQ,正在做这个,希望与楼主交流交流 学习啦,代码构思真不错,一个人一个想法呀
页:
[1]