Bibliotecas
Inclua as bibliotecas na pasta “libraries” dentro da pasta de instalação do Arduíno que normalmente fica em “c:\arquivos de programas\Arduino”.
Para sensor ultrasônico: https://github.com/filipeflop/Ultrasonic/archive/master.zip
Para Shield AFMOTOR: https://github.com/adafruit/Adafruit-Motor-Shield-library/zipball/master
Código exemplo para o Robô
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | //Carrega a biblioteca do sensor ultrassonico #include <Ultrasonic.h> //Carrega a biblioteca do Shield AFMOTOR #include <AFMotor.h> //Define os pinos para o trigger e echo #define pino_trigger 9 #define pino_echo 10 AF_DCMotor motorD(2); //seleciona o motor 2 AF_DCMotor motorE(3); //seleciona o motor 3 //Inicializa o sensor nos pinos definidos acima Ultrasonic ultrasonic(pino_trigger, pino_echo); void setup() {} void frente( int tempo){ motorE.setSpeed(255); motorD.setSpeed(255); motorE.run(FORWARD); motorD.run(FORWARD); delay(tempo); } void re( int tempo){ motorE.setSpeed(255); motorD.setSpeed(255); motorE.run(BACKWARD); motorD.run(BACKWARD); delay(tempo); } void parar( int tempo){ motorE.setSpeed(0); motorD.setSpeed(0); motorE.run(BACKWARD); motorD.run(BACKWARD); delay(tempo); } void esquerda( int tempo){ motorE.setSpeed(200); motorD.setSpeed(100); motorE.run(FORWARD); motorD.run(BACKWARD); delay(tempo); } void direita( int tempo){ motorE.setSpeed(2000); motorD.setSpeed(100); motorE.run(FORWARD); motorD.run(BACKWARD); delay(tempo); } void loop() { //Faz a leitura da distancia do sensor float centimetros; long microsec = ultrasonic.timing(); centimetros = ultrasonic.convert(microsec, Ultrasonic::CM); //final do código para a leitura do sensor if (centimetros<10){ parar(1000); } frente(100); /* parar(150); esquerda(450); parar(150); esquerda(450); parar(150); esquerda(450); parar(150); direita(350); parar(150); direita(350); parar(150); direita(350); parar(150); */ } |