PDA

Просмотр полной версии : ИК пульт на arduino micro pro


demtro
03.06.2016, 11:34
Создаю пульт управления для планшета и магнитолы, в основе лежит arduino micro pro, с передачей кнопок в планшет проблем нет, а вот с магнитолой беда, хочу реализовать управление через ИК диод, коды кнопок ИК пульта считываю, но вот отправить никак не могу.
Заливаю в ардуино скетч из вложения, собираю все в соответствии со схемой во вложении, но команда не передается, смотрю на диод через камеру телефона - реакции при нажатии кнопку никакой.
Если заменить отправку команды на отправку HIGH на пин 3, то через камеру видно что ИК-диод горит.

YAM1966
03.06.2016, 11:59
Транзистор на схеме нарисован pnp, а BC337 - npn. 1K резистор слишком большого номинала. При токе через светодиод 50мА, должен быть ~75 Om.
В скетче Вы настроили ногу кнопки на выход ;)
И вместо ее чтения выдаете на нее 0.
А кто будет указывать ногу для передачи ИК сигнала?
Для начала изучите матчасть.

demtro
03.06.2016, 12:03
Транзистор на схеме нарисован pnp, а BC337 - npn. 1K резистор слишком большого номинала. При токе через светодиод 50мА, должен быть ~75 Om.
С скетче Вы настроили ногу кнопки на выход ;)
И вместо ее чтения выдаете на нее 0.
А кто будет указывать ногу для передачи ИК сигнала?
Для начала изучите матчасть.
Схему рисовал "на коленке" ошибся немного)
Скетч исправил, косяки в счетке из-за того что писал его щас по памяти)) в оригинале этих ошибок нет. нога для ИК диода прописана в библиотеке, по крайней мере так в интернете пишут. Резистор не может же полностью зарезать команду и почему при HIGH на пине даже через этот резистор индикацию видно

YAM1966
03.06.2016, 12:05
А самому удостовериться в этом посмотрев код библиотеки? ;)
Кроме того, библиотека может выдавать и просто огибающую ИК без модуляции несущей...

demtro
03.06.2016, 12:07
А самому удостовериться в этом посмотрев код библиотеки? ;)
Кроме того, библиотека может выдавать и просто огибающую ИК без модуляции несущей...

http://arduino.ru/forum/programmirovanie/biblioteka-irremote-irsend тут описано что библиотека настроена на 3 пин, про второе совсем не понял)
В примере от библиотеки тоже прописано что Ик диод на 3 пине

YAM1966
03.06.2016, 12:14
digitalRead (http://arduino.ua/ru/prog/DigitalRead)...

Условие проверки должно быть такое:
if(digitalRead(bpin) == LOW)
{
}

demtro
03.06.2016, 12:29
Исправил, но результата нет.

lti1
03.06.2016, 13:38
А зачем вообще нужен транзистор?
http://www.righto.com/2009/08/multi-protocol-infrared-remote-library.html

demtro
03.06.2016, 13:39
А зачем вообще нужен транзистор?
http://www.righto.com/2009/08/multi-protocol-infrared-remote-library.html

у ардуины 40мА максимум на пин, диод Noname может жрать и больше.
Прямое подключение тоже не работало
Скетч на отправку данных из приведенной вами статьи так же не заработал

ali_vlad
03.06.2016, 14:04
Имел опыт построения данной конструкции. Про-микро очень слабая. Очень. И китайцам пофиг, что в даташитах написано. В итоге перешел на про-мини, поставил и забыл.
Правда делал не пульт, а адаптер рулевых кнопок, но в моём случае то же, ибо нужно было выдавать протокол NEC и без модуляции.
Библиотека IRemote.h действительно жестко привязана к пину 3.

demtro
03.06.2016, 14:06
Имел опыт построения данной конструкции. Про-микро очень слабая. Очень. И китайцам пофиг, что в даташитах написано. В итоге перешел на про-мини, поставил и забыл.

ну проблему слабины должен решить транзистор

armlive
03.06.2016, 15:17
Так а код какой отправляешь, тот что в примере???

demtro
03.06.2016, 15:18
пока без разници что отправлять индикацию смотрю через камеру. пробовал и тот что в примере, пробовал и другую кодировку и другую команду

armlive
03.06.2016, 15:21
Так индикации нет? нарисуй еще раз схему подключения

demtro
03.06.2016, 15:23
Схема подключения из первого поста, том только транзюк немного неправильно нарисован)
При "прямой" подаче HIGH на 3 пин индикация есть, при подаче команды индикации никакой
if digitalRead(bpin == LOW);
{
irsend.sendSony(0xa90, 12); // Sony TV power code
delay(40);
}
меняю на это

if(digitalRead(bpin) == LOW)
{
digitalWrite(ledpin, HIGH);
} else {
digitalWrite(ledpin, LOW);
}
естественно вначале добавив в скетч ledpin и выставив его на OUTPUT

armlive
03.06.2016, 15:27
tx = pin 10 в библиотеке указан этот пин на AVR_ATmega32U4
http://arduino.ru/forum/apparatnye-voprosy/problema-s-ir-peredatchikom

demtro
03.06.2016, 15:39
tx = pin 10 в библиотеке указан этот пин на AVR_ATmega32U4
http://arduino.ru/forum/apparatnye-voprosy/problema-s-ir-peredatchikom

А вот за это спасибо! до дома доеду попробую на 10-й пин подключить

UPDATE
Взял библиотеку по ссылке приведенной вами, все заработало на 9 пине ардуино, даже без транзистора.