Prezados, estou com problema na programação de meu Arduino, dá erro de “expected constructor, destructor, or type conversion before ‘ultrasonic’” na linha abaixo do código.
Erro:
Ultrasonic ultrasonic(pino_trigger, pino_echo);
Código:
//Carrega a biblioteca do sensor ultrassonico
#include <Ultrasonic.h> //Biblioteca sensor ultrassonico
//#include <AFMotor.h> //Biblioteca comandos do motor (FORWARD, BACKWARD, RELEASE)
#include <Servo.h> //Biblioteca para manuseio dos motores
***********************************************//Define os pinos
//Sensor ultrasonico
#define pino_trigger 4
#define pino_echo 5
//Led
#define pin_led 13 //Define pino para led, contar delay
//Motores
#define motor_dir 1 //Define pino motor direito
#define motor_esq 2 //Define pino motor esquerdo
//Sensor de linha
#define linha_dir 6 //Define pino sensor de linha direito
#define linha_esq 7 //Define pino sensor de linha esquerdo
//Inicializa o sensor ultrassonico / distância
Ultrasonic ultrasonic(pino_trigger, pino_echo);
void setup()
{
int cont_delay; //delay
pinMode(pin_led, OUTPUT);
pinMode(linha_dir, INPUT);
pinMode(linha_esq, INPUT);
for(cont_delay = 0; cont_delay<5; cont_delay++){
//digitalWrite(pin_led, HIGH);
Serial.println(cont_delay);
delay(700);
//digitalWrite(pin_led, LOW);
Serial.println(cont_delay);
delay(300);
Serial.println(cont_delay);
}
Serial.begin(9600);
Serial.println("Lendo dados do sensor...");
}
void frente()//Andar para frente
{
motor_esq.setSpeed(180);
motor_dir.setSpeed(180);
motor_esq.run(FORWARD);
motor_dir.run(FORWARD);
delay(1000);
motor_esq.setSpeed(0);
motor_dir.setSpeed(0);
motor_esq.run(RELEASE);
motor_dir.run(RELEASE);
delay(300);
}
void re() //Andar de trás
{
motor_esq.setSpeed(180);
motor_dir.setSpeed(180);
motor_esq.run(BACKWARD);
motor_dir.run(BACKWARD);
motor.setSpeed(0);
motor.setSpeed(0);
motor_esq.run(RELEASE);
motor_dir.run(RELEASE);
}
void direita()//Virar para a direita
{
motor_esq.setSpeed(180);
motor_dir.setSpeed(0);
motor_esq.run(FORWARD);
motor_dir.run(FORWARD);
delay(300);
motor_esq.setSpeed(0);
motor_dir.setSpeed(0);
motor_esq.run(BACKWARD);
motor_dir.run(BACKWARD);
delay(300);
}
void esquerda() //Vira para a esquerda
{
motor_esq.setSpeed(0);
motor_dir.setSpeed(180);
motor_esq.run(FORWARD);
motor_dir.run(FORWARD);
delay(300);
motor_esq.setSpeed(0);
motor_dir.setSpeed(0);
motor_esq.run(RELEASE);
motor_dir.run(RELEASE);
delay(300);
}
void direita90() //Vira para a direita em 90 graus
{
motor_esq.setSpeed(90);
motor_dir.setSpeed(0);
motor_esq.run(FORWARD);
motor_dir.run(FORWARD);
delay(300);
motor_esq.setSpeed(0);
motor_dir.setSpeed(0);
motor_esq.run(FORWARD);
motor_dir.run(FORWARD);
delay(300);
}
void esquerda90() //Vira para a esquerda em 90 graus
{
motor_esq.setSpeed(0);
motor_dir.setSpeed(90);
motor_esq.run(FORWARD);
motor_dir.run(FORWARD);
delay(300);
motor_esq.setSpeed(0);
motor_dir.setSpeed(0);
motor_esq.run(RELEASE);
motor_dir.run(RELEASE);
delay(300);
}
void giro() //Gira o robo em 180 graus
{
motor_esq.setSpeed(180);
motor_dir.setSpeed(0);
motor_esq.run(FORWARD);
motor_dir.run(FORWARD);
delay(300);
motor_esq.setSpeed(0);
motor_dir.setSpeed(0);
motor_esq.run(RELEASE);
motor_dir.run(RELEASE);
delay(300);
}
void parar()
{
motor_esq.setSpeed(0);
motor_dir.setSpeed(0);
motor_esq.run(RELEASE);
motor_dir.run(RELEASE);
delay(300);
}
void loop()
{
/*Le as informacoes do sensor de distância
float cm;
long microsec = ultrasonic.timing();
cm = ultrasonic.convert(microsec, Ultrasonic::CM);
Serial.print("Distancia em cm: ");
Serial.print(cm);
Serial.println();
delay(1000);
*/
//Movimentos
}