Доброго дня. Столкнулся с такой проблемой. Делал робота ездящего по линии. Железо подобрал, код написал, но без подключения к шлейфу он не работает. Вот код: Код (C++): #include <AFMotor.h> AF_DCMotor motor_b1(2); AF_DCMotor motor_b2(3); #define LEFT_SENSOR_PIN 9 #define RIGHT_SENSOR_PIN 10 void set_speed(int speed) { motor_b1.setSpeed(speed); motor_b2.setSpeed(speed); } // библиотека AFMotor позволяет установить моторы в 3 режима: // 1. FORWARD - моторы будут крутиться "вперед", если можно так выразиться :) // 2. BACKWARD - моторы будут крутиться "назад" // 3. RELEASE - остановка, моторы крутиться не будут // и после переключения режима, желательно дать время на переход из одного состояния в другое // Ниже реализованы 3 функции, которые позволят переключаться между этими режимами. // едем вперед void robot_forward() { motor_b1.run(FORWARD); motor_b2.run(FORWARD); delay(1000); } // едем назад void robot_backward() { motor_b1.run(BACKWARD); motor_b2.run(BACKWARD); delay(1000); } void robot_release() { motor_b1.run(RELEASE); motor_b2.run(RELEASE); delay(1000); } void turning_to_the_right() { motor_b1.run(FORWARD); motor_b2.run(BACKWARD); delay(1); } // поворот налево void turning_to_the_left() { motor_b2.run(FORWARD); motor_b1.run(BACKWARD); delay(1); } void setup() { set_speed(255); robot_forward(); } void loop() { boolean left = !digitalRead(LEFT_SENSOR_PIN); boolean right = !digitalRead(RIGHT_SENSOR_PIN); if (left == right) { robot_forward(); } else if (left) { turning_to_the_left(); } else if (right) { turning_to_the_right(); } else { robot_release(); } } Можете подсказать что делать?
Попробовал убрать, эту часть кода. Стало ещё хуже. А про шлейф, который подключается от компьютера к Arduino.
Извините за тупой вопрос, но мотор шилд у Вас какой? И есть ли он вообще? (это я в том плане, что китайцы могут "пустышку" продать)
Не надо убирать части кода если не знаете для чего они. И что значит не работает без шлейфа? Как питание осуществляется?
Питание осуществляется через блок питания на 4 батарейки. Управление моторами осуществляется через Motor Control Shield L293D. Мотора всего 2. Также стоят датчики линии от Амперки.
Что именно "не работает", Как именно "стало еще хуже" И сколько еще загадок предложит нам автор темы... Зы. Будет срабатывать если оба сенсора дают одинаковые показания. Т.е если робота поставить просто на однотонный пол, не важно черный/белый/еще какой, он поедет прямо. Т.е. вообще никак толком не выясняется, а есть ли под роботом линия по которой следует ехать.
На какое напряжение ваши батарейки и на какой вход Вы их подключаете? Если батарейки на 1,5 В, то добавьте еще 2 и подключите на вход Vin.
Добавлю - и соедините последовательно. А то вдруг, что называется - и вместо напряжения будем ток увеличивать.