Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int E1 = 5; //E1 pin -- links
- int M1 = 4; //M1 pin -- links
- int E2 = 2; //E2 pin -- rechts
- int M2 = 3; //M2 pin -- rechts
- int trackLPin = 15;
- int trackRPin = 14;
- boolean trackL = false;
- boolean trackR = false;
- int velocity = 100;
- void setup()
- {
- pinMode(M1, OUTPUT);
- pinMode(M2, OUTPUT);
- Serial.begin(9600);
- pinMode(trackLPin, INPUT);
- pinMode(trackRPin, INPUT);
- }
- void loop ()
- {
- forward(velocity);
- /*initLinetrack();
- Serial.print(trackR);
- Serial.println(trackL);
- while (trackR == true && trackL == true)
- {
- initLinetrack();
- forward(velocity);
- }
- while (trackR == false && trackL == false)
- {
- initLinetrack();
- corner(1, 50, 150);
- }
- while (trackR == true && trackL == false)
- {
- initLinetrack();
- corner(0, 20, 150);
- }
- while (trackR == false && trackL == true)
- {
- initLinetrack();
- corner(1, 20, 150);
- }
- */
- }
- void initLinetrack()
- {
- trackL = (boolean)digitalRead(trackLPin);
- trackR = (boolean)digitalRead(trackRPin);
- }
- void forward (int velocityThis)
- {
- digitalWrite(M1, HIGH); //Drehrichtung
- digitalWrite(M2, HIGH); // Drehrichtung
- analogWrite(E1, velocityThis); // PWM Speed Control
- analogWrite(E2, velocityThis); //mit analogWrite werden PWM-Signale angegeben
- }
- void stopp (int duration)
- {
- digitalWrite(M1, LOW); //Drehrichtung
- digitalWrite(M2, HIGH); // Drehrichtung
- analogWrite(E1, 0); // PWM Speed Control
- analogWrite(E2, 0); //mit analogWrite werden PWM-Signale angegeben
- delay(duration);
- }
- void corner (int dir, int duration, int g)
- {
- if (dir == 0) //links
- {
- digitalWrite(M1, LOW);
- digitalWrite(M2, LOW);
- analogWrite(E1, 0);
- analogWrite(E2, g);
- }
- else if (dir == 1) //rechts
- {
- digitalWrite(M1, HIGH);
- digitalWrite(M2, HIGH);
- analogWrite(E1, g);
- analogWrite(E2, 0);
- }
- delay(2.5 * duration);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement