Stap 3: Het programma!
Project 30 - Line Na Robot#include < Servo.h >
#define lichten 7
int LDR1, LDR2, LDR3; sensor-waardes
kalibratie offsets
int leftOffset = 0, rightOffset = 0, centrum = 0;
startende snelheid en rotatie offset
int startSpeed = 125, draaien = 30;
de drempel van de sensor
int drempel = 5;
beginsnelheden van links en rechts motors
int links = startSpeed, rechts = startSpeed;
Servo linksen;
Servo rechten;
Sensor kalibratieroutine
ongeldig calibrate() {}
voor (int x = 0; x < 10; x ++) {/ / dit 10 keer uitvoeren om de gemiddelde
digitalWrite (licht, hoge); lichten op
delay(100);
LDR1 = analogRead(0); Lees de 3 sensoren
LDR2 = analogRead(1);
LDR3 = analogRead(2);
leftOffset = leftOffset + LDR1; waarde van links sensor toevoegen aan totaal
centrum = centrum + LDR2; waarde van centrum sensor toevoegen aan totaal
rightOffset = rightOffset + LDR3; waarde van de juiste sensor toevoegen aan totaal
delay(100);
digitalWrite (verlichting, laag); lichten uit
delay(100);
}
verkrijgen van gemiddelde voor elke sensor
leftOffset = leftOffset / 10;
rightOffset = rightOffset / 10;
centrum = centrum /10;
berekenen van de offsets voor links en rechts sensoren
leftOffset = centrum - leftOffset;
rightOffset = centrum - rightOffset;
}
VOID Setup
{
Stel de motor pinnen op de uitgangen
pinMode (verlichting, uitvoer); verlichting
kalibreren van de sensoren
Calibrate();
delay(3000);
digitalWrite (licht, hoge); lichten op
delay(100);
motor richting toekomen instellen
ingestelde snelheid van beide motoren
Lefts.attach(2);
Rights.attach(3);
Lefts.write(91);
Rights.write(91);
}
void loop {}
beide motoren maken dezelfde snelheid
links = startSpeed;
rechts = startSpeed;
de sensoren lezen en toevoegen van de offsets
LDR1 = analogRead(0) + leftOffset;
LDR2 = analogRead(1);
LDR3 = analogRead(2) + rightOffset;
Als LDR1 groter is dan het centrum sensor + drempel rechtsaf
Als (LDR1 > (LDR2 + drempel)) {}
draaien = LDR2 - LDR3;
links = startSpeed + draaien;
rechts = startSpeed - roteren;
}
Als LDR3 groter is dan het centrum sensor + drempel linksaf
anders als (LDR3 > (LDR2 + drempel)) {}
draaien = LDR2 - LDR1;
links = startSpeed - roteren;
rechts = startSpeed + draaien;
}
else {}
links = startSpeed;
rechts = startSpeed;
}
de snelheid waarden verzenden de motoren
Lefts.write(Left);
Rights.write (180 - rechts);
delay(5);
}