Управление роботом через ИК

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

  1. Enmaboya

    Enmaboya Нуб

    День добрый, имеет ардуинка, шилд L293D, два моторчика и ик модуль.
    Так вот, всё подключено. Скетч нашёл на просторах интернета.
    Коды кнопок пульта записал (
    вверх C26BF044

    влево 758C9D82

    вправо 53801EE8

    вниз C4FFB646
    Код (C++):
    #include <AFMotor.h>
    #include <IRremote.h>
    int RECV_PIN = 13;
    AF_DCMotor motor_b(2, MOTOR12_64KHZ);
    AF_DCMotor motor_d(4, MOTOR12_64KHZ);

    IRrecv irrecv(RECV_PIN);
    decode_results results;

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

      motor_b.setSpeed(255);
      motor_d.setSpeed(255);

    // motor_b.run(RELEASE);
    // motor_d.run(RELEASE);
    }

    void loop()
    {
      if (irrecv.decode(&results))
      {
        Serial.println(results.value);
        Serial.println(results.value,HEX);
        Serial.println("====");

        if (results.value == C26BF044) //мотор(б) вперед
        {
          Serial.println("sgiblev");
          motor_b.run(FORWARD);
        }
        else
        {
          motor_b.run(RELEASE);
        }
        if (results.value == 16751205)//мотор(д) вперед
        {
          Serial.println("sgibprav");
          motor_d.run(FORWARD);
        }
        else
        {
          motor_d.run(RELEASE);
        }

        if (results.value == 16722645) //мотор(б) назад
        {
          Serial.println("razgiblev");
          motor_b.run(BACKWARD);
        }
        else
        {
          motor_b.run(RELEASE);
        }

        if (results.value == 16718565)
        {
          Serial.println("razgibprav");//мотор(д) назад
          motor_d.run(BACKWARD);
        }
        else
        {
          motor_d.run(RELEASE);
        }
     

      }
        irrecv.resume();
    }

    Так вот при компиляции ошибка.
    "Несколько библиотек найдено для "IRremote.h"
    Используется: C:\Program Files (x86)\Arduino\libraries\IRremote
    Не используется: C:\Program Files (x86)\Arduino\libraries\RobotIRremote
    exit status 1
    'C26BF044' was not declared in this scope"
    EBUs-NiJP9w.jpg
    Что делать, как исправить? направьте на путь истинный.
     
  2. Unixon

    Unixon Оракул Модератор

    0xC26BF044
     
  3. Enmaboya

    Enmaboya Нуб

    уже пробовал, но увы робот так и стоит, лампочка только на ик-модуле мигает
     
  4. mcureenab

    mcureenab Гуру

    Как написали, так работает.

    Положим, первый if сработал. Мотор включился
    Код (C++):
     if (results.value == 0xC26BF044) //мотор(б) вперед
        {
          Serial.println("sgiblev");
          motor_b.run(FORWARD);
        }
    но дальше по коду выполняется else

    Код (C++):
    if (results.value == 16722645) //мотор(б) назад
    // не выполняется
        else
        {
          motor_b.run(RELEASE);
        }
    мотор тут же выключается
     
  5. Enmaboya

    Enmaboya Нуб

    ещё обнаружил, что в мониторе последовательного порта ничего не отображается, вообще.

    хотя с другим скетчем лампочки включаются/выключаются
     
  6. mcureenab

    mcureenab Гуру

    возьмите другой скетч и дорабатывайте, пока не перестанет работать