Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Servo.h>
- // motor one
- int enA = 9; //enable PWM for right motor
- int rightFwd = 7; //right forward
- int rightBack = 6; //right backward
- // motor two
- int enB = 10; //enable PWM for left motor
- int leftFwd = 5; //left forward
- int leftBack = 4; //left backward
- //ultrasonic sensor
- int trig = 2;
- int echo = 3;
- //servo for looking left and right
- //int servoPin = 8;
- int runSpeed = 255;
- int distance;
- int leftDistance;
- int rightDistance;
- //int servoCenter = 100;
- //int lookAngle = 60;
- //Servo servoMotor;
- void setup()
- {
- Serial.begin(9600);
- pinMode(enA, OUTPUT);
- pinMode(enB, OUTPUT);
- pinMode(rightFwd, OUTPUT);
- pinMode(rightBack, OUTPUT);
- pinMode(leftFwd, OUTPUT);
- pinMode(leftBack, OUTPUT);
- pinMode(trig, OUTPUT);
- pinMode(echo, INPUT);
- // pinMode(servoPin, OUTPUT);
- // servoMotor.attach(servoPin);
- // servoMotor.write(servoCenter);
- }
- void loop()
- {
- test();
- }
- void goForward()
- {
- Serial.println("Going forward");
- analogWrite(enA, runSpeed*3/4);
- analogWrite(enB, runSpeed*3/4);
- digitalWrite(leftBack,LOW);
- digitalWrite(leftFwd,HIGH);
- digitalWrite(rightBack,LOW);
- digitalWrite(rightFwd,HIGH);
- }
- void goBackward()
- {
- Serial.println("Going backward");
- analogWrite(enA, runSpeed*3/4);
- analogWrite(enB, runSpeed*3/4);
- digitalWrite(leftBack,HIGH);
- digitalWrite(leftFwd,LOW);
- digitalWrite(rightBack,HIGH);
- digitalWrite(rightFwd,LOW);
- }
- void turnLeft()
- {
- Serial.println("Turning left");
- analogWrite(enA, runSpeed*3/4);
- analogWrite(enB, runSpeed*3/4);
- digitalWrite(leftBack,HIGH);
- digitalWrite(leftFwd,LOW);
- digitalWrite(rightBack,LOW);
- digitalWrite(rightFwd,HIGH);
- }
- void turnRight()
- {
- Serial.println("Turning right");
- analogWrite(enA, runSpeed*3/4);
- analogWrite(enB, runSpeed*3/4);
- digitalWrite(leftBack,LOW);
- digitalWrite(leftFwd,HIGH);
- digitalWrite(rightBack,HIGH);
- digitalWrite(rightFwd,LOW);
- }
- void allStop()
- {
- Serial.println("Stopping");
- digitalWrite(leftBack,LOW);
- digitalWrite(leftFwd,LOW);
- digitalWrite(rightBack,LOW);
- digitalWrite(rightFwd,LOW);
- }
- int getDistance()
- {
- // Getting the distance from the sensor
- long duration, distance;
- digitalWrite(trig,HIGH);
- delayMicroseconds(1000);
- digitalWrite(trig, LOW);
- duration=pulseIn(echo, HIGH);
- distance =(duration/2)/29.1;
- Serial.print(distance);
- Serial.println("CM");
- delay(10);
- return distance;
- }
- //int lookRight()
- //{
- // Serial.println("Looking right\n");
- // servoMotor.write(50);
- // delay(500);
- // int distance = getDistance();
- // delay(100);
- // servoMotor.write(servoCenter - lookAngle);
- // delay(100);
- // servoMotor.write(servoCenter);
- // return distance;
- //}
- //
- //int lookLeft()
- //{
- // Serial.println("Looking left\n");
- // servoMotor.write(servoCenter + lookAngle);
- // delay(500);
- // int distance = getDistance();
- // delay(100);
- // servoMotor.write(servoCenter);
- // return distance;
- // delay(100);
- //}
- void test()
- {
- getDistance();
- goForward();
- delay(1000);
- allStop();
- delay(1000);
- goBackward();
- delay(1000);
- allStop();
- delay(1000);
- turnLeft();
- delay(1000);
- allStop();
- delay(1000);
- turnRight();
- delay(1000);
- allStop();
- delay(1000);
- // lookLeft();
- // lookRight();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement