Линия, следующая за проблемами робота

Я делаю линию следующего робота с помощью Arduino Uno, но каждый раз, когда я соединяю все вместе, загружаю код и ставлю датчики на линию, двигатель не работает.

Я использую двигатель L298n и Arduino Uno. Вот принципиальная схема, которую я использую:

Motor circuit

И вот этот код:

// First the line following (IR) sensors
const int irLeft = 2; //Left line sensor is on pin A2
const int irRight = 3; //Right line sensor is on pin A3

//Motor A (Right)
int enableA = 11;
int pinA1 = 10;
int pinA2 = 9;

//Motor B (Left)
int enableB = 7;
int pinB1 = 6;
int pinB2 = 5;
//Define Run variable
boolean run;
void setup() {
pinMode(enableA, OUTPUT);
pinMode(pinA1, OUTPUT);
pinMode(pinA2, OUTPUT);
pinMode(enableB, OUTPUT);
pinMode(pinB1, OUTPUT);
pinMode(pinB2, OUTPUT);
}
void loop(){
  int valleft= analogRead(irLeft);
   int leftsensor = analogRead(A2);  //in the side of motor B
  int rightsensor = analogRead(A3);  //in the side of motor A

   if ((leftsensor >= 700) && (rightsensor >= 700))
     forward();
        else if((leftsensor <= 150) && (rightsensor <= 150))
     backward();
     else if((leftsensor <= 150) && (rightsensor >= 700))
     turnright();
     else if((leftsensor >= 700) && (rightsensor <= 150))
     turnleft();
}
//Motors Foward
void forward(){
  digitalWrite(pinA1,HIGH);
  digitalWrite(pinA2,LOW);
  digitalWrite(pinB1,HIGH);
  digitalWrite(pinB2,LOW);
}
// Motors Backward
void backward(){
  digitalWrite(pinA1,LOW);
  digitalWrite(pinA2,HIGH);
  digitalWrite(pinB1,LOW);
  digitalWrite(pinB2,HIGH);
}
// turn left
void turnleft(){
  digitalWrite(pinA1,HIGH);
  digitalWrite(pinA2,LOW);
  digitalWrite(pinB1,LOW);
  digitalWrite(pinB2,HIGH);
}
// turn right 
void turnright(){
  digitalWrite(pinA1,LOW);
  digitalWrite(pinA2,HIGH);
  digitalWrite(pinB1,HIGH);
  digitalWrite(pinB2,LOW);
}

, 👍-4

Обсуждение

Вы уступаете дорогу недостаточно полной информации. Вот как звучит вопрос: "У меня есть компьютер для игр, но он не работает. Как я могу его починить?" Сможете ли вы что-нибудь с этим сделать? Думаю, что нет, @chrisl

я попробую угадать .... у вас плохой мотор, купите другой .... вот еще одна догадка ... ваша программа плоха, перепишите ее ........... вы не дали никакой информации, поэтому вы будете получать только догадки, а не полезные ответы, @jsotola

Я редактирую вопрос, @Sanarya

Вы пробовали очень простой скетч, чтобы просто запустить свои двигатели в одном направлении и не делать ничего другого? Если нет, попробуйте. Если двигатели работают, то мы можем исключить проблему с проводкой двигателя или водителем., @chrisl

проверьте один раз индивидуально ваш ИК-датчик и драйвер работают правильно, @Mohanapriya v


1 ответ


1

Подключайте, записывайте и отлаживайте только одну часть вашего проекта за раз.

  • Ты можешь просто завести мотор?
  • Можете ли вы запустить его в любом направлении?
  • Может ли этот код сделать то же самое для любого двигателя?
  • Вы можете управлять двумя двигателями?
  • Можете ли вы настроить любой из них на движение вперед, назад или остановку независимо друг от друга?

Затем датчики (пока забудьте о двигателях):

  • Можете ли вы прочитать правильный датчик и обнаружить свет или темноту?
  • Можете ли вы адаптировать код для считывания любого датчика?

Затем, используя вышеприведенные фрагменты и знания:

  • Можете ли вы заставить один из двигателей работать или останавливаться в ответ на один из датчиков?

Теперь у вас достаточно известных работ! - собрать их в устройство, которое использует датчики и двигатели для навигации. Если это не удается, на данный момент, есть много вам не нужно отлаживать, и вы можете сосредоточиться на том, что вы не проверял еще навигацию алгоритм, любую проводку, что вы сделали, так как вы протестировали каждую часть, и если вы вошли финал известен-рабочие части из тестов, например, вы использовали все последние и самые большие фрагменты кода выше.

,