Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Definicoes pinos Arduino ligados a entrada da Ponte H
- #include <Ultrasonic.h>
- #define TRIGGER_PIN 13
- #define ECHO_PIN 12
- // RIGHT
- #define IN1 4
- #define IN2 5
- // LEFT
- #define IN3 6
- #define IN4 7
- boolean flag = true;
- long rn1, rn2;
- Ultrasonic ultrasonic(TRIGGER_PIN, ECHO_PIN);
- void setup(){
- //Define os pinos como saida
- pinMode(IN1, OUTPUT);
- pinMode(IN2, OUTPUT);
- pinMode(IN3, OUTPUT);
- pinMode(IN4, OUTPUT);
- Serial.begin(9600);
- randomSeed(analogRead(0));
- rn1 = random(2);
- rn2 = random(300,700);
- }
- void loop(){
- float cm = readSensor();
- if (cm < 20){
- if (rn1 == 0){
- turnLeft();
- delay(rn2);
- }
- else {
- turnRight();
- delay(rn2);
- }
- rn1 = random(2);
- rn2 = random(300,800);
- Serial.print("Random: ");
- Serial.print(rn1);
- Serial.print(" - ");
- Serial.println(rn2);
- }
- else {
- moveForward();
- delay(200);
- }
- stopMoving();
- delay(200);
- }
- float readSensor(){
- float cm, m;
- int i;
- for (i=0; i<5; i++){
- long microsec = ultrasonic.timing();
- cm = ultrasonic.convert(microsec, Ultrasonic::CM);
- if(i==0 || cm < m){
- m = cm;
- }
- delay(30);
- }
- Serial.print("CM: ");
- Serial.println(m);
- return m;
- }
- void moveForward(){
- digitalWrite(IN1, HIGH);
- digitalWrite(IN2, LOW);
- digitalWrite(IN3, LOW);
- digitalWrite(IN4, HIGH);
- }
- void moveBackward(){
- digitalWrite(IN1, LOW);
- digitalWrite(IN2, HIGH);
- digitalWrite(IN3, HIGH);
- digitalWrite(IN4, LOW);
- }
- void turnLeft(){
- digitalWrite(IN1, HIGH);
- digitalWrite(IN2, LOW);
- digitalWrite(IN3, HIGH);
- digitalWrite(IN4, LOW);
- }
- void turnRight(){
- digitalWrite(IN1, LOW);
- digitalWrite(IN2, HIGH);
- digitalWrite(IN3, LOW);
- digitalWrite(IN4, HIGH);
- }
- void stopMoving(){
- digitalWrite(IN1, LOW);
- digitalWrite(IN2, LOW);
- digitalWrite(IN3, LOW);
- digitalWrite(IN4, LOW);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement