Bom pessoal é o seguinte eu to tentando criar um código que o sensor Ultrasonico mapeie o local ai se o objeto estiver a 15 cm do sensor ultrasonico , ele manda o comando para o motor girar ao contrario e seguir reto até encontrar um outro local que fassa ele girar novamente e que ele va acelerando aos poucos , só que eu encontrei um problema quando eu conecto a placa controladora do rover ao motor o sensor ultrasonico fica em 0 constantemente. Se alguen puder me ajudar eu agradeceria muito.
Segue abaixo o código criado:
const int Trig = 7;
const int Echo = 8;
int Dados;
int Motor1 = 5;
int Motor2 = 6;
void setup(){
Serial.begin(9600);
pinMode(Trig , OUTPUT);
pinMode(Echo , INPUT);
}
void loop(){
digitalWrite(Trig , LOW);
delayMicroseconds(2);
digitalWrite(Trig , HIGH);
delayMicroseconds(10);
unsigned long Duration = pulseIn (Echo , HIGH);
int Distancia = Duration /58;
Serial.print("Distancia : ");
Serial.println(Distancia);
delay(1000);
Dados = analogRead(Distancia);
if (Distancia <= 15){
digitalWrite(Motor1, HIGH);
digitalWrite(Motor2, LOW);
}
else {
digitalWrite(Motor1, HIGH);
digitalWrite(Motor2, HIGH);
}
}
Tags:
Amigo eu fis umas modificaçoes no seu codigo segue abaixo(se for isso ue eu entendi):
#define trigPin 7
#define echoPin 8
#define motor1 5
#define motor2 6
void setup() {
Serial.begin (9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(motor1, OUTPUT);
pinMode(motor2, OUTPUT);
}
void loop() {
long duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration/2) / 29.1;
if (distance >= 10 ||distance <= 0){
Serial.println("Nada ao alcance!");
digitalWrite(motor1, HIGH);
digitalWrite(motor2, HIGH);
}
else {
Serial.print(distance);
Serial.println(" cm");
digitalWrite(motor1, LOW);
digitalWrite(motor2, HIGH);
}
delay(5);
}
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por