Boa noite pessoal,
Eu preciso construir um robô seguidor de linha para um trabalho da faculdade, eu montei a estrutura abaixo está funcionando, só não consigo fazer ele seguir a linha direito, na primeira curva ele se perde. Quando seguro o carro ele faz as curvas corretamente.
Os sensores são 3 QRE1113, mas no momento estou usando no código apenas 2, o código abaixo foi o que escrevi, não sei se tem como melhorar para ter uma resposta mais rápida e o carrinho se manter sobre a linha branca. Se alguém puder dar alguma dica eu agradeço desde já.
int sensor_esq = A0;
int valor_esq;
int sensor_dir = A2;
int valor_dir;
int motor_esq_f = 2;
int motor_esq_t = 4;
int motor_dir_f = 7;
int motor_dir_t = 12;
int pwm_esq = 3;
int pwm_dir = 5;
void setup() {
Serial.begin(9600);
pinMode(motor_esq_f, OUTPUT);
pinMode(motor_esq_t, OUTPUT);
pinMode(motor_dir_f, OUTPUT);
pinMode(motor_dir_t, OUTPUT);
delay(1500);
}
void loop() {
valor_esq = analogRead(sensor_esq);
//valor_cen = analogRead(sensor_cen);
valor_dir = analogRead(sensor_dir);
if(valor_esq>500&&valor_dir>500){
digitalWrite(motor_esq_f, HIGH);
digitalWrite(motor_dir_f, HIGH);
analogWrite(pwm_esq, 70);
analogWrite(pwm_dir, 80);
}
if(valor_esq<500){
digitalWrite(motor_esq_f, LOW);
digitalWrite(motor_dir_f, HIGH);
analogWrite(pwm_esq, 0);
analogWrite(pwm_dir, 100);
}
if(valor_dir<500){
digitalWrite(motor_esq_f, HIGH);
digitalWrite(motor_dir_f, LOW);
analogWrite(pwm_esq, 90);
analogWrite(pwm_dir, 0);
}
if (valor_esq<500&&valor_dir<500){
digitalWrite(motor_esq_f, HIGH);
digitalWrite(motor_dir_f, HIGH);
analogWrite(pwm_esq, 90);
analogWrite(pwm_dir, 100);
}
}
Tags:
As respostas para este tópico estão encerradas.
Dica simples, mas você não pode fazer o carrinho andar mais devagar, assim ele não se perderia nas curvas ?
Não sei porque mas o tópico ficou duplicado http://labdegaragem.com/forum/topics/rob-seguidor-de-linha?xg_sourc...
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por