Spåra Liner (3 / 4 steg)
Steg 3: CODIGO
ställa in Summer som P1.3 alias
int LMOTOR = P1_3; Ange LMOTOR som P2.1 alias
int RMOTOR = P1_2; Ange RMOTOR som P1.2 alias
CONST int RLPHOTO = A2;
CONST int RRPHOTO = A3;
int MICINP = A5; Ange MICINP som A5 alias
int LPHOTO = 0;
int RPHOTO = 0;
int MPOW = 225; ställa in motorer att använda 50% PWM (möjliga värden 0-255)
int MICTHRESH = 600; ställa in mikrofonen utlösande tröskeln (möjliga värden 0-1023)
int i;
int val;
int maxval;
int mid = 0;
int mn = 0;
int mx = 0;
void setup()
{
sätta din installation kod här, om du vill köra en gång:
Ställ in utgångar
pinMode (LMOTOR, OUTPUT);
pinMode (RMOTOR, OUTPUT);
Serial.BEGIN(9600);
int val = 0;
för (int j = 0; j < = 5; j ++) //Calibrating sensorn, att hitta max och
{//min reflektans värden.
Val = analogRead(j);
om (val > = mx)
MX = val;
om (val < = mn)
mn = val;
}
Delay(1);
mitten av = ((mx + mn)/2);
}
void loop()
{
sätta din huvudsakliga kod här, för att köra flera gånger:
analogWrite (RMOTOR, MPOW);
analogWrite (LMOTOR, MPOW);
RPHOTO = analogRead(RRPHOTO);
LPHOTO = analogRead(RLPHOTO);
Serial.println ("R");
Serial.println(RPHOTO);
Serial.println ("L");
Serial.println(LPHOTO);
analogWrite (RMOTOR, 200);
analogWrite (LMOTOR, 200);
Delay(1);
om ((RPHOTO > mid) & &(LPHOTO > mid)) {
analogWrite(LMOTOR,0); stänga av båda motorer
analogWrite(RMOTOR,0);
MPOW = 0;
} annat {
om ((RPHOTO > LPHOTO)) //Move kvar
{
analogWrite (RMOTOR, 255);
analogWrite (LMOTOR, 0);
} else om ((RPHOTO < LPHOTO)) {
analogWrite (LMOTOR, 255);
analogWrite (RMOTOR, 0);
} else om ((RPHOTO == LPHOTO)) {
analogWrite (LMOTOR, 0);
analogWrite (RMOTOR, 0);
}
}
}
Nota este carro sigue una linea Blanca, para variar estos parametros usar un multimetro o el seriell monitor
para comprobar el valor de lectura y que este vaya de acuerdo en sus condiciones