const int moto1=2;
const int moto2=3;
const int moto3=4;
const int moto4=5;
const int moto5=6;
const int moto6=7;
const int moto7=8;
const int moto8=9;
char buff;
void setup()
{
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(moto1,OUTPUT);
pinMode(moto2,OUTPUT);
pinMode(moto3,OUTPUT);
pinMode(moto4,OUTPUT);
pinMode(moto5,OUTPUT);
pinMode(moto6,OUTPUT);
pinMode(moto7,OUTPUT);
pinMode(moto8,OUTPUT);
digitalWrite (moto1,LOW);
digitalWrite (moto2,LOW);
digitalWrite (moto3,LOW);
digitalWrite (moto4,LOW);
digitalWrite (moto5,LOW);
digitalWrite (moto6,LOW);
digitalWrite (moto7,LOW);
digitalWrite (moto8,LOW);
}
while(1)
{
i=analogRead(8)
a=analogRead(6)
b=analogRead(7)
digitalWrite (moto5,HIGH);
digitalWrite (moto6,HIGH);
digitalWrite (moto7,LOW);
if(i>200) //有重物时时前进,即按钮按下,高电平
{
if(a<100) //前壁障返回低电平时前进
{
digitalWrite(moto1,LOW);
digitalWrite(moto2,HIGH);
digitalWrite(moto3,LOW);
digitalWrite(moto4,HIGH);
}
else //前壁障返回高电平停止
{
digitalWrite(moto1,LOW);
digitalWrite(moto2,LOW);
digitalWrite(moto3,LOW);
digitalWrite(moto4,LOW);
}
}
else //无重物时后退,即按钮松开,低电平
{
if(b<100) //后壁障返回低电平时后退
{
digitalWrite(moto1,HIGH);
digitalWrite(moto2,LOW);
digitalWrite(moto3,HIGH);
digitalWrite(moto4,LOW);
}
else //后壁障返回高电平停止
{
digitalWrite(moto1,LOW);
digitalWrite(moto2,LOW);
digitalWrite(moto3,LOW);
digitalWrite(moto4,LOW);
}
}
}
void loop() {
// put your main code here, to run repeatedly:
if(Serial.available()>0)
{
buff=Serial.read();
}
if(buff=='1')//停车
{
digitalWrite(moto1,LOW);
digitalWrite(moto2,LOW);
digitalWrite(moto3,LOW);
digitalWrite(moto4,LOW);
}
if(buff=='2')//前进
{
digitalWrite(moto1,LOW);
digitalWrite(moto2,HIGH);
digitalWrite(moto3,LOW);
digitalWrite(moto4,HIGH);
}
if(buff=='3')//后退
{
digitalWrite(moto1,HIGH);
digitalWrite(moto2,LOW);
digitalWrite(moto3,HIGH);
digitalWrite(moto4,LOW);
}
if(buff=='4')//左转
{
digitalWrite(moto1,HIGH);
digitalWrite(moto2,LOW);
digitalWrite(moto3,LOW);
digitalWrite(moto4,LOW);
}
if(buff=='5')//右转
{
digitalWrite(moto1,LOW);
digitalWrite(moto2,LOW);
digitalWrite(moto3,HIGH);
digitalWrite(moto4,LOW);
}
}
