помогите с написанием програмки нужно чтото исправить

Тема в разделе "Arduino & Shields", создана пользователем jaha, 12 апр 2016.

  1. jaha

    jaha Нерд


    Даa

    Она выдавала когда не было ик приемника

    Но когда я добавил serial rrecv она начала мешать дальномеру

    Arduino читает только ик


    В начале перед передачи сигнала с пульта tx светится и чуть мигает когда я привожу лодонт к дальномеру

    Но после получения кода с ик
    TX полностью горит и не реагирует на дальномер


    Но когда я убрал с кода rrecv resume все работает но изза того что нет этой функции движок только включается
    А выключить нужно в ручную
     
  2. Airbus

    Airbus Радиохулиган Модератор

    Убрал пост удалил-он был излишний Чел в коментах всё написал
    Для тех кто не понял или на Бронепоезде писал большими буквами-специально чтоб Человек прочитал ибо у него андроид или Эпл я и сам с такой фигни читать не умею
     
  3. Airbus

    Airbus Радиохулиган Модератор

    Вопрос-дальномер и IR приёмник разные устройства?С какого устройства берётся расстояние до препятствия?
     
  4. ostrov

    ostrov Гуру

    На андроиде и на эппл масштаб текста меняется одним движением пальцев. Я сам с планшета пишу тут и читаю в половине случаев. Нормальный браузер практически не отличается от браузера на большом брате.
     
  5. jaha

    jaha Нерд


    Даа
    Ик приемник это простой приемник от телевизора типо TSOP2136

    А дальномер это ultrasonic
    Ультразвукового дальномер
     
  6. Tomasina

    Tomasina Сушитель лампочек Модератор

    if(results.value==0xF4BA2988)
    Все, что после этого, выполняется один раз - при получении команды.
    Команду получили - поехали. Прошли цикл до конца. А дальше сонар не обрабатывается, потому что новой команды 0xF4BA2988 не поступало.

    Зачем все в одну кучу намешали?
    Код (C++):
    void loop()
    {
       readIR();
       readSonar();
       setLeds();
       data2Serial();
       checkData();
       driveMotor();
    }
    Больше в loop() ничего не должно быть.
    Все пины и числа вынесите в #define.
     
    Последнее редактирование: 14 апр 2016
    atompost нравится это.
  7. Tomasina

    Tomasina Сушитель лампочек Модератор

    это базовый скелет, остальное лень писать
    Код (C++):
    enum {STOP, FORWARD, BACKWARD, TURNLEFT, TURNRIGHT} DriveMode; // возможные состояния системы


    void loop()
    {
      readIR();
      readSonar();
      checkData();
      setLeds();
      data2Serial();
      driveMotor();
    }


    void readIR()
    {
      // ...   // работаем с ИК-приемником
      if (results.value == 0xF4BA2988) DriveMode = FORWARD;   // если сигнал таков начинаем работу
      else if (results.value == 0x68733A46) DriveMode = STOP; // если сигнал таков то выключаем мАторы
    }


    void readSonar()
    {
      // ...  // работаем с сонаром
      // distance = ... ;
    }


    void checkData()
    {
      if(distance < MIN_DIST)                              DriveMode = BACKWARD;
      else if (distance < MAX_DIST && distance > MIN_DIST) DriveMode = RIGHT;
      else if (distance > MAX_DIST)                        DriveMode = FORWARD;
    }


    void setLeds()
    {
      if(DriveMode == STOP) digitalWrite(Led, LOW);
      else digitalWrite(Led, HIGH);
    }


    void data2Serial()
    {
      Serial.print("Mode: ");
      Serial.print(DriveMode==STOP?"Stop":DriveMode==FORWARD?"Fwd":DriveMode==BACKWARD?"Back":DriveMode==TURNLEFT?"Left":"Right");
      Serial.print("\tDistance = ");
      Serial.println(distance_sm);
    }


    void driveMotor()
    {
      switch(DriveMode)
      {
      case STOP:
        {
          digitalWrite (in2, HIGH);
          digitalWrite (in1, LOW);
          digitalWrite (in4, HIGH);
          digitalWrite (in3, LOW);
          break;
        }
      case FORWARD:
        {
          // ...
          break;
        }
      }
    }
     
    Последнее редактирование: 14 апр 2016
  8. jaha

    jaha Нерд

    [ QUOTE="Tomasina, post: 72746, member: 1690"]кто будет читать код в таком виде?[/QUOTE]


    Спасибо
    Постораюсь понять