标题:
arduino蓝牙遥控车程序
[打印本页]
作者:
爱慕春妮
时间:
2021-8-25 21:47
标题:
arduino蓝牙遥控车程序
//
/*#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); // RX, TX
void setup() {
Serial.begin(9600);
mySerial.begin(9600);
}
void loop() {
while(mySerial.available()){
Serial.write(mySerial.read());
}
while(Serial.available()) {
mySerial.write(Serial.read());
}
}*/
#include <SoftwareSerial.h>
int m1=10;
int m2=11;
int m3=6;
int m4=9;
#define TRIG 7
#define ECHO 8
float cm;
float tmp;
float juli;
int zhi;
int i;
int c;
char BT_COM;
char BT_CON;
void setup()
{
pinMode(m1,OUTPUT);
pinMode(m2,OUTPUT);
pinMode(m3,OUTPUT);
pinMode(m4,OUTPUT);
Serial.begin(9600);
// mySerial.begin(9600);
pinMode(TRIG,OUTPUT);//触发输入端,默认低电平,输入一个时常超过10μs的高电平脉冲即可触发模块发射一组超声波脉冲
pinMode(ECHO,INPUT);//回声输出端,默认低电平,模块发射超声波脉冲结束后,回声端就会输出高电平,直到监听到所有超声波脉冲的回声(或监听超时)后才会重新输出低电平
}
void distance()//定义距离
{
digitalWrite(TRIG,LOW);
delayMicroseconds(2);
digitalWrite(TRIG,HIGH);
delayMicroseconds(10);
digitalWrite(TRIG,LOW);
tmp=float(pulseIn(ECHO,HIGH));
cm=(tmp*17)/1000;
Serial.print("Echo=");
Serial.print(tmp);
Serial.print(",距离=");
Serial.print(cm);
Serial.println("cm");
juli=cm;
}
void pao()
{
analogWrite(m1,i);
analogWrite(m2,0);
analogWrite(m3,i);
analogWrite(m4,0);
}
void pao1()
{
analogWrite(m1,255);
analogWrite(m2,0);
analogWrite(m3,255);
analogWrite(m4,0);
}
void shache()//定义刹车
{
analogWrite(m1,0);
analogWrite(m2,0);
analogWrite(m3,0);
analogWrite(m4,0);
}
void youzhuan()
{
analogWrite(m1,c);
analogWrite(m2,0);
analogWrite(m3,0);
analogWrite(m4,c);
}
void zuozhuan()
{
analogWrite(m1,0);
analogWrite(m2,c);
analogWrite(m3,c);
analogWrite(m4,0);
}
void houtui()
{
analogWrite(m1,0);
analogWrite(m2,i);
analogWrite(m3,0);
analogWrite(m4,i);
}
void youxuanzhuan()
{
analogWrite(m1,255);
analogWrite(m2,0);
analogWrite(m3,130);
analogWrite(m4,0);
}
void zuoxuanzhuan()
{
analogWrite(m1,130);
analogWrite(m2,0);
analogWrite(m3,255);
analogWrite(m4,0);
}
void youzuozhuan()
{
analogWrite(m1,0);
analogWrite(m2,130);
analogWrite(m3,0);
analogWrite(m4,255);
}
void youhouzhuan()
{
analogWrite(m1,0);
analogWrite(m2,255);
analogWrite(m3,0);
analogWrite(m4,130);
}
void bizhang()
{
while(1)
{
distance();
if(juli<=60)
{
if(juli<45)
{
youzhuan();
delay(300);
distance();
if(juli<10)
{
shache();
houtui();
delay(200);
}
}
else
pao();
}
else
pao();
}
}
void loop()
{
while(1)
{
if(Serial.available())
{
BT_COM=Serial.read();
if(BT_COM =='0')
{
zhi=0;
i=155;
}
else
if(BT_COM =='1')
{
zhi=1;
i=175;
}
else
if(BT_COM =='2')
{
zhi=2;
i=195;
}
else
if(BT_COM =='3')
{
zhi=3;
i=225;
}
else
if(BT_COM =='4')
{
zhi=4;
i=255;
}
else
if(BT_COM =='5')
{
zhi=5;
c=155;
}
else
if(BT_COM =='6')
{
zhi=6;
c=175;
}
else
if(BT_COM =='7')
{
zhi=7;
c=195;
}
else
if(BT_COM =='8')
{
zhi=8;
c=225;
}
else
if(BT_COM =='9')
{
zhi=9;
c=255;
}
Serial.print(",a=");
Serial.print( BT_COM);
Serial.print(",值=");
Serial.print(zhi);
Serial.print(",i=");
Serial.print(i);
Serial.print(",c=");
Serial.print(c);
switch(BT_COM)
{
case'a': pao();
break;
case'b': houtui();
break;
case'c': zuozhuan();
break;
case'd': youzhuan();
break;
case'f': shache();
break;
case'h': bizhang();
break;
case 'g': zuoxuanzhuan();
break;
case 'e': youxuanzhuan();
break;
case 'l': youhouzhuan();
break;
case 'k': youzuozhuan();
break;
}
}
}
}
复制代码
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1