Stap 15:
Ik begon met een Randofo tutorial en gebruikte code door dougstrickland als basis voor deze bewerking. Een paar dingen moeten worden opgemerkt. Motor huidige verhoogt wanneer de motoren draaien voor het eerst start en wanneer ze weerstand (een muur tegenkomen). Meet ik de huidige nadat de motoren had een tweede te gaan--anders, ik zal altijd hoge stroom te detecteren en krijgen in de problemen. Als u op tapijt werkt, wellicht de "analogRead" waarden hoger worden omdat er meer werk nodig is van de motoren.
De glimlach solenoïde en staart kwispelen worden beheerd door een relais Exploitatiedoor pin 7 van de Arduino.
int valm = 0;
int valm1 = 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 (dirA, OUTPUT);
pinMode (brakeA, OUTPUT);
pinMode (dirB, OUTPUT);
pinMode (brakeB, OUTPUT);
pinMode (Relais, uitvoer);
digitalWrite (dirA, hoge); //forward A
digitalWrite (brakeA, laag); //release rem A
analogWrite (pwmA, 255); //full snelheid A
digitalWrite (dirB, hoge);
digitalWrite (brakeB, laag);
analogWrite (pwmB, 255);
digitalWrite (Relais, laag);
vertraging (1000); //get verleden opstarten huidige
}
void loop {}
digitalWrite (dirA, hoge); //forward A
digitalWrite (brakeA, laag); //release rem A
analogWrite (pwmA, 255); //full snelheid A
digitalWrite (dirB, hoge);
digitalWrite (brakeB, laag);
analogWrite (pwmB, 255);
valm=analogRead(0);
valm1=analogRead(1);
Als (valm > 45 of valm1 > 45) {}
digitalWrite (brakeA, hoge);
digitalWrite (brakeB, hoge);
digitalWrite (dirA, laag); //forward A
digitalWrite (brakeA, laag); //release rem A
analogWrite (pwmA, 255); //full snelheid A
digitalWrite (dirB, laag);
digitalWrite (brakeB, laag);
analogWrite (pwmB, 255);
delay(2000);
digitalWrite (brakeA, hoge); //stop één wiel
delay(1000);
digitalWrite (brakeB, hoge); //stop andere wiel
digitalWrite (Relais, hoge); //smile en staart op
delay(2000);
digitalWrite (Relais, laag); //turn glimlach en staart af
beginnen met beide wielen vooruit
digitalWrite (dirA, hoge); //forward A
digitalWrite (brakeA, laag); //release rem A
analogWrite (pwmA, 255); //full snelheid A
digitalWrite (dirB, hoge);
digitalWrite (brakeB, laag);
analogWrite (pwmB, 255);
vertraging (1000); //get verleden opstarten huidige
}}