Stap 27:
analogRead(2) waarden bepalen het trekkerpunt voor de fotocel.
analogRead(0) en analogRead(1) waarden bepalen de huidige waardoor de Arduino te denken dat het pakket heeft getroffen een obstakel. Als u op tapijt uitvoert, wellicht de waarden hoger worden. Als u de motoren sneller uitvoert, kan de waarde moeten worden hoger.
Merk op dat de "opstarten huidige" op motors groter is dan de "run" huidige--dat is waarom er zich een vertraging voor voorwaarts controleren voordat de huidige waarden.
int valm = 0;
int valm1 = 0;
int trigger = 0;
int triggerlock = 0;
Const int pwmA = 3;
Const int pwmB = 11;
Const int brakeA = 9;
Const int brakeB = 8;
Const int dirA = 12;
Const int dirB = 13;
Const int relay = 7;
VOID Setup {}
pinMode (Relais, uitvoer);
digitalWrite (Relais, hoge);
vertraging (500); //leave Relais op.5 seconde--maakt "eek" geluid
digitalWrite (Relais, laag);
}
void loop {}
trigger=analogRead(2);
Als (trigger < 900 of triggerlock > 0) {//light schijnt op de sensor nu of eerder
triggerlock = 10; //don't licht opnieuw controleren
pinMode (dirA, OUTPUT);
pinMode (brakeA, OUTPUT);
pinMode (dirB, OUTPUT);
pinMode (brakeB, OUTPUT);
digitalWrite (dirA, hoge); //forward A
digitalWrite (brakeA, laag); //release rem A
analogWrite (pwmA, 150); //set snelheid A
digitalWrite (dirB, hoge); //forward B motor
digitalWrite (brakeB, laag);
analogWrite (pwmB, 150); //set snelheid B
valm=analogRead(0);
valm1=analogRead(1);
Als (valm > 520 of valm1 > 520) {}
digitalWrite (Relais, hoge); //turn op "eek" geluid
delay(100);
digitalWrite (Relais, laag);
digitalWrite (brakeA, hoge); //stop motor A
digitalWrite (brakeB, hoge); //stop Motor B
digitalWrite (dirA, laag); //reverse A
digitalWrite (brakeA, laag); //release rem A
analogWrite (pwmA, 150); //set snelheid A
digitalWrite (dirB, laag); //reverse B
digitalWrite (brakeB, laag);
analogWrite (pwmB, 150); //set snelheid B
delay(300);
digitalWrite (brakeA, hoge); //stop één wiel
delay(400);
digitalWrite (brakeB, hoge); //stop andere wiel
beginnen met beide wielen vooruit
digitalWrite (dirA, hoge); //forward A
digitalWrite (brakeA, laag); //release rem A
analogWrite (pwmA, 150); //set snelheid A
digitalWrite (dirB, hoge); //forward B
digitalWrite (brakeB, laag);
analogWrite (pwmB, 150); //set snelheid B
vertraging (700); //get verleden opstarten huidige
}}}