Проблема с IR передатчиком
- Войдите на сайт для отправки комментариев
Добрый день.
Извеняюсь, если этот вопрос покажется повтором, но подобного ничего на форуме не нашел.
Собственно суть вопроса:
Имеется Arduino Leonardo, Arduino micro, IR передатчик, IR приемник.
Использою, как и большенство библиотеку IRremote. На прием все работает как надо.
А вот на передачу ничего не происходит.
Как подсказывает здравый смысл - проблема явно не с библиотекой( у всех же работает). Видимо дело все-таки в аппаратной части.
Вот собственно сам скетч:
#include <IRremote.h> IRsend irsend; void setup() { Serial.begin(9600); } void loop() { if (Serial.available()!=0) { char val = Serial.read(); if (val == '1') { for (int i = 0; i < 3; i++) { irsend.sendNEC(0x20DFFF00, 32); delay(100); } } } }
Проблема в том что сигнал не отправляется( ни отлавливается приемником на другом arduino, ни светится в камере телефона). Подключено как и описанно в библиотеке на 3 pin.
Диоды все рабочие. Подключались как с понижающим резистором, так и без него.
В чем может быть затыка????
А можно чуть поподробнее: эту часть необходимо добавить в начало скетча или куда-то в библиотеку?
Так понимаю это нужно было воткнуть в файл IRremoteInt.h?
Попробовал сделать так: результат тотже (подключал и к 3 и 10 pinу).
Скачал библиотеку https://github.com/shirriff/Arduino-IRremote/blob/master/IRremoteInt.h
Здесь так понимаю как раз нужные изменения. Заменил, но результат тотже.
Можете поделиться ссылкой на библиотеку, которую используете вы?(вопрос к maksim)
Решил проблему.
Кому интересно: скачал другую библиотеку https://github.com/cyborg5/IRLib/.
Если посмотреть внутри то для
ATmega32U4
нужно использовать pin 9.А вот как пример переписанный выше скетч:
Диод мигает. Правда нет возможности проверит то ли он отправляет.
Как проверю отпишусь.
Спасибо за ответ, только теперь разобрался, что ты имел в виду.
Правда только таймер нужен был другой :#define IR_USE_TIMER1 // tx = pin 9
А так все и со старой библиотекой работает.
Так что есть два решения: либо использовать другую библиотеку, либо в текущей сделать небольшие изменения.
Я столкнулся с подобной проблемой на Arduino Nano. Немного поизучав код в файле IRremoteInt.h, пришел к выводу, что для передачи данных надо использовать 3й пин. Подключил ИК диод к 3му цифровому пину и все заработало.