Maak drie variabelen en druk deze af
/*
*/
void setup() {
Serial.begin(9600);
delay(2000);
String naam = "Peter" ;
int waarde = 12;
boolean waarofniet = false;
Serial.println(naam);
Serial.println(waarde);
Serial.println(waarofniet);
}
void loop() {
}
/*
*/
void setup() {
Serial.begin(9600);
delay(2000);
String var1 = "abcd";
String var2 = "abcd";
String var3 = "efgh";
Serial.println(var1 == var2);
Serial.println(var1 == var3);
}
void loop() {
}
/*
*/
void setup() {
Serial.begin(9600);
delay(2000);
String var1 = "abcd";
String var2 = "abcd";
String var3 = "efgh";
boolean uitkomst = var1 == var2;
Serial.println(var1 == var2);
Serial.println(var1 == var3);
Serial.println(uitkomst);
}
void loop() {
}
/*
*/
void setup() {
Serial.begin(9600);
delay(2000);
int groot = 2313;
int klein = 5;
Serial.println(klein > groot);
Serial.println(klein < groot);
}
void loop() {
}
/*
*/
void setup() {
Serial.begin(9600);
delay(2000);
int groot = 2313;
int klein = 5;
Serial.println(klein > groot);
Serial.println(klein < groot);
Serial.println(klein >= klein);
Serial.println(groot <= groot);
Serial.println(klein >= groot);
Serial.println(groot <= klein);
}
void loop() {
}
/*
*/
void setup() {
Serial.begin(9600);
delay(2000);
int groot = 2313;
int klein = 5;
Serial.println(klein > groot);
Serial.println(klein < groot);
Serial.println(klein >= klein);
Serial.println(groot <= groot);
Serial.println(klein >= groot);
Serial.println(groot <= klein);
Serial.println(klein != klein);
Serial.println(klein != groot);
}
void loop() {
}
/*
*/
void setup() {
Serial.begin(9600);
delay(2000);
int groot = 2313;
int klein = 5;
if (klein < groot) {
Serial.println("klein is kleiner dan groot");
}
}
void loop() {
}
/*
*/
void setup() {
Serial.begin(9600);
delay(2000);
int groot = 2313;
int klein = 5;
if (klein < groot) {
Serial.println("klein is kleiner dan groot");
} else {
Serial.println("klein is groter dan groot");
}
}
void loop() {
}
Het juiste antwoord is 9x
getal 1
"Dit herhaal ik"
getal 2
"Dit herhaal ik"
getal 3
"Dit herhaal ik"
getal 4
"Dit herhaal ik"
getal 5
"Dit herhaal ik"
getal 6
"Dit herhaal ik"
getal 7
"Dit herhaal ik"
getal 8
"Dit herhaal ik"
getal 9
"Dit herhaal ik"
getal 10
/*
*/
void setup() {
Serial.begin(9600);
delay(2000);
int grondtal = 3;
int exponent = 5;
int uitkomst = grondtal;
for (int x=1; x<exponent; x++) {
uitkomst = uitkomst * grondtal;
}
Serial.println(uitkomst);
}
void loop() {
}
/*
*/
void setup() {
Serial.begin(9600);
delay(2000);
Serial.println("Gaat het wel goed?");
}
void loop() {
}
void setup() {
Serial.begin(9600);
delay(2000);
pinMode(A1,INPUT);
randomSeed(analogRead(A1));
int getal = 10;
Serial.println("start getal");
Serial.println(getal);
int teller = random(1, 10);
Serial.println("start teller");
Serial.println(teller);
while (getal != teller) {
Serial.println("teller");
Serial.println(teller);
teller++;
}
Serial.println("Klaar!");
}
void loop() {
}
void setup() {
Serial.begin(9600);
delay(2000);
pinMode(A1,INPUT);
randomSeed(analogRead(A1));
int getal = 5;
Serial.println("start getal");
Serial.println(getal);
int teller = random(1, 5);
Serial.println("start teller");
Serial.println(teller);
while (getal != teller) {
Serial.println("teller");
Serial.println(teller);
teller++;
}
Serial.println("Klaar!");
}
void loop() {
}
void setup() {
landjerobot.move(LandjeRobot::DIRECTION::FORWARD,10);
}
void loop() {
}
void setup() {
landjerobot.move(LandjeRobot::DIRECTION::FORWARD,10,true);
landjerobot.turn(LandjeRobot::TURN::LEFT,90,true);
landjerobot.move(LandjeRobot::DIRECTION::FORWARD,10,true);
landjerobot.turn(LandjeRobot::TURN::LEFT,90,true);
landjerobot.move(LandjeRobot::DIRECTION::FORWARD,10,true);
landjerobot.turn(LandjeRobot::TURN::LEFT,90,true);
landjerobot.move(LandjeRobot::DIRECTION::FORWARD,10,true);
landjerobot.turn(LandjeRobot::TURN::LEFT,90,true);
}
void loop() {
}
void setup() {
## Voorbeeld 1
for (int k=1; k <=4; k++) {
landjerobot.move(LandjeRobot::DIRECTION::FORWARD,10,true);
landjerobot.turn(LandjeRobot::TURN::LEFT,90,true);
}
## Voorbeeld 2
int k = 1;
while (k <= 4) {
landjerobot.move(LandjeRobot::DIRECTION::FORWARD,10,true);
landjerobot.turn(LandjeRobot::TURN::LEFT,90,true);
k++;
}
}
void loop() {
}
Geen specifieke oplossing
void setup() {
landjerobot.move(LandjeRobot::DIRECTION::FORWARD);
}
void loop() {
if (landjerobot.detectLine() != LandjeRobot::LINE::NONE ) {
landjerobot.move(LandjeRobot::DIRECTION::STOP );
}
}
void setup() {
landjerobot.move(LandjeRobot::DIRECTION::FORWARD);
}
void loop() {
if (landjerobot.detectLine() != LandjeRobot::LINE::NONE) {
if (landjerobot.detectLine() == LandjeRobot::LINE::LEFT) {
landjerobot.turn(LandjeRobot::TURN::LEFT,10,true);
}
if (landjerobot.detectLine() == LandjeRobot::LINE::RIGHT) {
landjerobot.turn(LandjeRobot::TURN::RIGHT,10,true);
}
landjerobot.move(LandjeRobot::DIRECTION::FORWARD);
}
}
Als de robot met de linker of rechter sensor een lijn detecteert (ziet). Wacht dan even om te kijken of de status van de sensor wijzigt. Wanneer de robot bij de draai markerking een beetje schuint aankomt zal de status van de sensor dan wijzigen van LandjeRobot::LINE::LEFT
of LandjeRobot::LINE::RIGHT
naar
LandjeRobot::LINE::BOTH
. Dus als je heel even wacht voordat je reageert op de status van een sensor, zal de draai markering juist gedetecteerd worden.
Hoe je dit moet gaan programmeren is onderdeel van de volgende opdracht.
void setup() {
// Start met rijden als de robot aangezet wordt en
// wacht niet
landjerobot.move(LandjeRobot::DIRECTION::FORWARD);
}
void loop() {
// Als er niet niets (!) gedetecteerd wordt door de
// reflectie sensors doe dan iets
if (landjerobot.detectLine() != LandjeRobot::LINE::NONE) {
// wacht 30 milliseconden (0,03 seconde)
delay(30);
// Als beide reflectie sensors een lijn detecteren
if (landjerobot.detectLine() == LandjeRobot::LINE::BOTH) {
// keer de robot om en wacht
landjerobot.turn(LandjeRobot::TURN::LEFT,180,true);
}
// Als de reflectie sensors links een lijn detecteren
if (landjerobot.detectLine() == LandjeRobot::LINE::LEFT) {
// Draai 10 graden naar links en wacht
landjerobot.turn(LandjeRobot::TURN::LEFT,10,true);
}
// Als de reflectie sensors rechts een lijn detecteren
if (landjerobot.detectLine() == LandjeRobot::LINE::RIGHT) {
// Draai 10 graden naar rechts en wacht
landjerobot.turn(LandjeRobot::TURN::RIGHT,10,true);
}
// Laat de robot weer verder rijden
landjerobot.move(LandjeRobot::DIRECTION::FORWARD);
} // einde if
}
int mode = 0;
void setup() {
// "Lees" de stand van de mode schakelaar
mode = landjerobot.mode();
// Als schakelaar op "1" staat
if (mode == 1) {
// Start met rijden als de robot aangezet wordt en
// wacht niet
landjerobot.move(LandjeRobot::DIRECTION::FORWARD);
}
}
void loop() {
// Als de schakelaar op "1" staat.
if (mode == 1) {
// Als er niet niets (!) gedetecteerd wordt door de
// reflectie sensors doe dan iets
if (landjerobot.detectLine() != LandjeRobot::LINE::NONE) {
// wacht 30 milliseconden (0,03 seconde)
delay(30);
// Als beide reflectie sensors een lijn detecteren
if (landjerobot.detectLine() == LandjeRobot::LINE::BOTH) {
// keer de robot om en wacht
landjerobot.turn(LandjeRobot::TURN::LEFT,180,true);
}
// Als de reflectie sensors links een lijn detecteren
if (landjerobot.detectLine() == LandjeRobot::LINE::LEFT) {
// Draai 10 graden naar links en wacht
landjerobot.turn(LandjeRobot::TURN::LEFT,10,true);
}
// Als de reflectie sensors rechts een lijn detecteren
if (landjerobot.detectLine() == LandjeRobot::LINE::RIGHT) {
// Draai 10 graden naar rechts en wacht
landjerobot.turn(LandjeRobot::TURN::RIGHT,10,true);
}
// Laat de robot weer verder rijden
landjerobot.move(LandjeRobot::DIRECTION::FORWARD);
} // einde if
} else { // Als de schakelaar op "2" staat
}
}
void setup() {
landjerobot.look(LandjeRobot::LOOK::FORWARD);
}
void loop() {
}
void setup() {
landjerobot.look(LandjeRobot::LOOK::FAR_LEFT);
delay(2000);
landjerobot.look(LandjeRobot::LOOK::FORWARD);
delay(2000);
landjerobot.look(LandjeRobot::LOOK::FAR_RIGHT);
}
void loop() {
}
void setup() {
landjerobot.mouthOpen();
delay(5000);
landjerobot.mouthClosed();
delay(5000);
landjerobot.talk(10);
}
Geluid verplaatst zich met een snelheid van 343 meter per seconde. Dus als het 12 seconden duurt voordat je de echt hoort heeft het geluid 343 * 12 of 4116 meter afgelegd. Maar het geluid moet zich verplaatsen naar de berg en weer terug. Daarom is de werkelijke afstand tot de berg 4116 meter gedeeld door 2. De afstand is dus 2058 meter of ongeveer 2km.
void setup() {
int afstand = 400;
Serial.begin(9600);
delay(2000);
// druk de gemeten afstand af zolang
// de afstand groter is dan 5 cm.
while (afstand > 5) {
afstand = landjerobot.measureDistance();
Serial.println(afstand);
}
// Laat de robot 10 seconden praten
landjerobot.talk(10);
}
De oplossing is;
De robot moet vooruit gaan rijden als de mode witch op mode “2” is ingesteld en de robot wordt aangezet. Dus in de functie setup()
moet een instructie toegevoegd worden zodat de robot vooruit gaat rijden.
Dit kan op twee manieren bereikt worden. Als eerste door een if-statement waardoor de robot vooruit gaat rijden als het in mode 2 staat.
void setup() {
// "Lees" de stand van de mode schakelaar
mode = landjerobot.mode();
// Als schakelaar op "1" staat
if (mode == 1) {
// Start met rijden als de robot aangezet wordt en
// wacht niet
landjerobot.move(LandjeRobot::DIRECTION::FORWARD);
} else {
// Als schakelaar op "2" staat
// Start met rijden als de robot aangezet wordt en
// wacht niet
landjerobot.move(LandjeRobot::DIRECTION::FORWARD);
}
}
Hetzelfde resultaat kan bereikt worden door uit het bestaande programma wat regels te verwijderen. Ongeacht in welke stand de mode schakelaar staat moet de robot vooruit gaan rijden.
void setup() {
// "Lees" de stand van de mode schakelaar
mode = landjerobot.mode();
// Start met rijden als de robot aangezet wordt en
// wacht niet
landjerobot.move(LandjeRobot::DIRECTION::FORWARD);
}
Dit is een basis versie van de programma regels om de robot binnen de lijnen te laten blijven rijden.
// Als er niet niets (!) gedetecteerd wordt door de
// reflectie sensors doe dan iets
if (landjerobot.detectLine() != LandjeRobot::LINE::NONE) {
// wacht 30 milliseconden (0,03 seconde)
delay(30);
if (landjerobot.detectLine() == LandjeRobot::LINE::LEFT) {
landjerobot.move(LandjeRobot::DIRECTION::BACKWARD, 10, true);
landjerobot.turn(LandjeRobot::TURN::RIGHT, 45, true);
}
if (landjerobot.detectLine() == LandjeRobot::LINE::RIGHT) {
landjerobot.move(LandjeRobot::DIRECTION::BACKWARD, 10, true);
landjerobot.turn(LandjeRobot::TURN::LEFT, 45, true);
}
if (landjerobot.detectLine() == LandjeRobot::LINE::BOTH) {
landjerobot.move(LandjeRobot::DIRECTION::BACKWARD, 10, true);
landjerobot.turn(LandjeRobot::TURN::LEFT, 180, true);
}
landjerobot.move(LandjeRobot::DIRECTION::FORWARD);
} // einde if
Met de basis versie van de programma regels kan de robot in een eindeloze herhaling blijven hangen. Dezelfde beweging zal dan telkens herhaald worden. Dit kan vooral gebeuren wanneer de robot in een hoek van de lijnen beland. Door wat willekeur toe te voegen wordt dit probleem opgelost.
// Als er niet niets (!) gedetecteerd wordt door de
// reflectie sensors doe dan iets
if (landjerobot.detectLine() != LandjeRobot::LINE::NONE) {
// wacht 30 milliseconden (0,03 seconde)
delay(30);
if (landjerobot.detectLine() == LandjeRobot::LINE::LEFT) {
landjerobot.move(LandjeRobot::DIRECTION::BACKWARD, random(5,10), true);
landjerobot.turn(LandjeRobot::TURN::RIGHT, random(20,90), true);
}
if (landjerobot.detectLine() == LandjeRobot::LINE::RIGHT) {
landjerobot.move(LandjeRobot::DIRECTION::BACKWARD, random(5,10), true);
landjerobot.turn(LandjeRobot::TURN::LEFT, random(20,90), true);
}
if (landjerobot.detectLine() == LandjeRobot::LINE::BOTH) {
landjerobot.move(LandjeRobot::DIRECTION::BACKWARD, random(5,10), true);
landjerobot.turn(LandjeRobot::TURN::LEFT, random(160,200), true);
}
landjerobot.move(LandjeRobot::DIRECTION::FORWARD);
} // einde if
void setup() {
// "Lees" de stand van de mode schakelaar
mode = landjerobot.mode();
// Laat de robot naar voren kijken
landjerobot.look(LandjeRobot::LOOK::FORWARD);
// Start met rijden als de robot aangezet wordt en
// wacht niet
landjerobot.move(LandjeRobot::DIRECTION::FORWARD);
}
// Meet de afstand
int afstand = landjerobot.measureDistance();
// Stop als de afstand minder dan 10 cm is.
if (afstand < 10) {
landjerobot.move(LandjeRobot::DIRECTION::STOP);
}
Naar welke richting wil je de robot sturen?; Naar links
Gebaseerd op afstand; De langst gemeten afstand.
// Meet de afstand
int afstand = landjerobot.measureDistance();
// Stop als de afstand minder dan 10 cm is.
if (afstand < 10) {
landjerobot.move(LandjeRobot::DIRECTION::STOP);
// Meet afstand links van de robot
landjerobot.look(LandjeRobot::LOOK::LEFT);
delay(1000);
int links = landjerobot.measureDistance();
// Meet afstand rechts van de robot
landjerobot.look(LandjeRobot::LOOK::RIGHT);
delay(1000);
int rechts = landjerobot.measureDistance();
// Kijk weer naar voren
landjerobot.look(LandjeRobot::LOOK::FORWARD);
if (links > rechts) {
landjerobot.turn(LandjeRobot::TURN::LEFT, 45, true);
} else {
landjerobot.turn(LandjeRobot::TURN::RIGHT, 45, true);
}
// Rijd weer vooruit
landjerobot.move(LandjeRobot::DIRECTION::FORWARD);
} // einde if
}
Wanneer de robot moet draaien, ga dan eerst een stukje achteruit om wat ruimte te maken zodat de robot vrij kan draaien.
// Meet de afstand
int afstand = landjerobot.measureDistance();
// Stop als de afstand minder dan 10 cm is.
if (afstand < 10) {
// Stop met rijden
landjerobot.move(LandjeRobot::DIRECTION::STOP);
// Meet afstand links van de robot
landjerobot.look(LandjeRobot::LOOK::LEFT);
delay(1000);
int links = landjerobot.measureDistance();
// Meet afstand rechts van de robot
landjerobot.look(LandjeRobot::LOOK::RIGHT);
delay(1000);
int rechts = landjerobot.measureDistance();
// Kijk weer naar voren
landjerobot.look(LandjeRobot::LOOK::FORWARD);
// Rij iets achteruit en draai naar links of rechts
if (links > rechts) {
landjerobot.move(LandjeRobot::DIRECTION::BACKWARD, 10, true);
landjerobot.turn(LandjeRobot::TURN::LEFT, 45, true);
} else {
landjerobot.move(LandjeRobot::DIRECTION::BACKWARD, 10, true);
landjerobot.turn(LandjeRobot::TURN::RIGHT, 45, true);
}
// Rijd weer vooruit
landjerobot.move(LandjeRobot::DIRECTION::FORWARD);
} // einde if
}
Of eenvoudiger geprogrammeerd met minder herhaling van programmaregels. Denk aan de DRY regel!
// Meet de afstand
int afstand = landjerobot.measureDistance();
// Stop als de afstand minder dan 10 cm is.
if (afstand < 10) {
// Stop met rijden
landjerobot.move(LandjeRobot::DIRECTION::STOP);
// Meet afstand links van de robot
landjerobot.look(LandjeRobot::LOOK::LEFT);
delay(1000);
int links = landjerobot.measureDistance();
// Meet afstand rechts van de robot
landjerobot.look(LandjeRobot::LOOK::RIGHT);
delay(1000);
int rechts = landjerobot.measureDistance();
// Kijk weer naar voren
landjerobot.look(LandjeRobot::LOOK::FORWARD);
// Rij iets achteruit
landjerobot.move(LandjeRobot::DIRECTION::BACKWARD, 10, true);
// Draai naar links of rechts
if (links > rechts) {
landjerobot.turn(LandjeRobot::TURN::LEFT, 45, true);
} else {
landjerobot.turn(LandjeRobot::TURN::RIGHT, 45, true);
}
// Rijd weer vooruit
landjerobot.move(LandjeRobot::DIRECTION::FORWARD);
} // einde if
}
// Meet de afstand
int afstand = landjerobot.measureDistance();
// Stop als de afstand minder dan 10 cm is.
if (afstand < 10) {
// Stop met rijden
landjerobot.move(LandjeRobot::DIRECTION::STOP);
// Mopper
landjerobot.talk(5);
// Meet afstand links van de robot
landjerobot.look(LandjeRobot::LOOK::LEFT);
delay(1000);
int links = landjerobot.measureDistance();
// Meet afstand rechts van de robot
landjerobot.look(LandjeRobot::LOOK::RIGHT);
delay(1000);
int rechts = landjerobot.measureDistance();
// Kijk weer naar voren
landjerobot.look(LandjeRobot::LOOK::FORWARD);
// Rij iets achteruit
landjerobot.move(LandjeRobot::DIRECTION::BACKWARD, 10, true);
// Draai naar links of rechts
if (links > rechts) {
landjerobot.turn(LandjeRobot::TURN::LEFT, 45, true);
} else {
landjerobot.turn(LandjeRobot::TURN::RIGHT, 45, true);
}
// Rijd weer vooruit
landjerobot.move(LandjeRobot::DIRECTION::FORWARD);
} // einde if
}
// Meet de afstand
int afstand = landjerobot.measureDistance();
// Stop als de afstand minder dan 10 cm is.
if (afstand < 10) {
// Controleer de gemeten afstand
int totaalafstand = 0;
for (int x=1; x<=5;x++) {
totaalafstand = totaalafstand + landjerobot.measureDistance();
}
if (totaalafstand < 50) {
// Stop met rijden
landjerobot.move(LandjeRobot::DIRECTION::STOP);
// Mopper
landjerobot.talk(5);
// Meet afstand links van de robot
landjerobot.look(LandjeRobot::LOOK::LEFT);
delay(1000);
int links = landjerobot.measureDistance();
// Meet afstand rechts van de robot
landjerobot.look(LandjeRobot::LOOK::RIGHT);
delay(1000);
int rechts = landjerobot.measureDistance();
// Kijk weer naar voren
landjerobot.look(LandjeRobot::LOOK::FORWARD);
if (links > rechts) {
landjerobot.move(LandjeRobot::DIRECTION::BACKWARD, 10, true);
landjerobot.turn(LandjeRobot::TURN::LEFT, 45, true);
} else {
landjerobot.move(LandjeRobot::DIRECTION::BACKWARD, 10, true);
landjerobot.turn(LandjeRobot::TURN::RIGHT, 45, true);
}
// Rijd weer vooruit
landjerobot.move(LandjeRobot::DIRECTION::FORWARD);
} // einde if
}
#include <LandjeRobot.h>
// Aansluitingen van de robot motors.
const int motor[2][4] = {
{2, 3, 4, 5}, {6, 7, 8, 9}
} ;
// Aansluitingen van de lijn sensoren
const int lineSensors[2] = { 10, 11 } ;
// Lichte vloer met donker lijnen = true
// Donkere vloer met lichte lijnen = false
const bool lineSensorInverse = true ;
// Omtrek van de wielen in cm
const int wheelRadiusMM = 21 ;
// Afstand tussen de wielen in cm
const int trackWidthMM = 98 ;
// Aansluiting van de ultrasoon sensor
int ultraPin = 13 ;
// Aansluiting van de servo
int servoPin = 14 ;
// Aansluiting van het led
int mouthledPin = 15 ;
// Aansluiting van de mode schakelaar
int switchPin = 0 ;
LandjeRobot landjerobot(motor, LandjeRobotMotorController::STEPMODE::FULL_STEP, wheelRadiusMM , trackWidthMM, lineSensors, lineSensorInverse, ultraPin, servoPin, mouthledPin, switchPin) ;
int mode = 0;
void setup() {
// "Lees" de stand van de mode schakelaar
mode = landjerobot.mode();
// Laat de robot naar voren kijken
landjerobot.look(LandjeRobot::LOOK::FORWARD);
// Start met rijden als de robot aangezet wordt en
// wacht niet
landjerobot.move(LandjeRobot::DIRECTION::FORWARD);
}
void loop() {
// Als de schakelaar op "1" staat.
if (mode == 1) {
// Als er niet niets (!) gedetecteerd wordt door de
// reflectie sensors doe dan iets
if (landjerobot.detectLine() != LandjeRobot::LINE::NONE) {
// wacht 30 milliseconden (0,03 seconde)
delay(30);
// Als beide reflectie sensors een lijn detecteren
if (landjerobot.detectLine() == LandjeRobot::LINE::BOTH) {
// keer de robot om en wacht
landjerobot.turn(LandjeRobot::TURN::LEFT,180,true);
}
// Als de reflectie sensors links een lijn detecteren
if (landjerobot.detectLine() == LandjeRobot::LINE::LEFT) {
// Draai 10 graden naar links en wacht
landjerobot.turn(LandjeRobot::TURN::LEFT,10,true);
}
// Als de reflectie sensors rechts een lijn detecteren
if (landjerobot.detectLine() == LandjeRobot::LINE::RIGHT) {
// Draai 10 graden naar rechts en wacht
landjerobot.turn(LandjeRobot::TURN::RIGHT,10,true);
}
// Laat de robot weer verder rijden
landjerobot.move(LandjeRobot::DIRECTION::FORWARD);
} // einde if
} else { // Als de schakelaar op "2" staat
// Als er niet niets (!) gedetecteerd wordt door de
// reflectie sensors doe dan iets
if (landjerobot.detectLine() != LandjeRobot::LINE::NONE) {
// wacht 30 milliseconden (0,03 seconde)
delay(30);
if (landjerobot.detectLine() == LandjeRobot::LINE::LEFT) {
landjerobot.move(LandjeRobot::DIRECTION::BACKWARD, 10, true);
landjerobot.turn(LandjeRobot::TURN::RIGHT, 45, true);
}
if (landjerobot.detectLine() == LandjeRobot::LINE::RIGHT) {
landjerobot.move(LandjeRobot::DIRECTION::BACKWARD, 10, true);
landjerobot.turn(LandjeRobot::TURN::LEFT, 45, true);
}
if (landjerobot.detectLine() == LandjeRobot::LINE::BOTH) {
landjerobot.move(LandjeRobot::DIRECTION::BACKWARD, 10, true);
landjerobot.turn(LandjeRobot::TURN::LEFT, 180, true);
}
landjerobot.move(LandjeRobot::DIRECTION::FORWARD);
} // einde if
// Meet de afstand
int afstand = landjerobot.measureDistance();
// Stop als de afstand minder dan 10 cm is.
if (afstand < 10) {
// Controleer de gemeten afstand
int totaalafstand = 0;
for (int x=1; x<=5;x++) {
totaalafstand = totaalafstand + landjerobot.measureDistance();
}
if (totaalafstand < 50) {
// Stop met rijden
landjerobot.move(LandjeRobot::DIRECTION::STOP);
// Mopper
landjerobot.talk(5);
// Meet afstand links van de robot
landjerobot.look(LandjeRobot::LOOK::LEFT);
delay(1000);
int links = landjerobot.measureDistance();
// Meet afstand rechts van de robot
landjerobot.look(LandjeRobot::LOOK::RIGHT);
delay(1000);
int rechts = landjerobot.measureDistance();
// Kijk weer naar voren
landjerobot.look(LandjeRobot::LOOK::FORWARD);
if (links > rechts) {
landjerobot.move(LandjeRobot::DIRECTION::BACKWARD, 10, true);
landjerobot.turn(LandjeRobot::TURN::LEFT, 45, true);
} else {
landjerobot.move(LandjeRobot::DIRECTION::BACKWARD, 10, true);
landjerobot.turn(LandjeRobot::TURN::RIGHT, 45, true);
}
// Rijd weer vooruit
landjerobot.move(LandjeRobot::DIRECTION::FORWARD);
}
}
}
}