Arduino Uno + MotorShield L293D

Тема в разделе "Arduino & Shields", создана пользователем Kuzmit4, 26 апр 2017.

  1. Kuzmit4

    Kuzmit4 Нерд

    Собираю машинку на базе 4WD Robot Smart Car Chassis.
    Встал вопрос питания. Сейчас запил все от 8 батареек АА. Подключил параллельно Arduino через разъем питания и MotorShield через его вход.
    Есть ли необходимость разделять питание на MotorShield и на Arduino. И если разделять, то надо ли объединять землю?
     
  2. ARDUIN-щик

    ARDUIN-щик Гик

    У моторов Вашего "4WD Robot Smart Car Chassis" предельное напряжение питания- 6В, иначе моторы сгорят. 8 батареек АА дают 12В напряжения, что губительно для Ваших моторов.
    Вам придётся подключать раздельное питание для ардуины и MotorShield. Если Вы используете MotorShield от Амперки, то соединять земли источников питания не требуется (они и так уже соединены).
    Если Вы используете другой MotorShield, то смотрите документацию: если земли на шилде уже соединены, то Вас соединять их не требуется, если не соединены- соедините земли источников питания.
     
  3. Kuzmit4

    Kuzmit4 Нерд

    Хм... А на некоторых описаниях пишут что они от 3 до 6В, на других 3-12В. Что-то мне подсказывает что мои до 12В. Т.к. от 6В медленно вращаются. А когда задаю малую скорость вращения то они гудят, но не проворачиваются. А если подключить 4 двигателя и ардуину от 4хАА, то двигатели еле слышно пощелкивают, но не крутятся. И если чуть прижать пальцем колесо, то оно сразу же останавливается.

    Использую библиотеку AFMotor.h
    Код (C++):

    #include <AFMotor.h>
    AF_DCMotor motor(1);

    void setup() {
      Serial.begin(9600);

      motor.setSpeed(200);
      motor.run(RELEASE);
    }

    void loop() {
      uint8_t i;

      motor.run(FORWARD);
      for (i=0; i<255; i++) {
      motor.setSpeed(i);
      delay(10);
    }
      for (i=255; i!=0; i--) {
      motor.setSpeed(i);
      delay(10);
    }

      motor.run(BACKWARD);
      for (i=0; i<255; i++) {
      motor.setSpeed(i);
      delay(10);
    }
      for (i=255; i!=0; i--) {
      motor.setSpeed(i);
      delay(10);
    }
      delay(1000);
    }
     
     
  4. ARDUIN-щик

    ARDUIN-щик Гик


    Если Вам кажется что Ваши моторы работают от 12В, то оставляйте всё как есть. Но можно, забив в поисковике идентификационные данные, расположенные на моторе, узнать точное рабочее напряжение мотора.
     
  5. Kuzmit4

    Kuzmit4 Нерд

    Я уже полностью разобрал двигатель в поисках хоть какой-то маркировки, все чисто.
    Оставлю пока 12В

    Спасибо!