Как взаимодействовать с ик датчиком?

Тема в разделе "Схемотехника, компоненты, модули", создана пользователем Егор рубайло, 22 окт 2017.

  1. Товарищи амперчане! Есть ардуинка (nano) ик тройка модуль (приемник) и ик пульт от игрушки.
    В общем я зашел на гитхаб , посмотрел на документацию и нифига не понял. Люди разьясните как с ним работать. (Код с пояснениями)
     
  2. Ой я чет не догадался в гугле посмотреть. Спаибо!
     
  3. ошибка
    C:\Program Files (x86)\Arduino\libraries\RobotIRremote\src\IRremoteTools.cpp:5:16: error: 'TKD2' was not declared in this scope

    int RECV_PIN = TKD2; // the pin the IR receiver is connected to

    ^

    exit status 1
    Ошибка компиляции для платы Arduino Nano.
     
  4. NikitOS

    NikitOS Public enemy Администратор

    Во первых установите библиотеку(прикрепил)т.к та что у вас работать не будет
    Во вторых, где код?
    Вот код из примера который пишет в сериал код и тип пульта:
    Код (C++):
    #include <IRremote.h>

    /*
    *  Default is Arduino pin D11.
    *  You can change this to another available Arduino Pin.
    *  Your IR receiver should be connected to the pin defined here
    */

    int RECV_PIN = 11;

    IRrecv irrecv(RECV_PIN);

    decode_results results;

    void setup()
    {
      Serial.begin(9600);
      irrecv.enableIRIn(); // Start the receiver
    }


    void dump(decode_results *results) {
      // Dumps out the decode_results structure.
      // Call this after IRrecv::decode()
      int count = results->rawlen;
      if (results->decode_type == UNKNOWN) {
        Serial.print("Unknown encoding: ");
      }
      else if (results->decode_type == NEC) {
        Serial.print("Decoded NEC: ");

      }
      else if (results->decode_type == SONY) {
        Serial.print("Decoded SONY: ");
      }
      else if (results->decode_type == RC5) {
        Serial.print("Decoded RC5: ");
      }
      else if (results->decode_type == RC6) {
        Serial.print("Decoded RC6: ");
      }
      else if (results->decode_type == PANASONIC) {
        Serial.print("Decoded PANASONIC - Address: ");
        Serial.print(results->address, HEX);
        Serial.print(" Value: ");
      }
      else if (results->decode_type == LG) {
        Serial.print("Decoded LG: ");
      }
      else if (results->decode_type == JVC) {
        Serial.print("Decoded JVC: ");
      }
      else if (results->decode_type == AIWA_RC_T501) {
        Serial.print("Decoded AIWA RC T501: ");
      }
      else if (results->decode_type == WHYNTER) {
        Serial.print("Decoded Whynter: ");
      }
      Serial.print(results->value, HEX);
      Serial.print(" (");
      Serial.print(results->bits, DEC);
      Serial.println(" bits)");
      Serial.print("Raw (");
      Serial.print(count, DEC);
      Serial.print("): ");

      for (int i = 1; i < count; i++) {
        if (i & 1) {
          Serial.print(results->rawbuf[i]*USECPERTICK, DEC);
        }
        else {
          Serial.write('-');
          Serial.print((unsigned long) results->rawbuf[i]*USECPERTICK, DEC);
        }
        Serial.print(" ");
      }
      Serial.println();
    }

    void loop() {
      if (irrecv.decode(&results)) {
        Serial.println(results.value, HEX);
        dump(&results);
        irrecv.resume(); // Receive the next value
      }
    }
     

    Вложения:

    • IRremote.zip
      Размер файла:
      79,8 КБ
      Просмотров:
      78
  5. Это демо пример из иде, а библиотека кстати быля установлена (я ее потом переустановил и все заработало )