Линия, следующая за проблемами робота
Я делаю линию следующего робота с помощью Arduino Uno, но каждый раз, когда я соединяю все вместе, загружаю код и ставлю датчики на линию, двигатель не работает.
Я использую двигатель L298n и Arduino Uno. Вот принципиальная схема, которую я использую:
И вот этот код:
// 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);
}
@Sanarya, 👍-4
Обсуждение1 ответ
Подключайте, записывайте и отлаживайте только одну часть вашего проекта за раз.
- Ты можешь просто завести мотор?
- Можете ли вы запустить его в любом направлении?
- Может ли этот код сделать то же самое для любого двигателя?
- Вы можете управлять двумя двигателями?
- Можете ли вы настроить любой из них на движение вперед, назад или остановку независимо друг от друга?
Затем датчики (пока забудьте о двигателях):
- Можете ли вы прочитать правильный датчик и обнаружить свет или темноту?
- Можете ли вы адаптировать код для считывания любого датчика?
Затем, используя вышеприведенные фрагменты и знания:
- Можете ли вы заставить один из двигателей работать или останавливаться в ответ на один из датчиков?
Теперь у вас достаточно известных работ! - собрать их в устройство, которое использует датчики и двигатели для навигации. Если это не удается, на данный момент, есть много вам не нужно отлаживать, и вы можете сосредоточиться на том, что вы не проверял еще навигацию алгоритм, любую проводку, что вы сделали, так как вы протестировали каждую часть, и если вы вошли финал известен-рабочие части из тестов, например, вы использовали все последние и самые большие фрагменты кода выше.
- Tower Pro MG996R сервопривод с высоким крутящим моментом 180 °, управляющий с помощью Arduino
- Как управлять 4 двигателями постоянного тока с помощью Arduino?
- Как сделать электронную присоску?
- Наилучший метод проектирования схемы с 20 кнопками
- Могу ли я подключить несколько устройств к одному контакту 5V и одному GND Arduino Uno R3
- Плавное сервомоторное движение роботизированной руки: постоянный ответ и решение
- Как изменить скорость нескольких сервоприводов, работающих одновременно с модулем PCA9685?
- Самый точный способ измерения линейного расстояния, пройденного колесом
Вы уступаете дорогу недостаточно полной информации. Вот как звучит вопрос: "У меня есть компьютер для игр, но он не работает. Как я могу его починить?" Сможете ли вы что-нибудь с этим сделать? Думаю, что нет, @chrisl
я попробую угадать .... у вас плохой мотор, купите другой .... вот еще одна догадка ... ваша программа плоха, перепишите ее ........... вы не дали никакой информации, поэтому вы будете получать только догадки, а не полезные ответы, @jsotola
Я редактирую вопрос, @Sanarya
Вы пробовали очень простой скетч, чтобы просто запустить свои двигатели в одном направлении и не делать ничего другого? Если нет, попробуйте. Если двигатели работают, то мы можем исключить проблему с проводкой двигателя или водителем., @chrisl
проверьте один раз индивидуально ваш ИК-датчик и драйвер работают правильно, @Mohanapriya v