Arduíno: Robô com sensor ultrassônico

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ô

//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);
 */
}