标题:
基于arduino单片机的寻迹小车程序源码
[打印本页]
作者:
零下72度的坚强
时间:
2017-11-3 14:20
标题:
基于arduino单片机的寻迹小车程序源码
基于arduino单片机的寻迹小车程序源码
所有资料51hei提供下载:
XunJin_c3cc3.zip
(921 Bytes, 下载次数: 38)
2017-11-3 14:17 上传
点击文件名下载附件
下载积分: 黑币 -5
arduino源程序如下:
//R是右(right),L是左(left)小车对着自己看时分的左右
int IN1=10;
int IN2=11;//左轮
int IN3=12;
int IN4=13;//右轮
const int SensorLeft1=A3;//左感測器輸入腳
const int SensorLeft2=A4;
const int SensorRight1=A6;//右感測器輸入腳
const int SensorRight2=A5;
const int ENA=6;
const int ENB=5;
int SL1;
int SL2;//左感測器狀態
int SR1;
int SR2;//右感測器狀態
void setup()
{
Serial.begin(9600);
pinMode(IN1,OUTPUT);
pinMode(IN2,OUTPUT);
pinMode(IN3,OUTPUT);
pinMode(IN4,OUTPUT);
pinMode(SensorLeft1,INPUT);
pinMode(SensorLeft2,INPUT);
pinMode(SensorRight1,INPUT);
pinMode(SensorRight2,INPUT);
}
void loop()
{
SL1=digitalRead(SensorLeft1);
SL2=digitalRead(SensorLeft2);
SR1=digitalRead(SensorRight1);
SR2=digitalRead(SensorRight2);
if (SL1==LOW &&SL2==LOW&& SR1==LOW&& SR2==LOW)//前进
{
analogWrite(ENA,150);
analogWrite(ENB,150);
digitalWrite(IN1,HIGH);//IN1左电机高电平正转
digitalWrite(IN2,LOW);//IN2左电机高电平反转
digitalWrite(IN3,HIGH);//IN3右电机高电平反转
digitalWrite(IN4,LOW);//IN4右电机高电平正转
}
else // R是右(right),L是左(left)小车对着自己看时分的左右
if (SL1==HIGH&&SL2==HIGH&&SR1==LOW&&SR2==LOW)//左白右黑,快速左转
{
delay(1);
analogWrite(ENA,150);
analogWrite(ENB,150);
digitalWrite(IN1,HIGH);//IN3左电机高电平正转
digitalWrite(IN2,LOW);//IN4左电机高电平反转
digitalWrite(IN3,LOW);//IN1右电机高电平反转
digitalWrite(IN4,HIGH);//IN2右电机高电平正转
}
else
if (SL1==LOW&SL2 == LOW&SR1 == HIGH&SR2==HIGH) //左黑右白,快速右转
{delay(1);
analogWrite(ENA,150);
analogWrite(ENB,150);
digitalWrite(IN1,LOW);//IN3左电机高电平正转
digitalWrite(IN2,HIGH);//IN4左电机高电平反转
digitalWrite(IN3,HIGH);//IN1右电机高电平反转
digitalWrite(IN4,LOW);//IN2右电机高电平正转
}
else
if (SL1==HIGH&&SL2==LOW&&SR1==LOW&&SR2==LOW)//左白右黑,慢速左转
{
delay(1);
analogWrite(ENA,100);
analogWrite(ENB,100);
digitalWrite(IN1,HIGH);//IN3左电机高电平正转
digitalWrite(IN2,LOW);//IN4左电机高电平反转
digitalWrite(IN3,LOW);//IN1右电机高电平反转
digitalWrite(IN4,HIGH);//IN2右电机高电平正转
}
else
if (SL1==LOW&SL2 == LOW&SR1 == LOW&SR2==HIGH) //左黑右白,慢速右转
{delay(1);
analogWrite(ENA,100);
analogWrite(ENB,100);
digitalWrite(IN1,LOW);//IN3左电机高电平正转
digitalWrite(IN2,HIGH);//IN4左电机高电平反转
digitalWrite(IN3,HIGH);//IN1右电机高电平反转
digitalWrite(IN4,LOW);//IN2右电机高电平正转
}
else//都是白色, 停止
{
analogWrite(ENA,0);
analogWrite(ENB,0);
digitalWrite(IN1,LOW);
digitalWrite(IN2,LOW);
digitalWrite(IN3,LOW);
digitalWrite(IN4,LOW);
}}
复制代码
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1