Отправка ИК-сигналов (NEC) с помощью Arduino

У меня есть Arduino Micro, и я хочу управлять дисплеем с помощью ИК-команд. Таким образом, Arduino должен отправлять ИК-команды на дисплей.

Я нашел библиотеку "Arduino-IRremote", которую использую для передачи команд на дисплей. Дисплей отлично работает с пультом дистанционного управления, однако я не могу заставить его принимать сигналы от моего Arduino.

Теперь особенностью моей установки является то, что я не использую "классический" ИК-передатчик. Вместо этого я использую ИК-кабель, который подключается к «ИК-входу» дисплея. Так что никакого светодиода — только проводное подключение. ИК-кабель состоит из 3 проводов. 2 для питания (VIN и GND) и один для передачи данных. Провод с подключением для передачи данных подключен к выводу 3 ШИМ Arduino (как сказано в примере в связанной библиотеке), но я все равно попробовал все остальные выводы.

#include <IRremote.h>
IRsend irsend;

void loop() {

  for (int i = 0; i < 2; i++) {
    digitalWrite(RXLED, HIGH);
    irsend.sendNEC(0x004eff71, 32);
    Serial.println( "sendNEC 00 4E FF 71" );
    digitalWrite(RXLED, LOW);
    delay(40);

  }
  delay(1000); 
}

004eff71 – это команда NEC с оригинального пульта дистанционного управления

Может ли кто-нибудь сказать мне, что я делаю неправильно? Программа компилируется и загорается светодиод каждый раз, когда она должна посылать NEC-команду. Но все равно дисплей ничего не получает. Что не так?

, 👍3


3 ответа


Лучший ответ:

3

Возможно, это не работает, потому что выходной сигнал Arduino — это не просто сигнал включения/выключения.

Эта библиотека использует широтно-импульсную модуляцию на выходе Arduino для управления светодиодом. Когда светодиод горит, управляющий сигнал на самом деле пульсирует с очень высокой частотой.

Я не знаю, что вам нужно изменить, чтобы это работало с прямым проводным подключением.

Еще одна проблема, которая может вызвать проблемы, заключается в том, что без проверки вы не можете быть уверены, что уровень отправляемого вами сигнала соответствует уровням, которые обычно создает ИК-приемник.

,

0

Было бы полезно узнать характеристики ИК-входа на устройстве, которым вы пытаетесь управлять, но после небольшого поиска в Google выяснилось, что большинство из них просто ожидают подключения к ИК-приемнику. Я нашел ссылку на то, что кажется общим, TSOP22.., TSOP24.., TSOP48.., TSOP44.. и вот ссылка на техпаспорт (http://www.vishay.com/docs/82459/tsop48.pdf). Если вы проверите Vo на странице 2, он показывает 0-5V. Вы не упомянули, используете ли вы Arduino 5 В или 3 В, так что это может быть проблемой.

Выходы ШИМ на самом деле генерируют сигналы прямоугольной формы, поэтому на первый взгляд это не похоже на аппаратную проблему (при условии, что она правильно подключена к ИК-входу вашего оборудования).

Я бы начал проверять данные, которые вы пытаетесь отправить. Я не смотрел упомянутую вами библиотеку и надеюсь, что она содержит пример, показывающий, как правильно инициализировать библиотеку и отправлять данные. Возможно, вместо первого байта сначала нужно отправить первый байт последним или требуется фиксированное количество байтов для отправки...

Предоставив более подробную информацию о своем проекте, вы можете получить лучший ответ.

,

0

Я нашел этот интересный сайт для того же самого: Как отправить ИК-сигнал с помощью Arduino. . Попробуйте...

,

Хотя ваша ссылка может ответить на вопрос, было бы предпочтительнее включить основные части ссылки здесь и предоставить ссылку для цитирования. Таким образом, это ответ только по ссылке, и ссылки, как правило, со временем умирают, что резко снижает полезность вашего ответа. Пожалуйста, ознакомьтесь с политикой обмена стеками для ответов только по ссылкам: http://meta.stackexchange.com/questions/225370/your-answer-is-in-another-castle-when-is-an-answer-not-an-answer . Если бы вы могли отредактировать свой ответ, включив в него соответствующую информацию, это было бы здорово., @Greenonline