arduino智能循跡小車代碼(三個循跡模塊)


#include <Servo.h>
int leftMotor1 = 3;
int leftMotor2 = 5;
int rightMotor1 = 6;
int rightMotor2 = 11;
int sum=0;
void setup() {
Serial.begin(9600);
pinMode(leftMotor1, OUTPUT);
pinMode(leftMotor2, OUTPUT);
pinMode(rightMotor1, OUTPUT);
pinMode(rightMotor2, OUTPUT);
pinMode(A0, INPUT);
pinMode(A1, INPUT);
pinMode(A2, INPUT);
}
void loop() {
tracing();
}
void tracing()
{
int data[4];
data[0]=analogRead(A0);
data[1]=analogRead(A1);
data[2]=analogRead(A2);

if(data[0]<210&&data[1]>500&&data[2]<210)//向前走
{
analogWrite(3,100);
analogWrite(5,0);
analogWrite(6,100);
analogWrite(11,0);
}
if(data[0]>500 &&data[1]<210 && data[2]<210) // 小車偏左
{
analogWrite(3,0);
analogWrite(5,0);
analogWrite(6,120);
analogWrite(11,0);
}
if(data[0]>500&&data[1]>500&&data[2]<210) //小車偏大左
{
analogWrite(3,0);
analogWrite(5,120);
analogWrite(6,120);
analogWrite(11,0);
}
if(data[0]<210&&(data[1]-30)<210&&data[2]>500) //小車偏右
{
analogWrite(3,120);
analogWrite(5,0);
analogWrite(6,0);
analogWrite(11,0);
}
if(data[0]<210&&data[1]>500&&data[2]>500) //小車偏大右
{
analogWrite(3,120);
analogWrite(5,0);
analogWrite(6,0);
analogWrite(11,120);
}
if(data[0]>500&&data[1]>500&&data[2]>500) //左右都檢測到黑線是停止
{
analogWrite(3,0);
analogWrite(5,0);
analogWrite(6,0);
analogWrite(11,0);
}

Serial.print(data[0]);
Serial.print("---");
Serial.print(data[1]-30);
Serial.print("---");
Serial.print(data[2]);
Serial.print("---");
Serial.println(data[3]);
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM