Універсальний пульт керування, IR контроль
Привіт шановні професіонали та любителі! Продовжую будувати універсальний пульт управління. У минулій частині намагався змусити ардуїно працювати підвищуючим стабілізатором. Змусив, але результат мене не задовольнив. Тому купив готові стабілізатори фірми www.pololu.com та влаштував ардуїнці пересадку харчування.


На наступному етапі впроваджував IR передавач (ІК світлодіод).

Якщо хтось думає, що це просто — глибоко помиляється. У перших бібліотеки, прикріплені до незліченних прикладів з інтернету поголовно биті або спеціально виправлені, щоб не працювати. Робочу бібліотеку IRremote.h є на офіційному ресурсі arduino.cc. Але й вона не працюватиме коректно, оскільки софт Arduino Software вибирає бібліотеки за якимось загадковим алгоритмом. Будьте уважні та попередньо видаліть старі версії бібліотек.
А тепер, власне, питання. Бібліотека IRremoteInt.h підтримує світлодіод, що передає, на 3pin і 9pin ардуїно nano, uno і т.д., але вони в моєму проекті вже зайняті. Потрібно перенести його на 11pin, де теж є таймер і PWM. На жаль бібліотека IRremoteInt.h написана із застосуванням загадкових операторів та змінних, команд та позначень. Кілька годин намагався розібратися самостійно, почала боліти голова. Випив лікувального пива і тепер голова не болить, але просвітлення не настає. Можливо мало пива? У бібліотеці управління таймерами здійснюється такими командами: Arduino Duemilanove, Diecimila, LilyPad, Mini, Fio, Nano, etc. = pin 9 # define IR_USE_TIMER2 // tx = pin3 ---------------------------------------------- -------------------------------------------------- ----------
#define TIMER_RESET #define TIMER_ENABLE_PWM (TCCR2A = _BV(COM2B1)) #define TIMER_DISABLE_PWM (TCCR2A &=
(_BV(COM2B1))) #define TIMER_ENABLE_INTR (TIMSK2 = _BV(OCIE2A)) #define TIMER_DISABLE_INTR (TIMSK2 = 0) #define TIMER_INTR_NAME TIMER2_COMPA_vect= ================================================== = Я змінив значення: #define TIMER_ENABLE_PWM (TCCR2A = _BV(COM2B1)) на TCCR2A = _BV(COM2A1) #define TIMER_DISABLE_PWM (TCCR2A &=
(_BV(COM2B1))) на TCCR2A &=
(_BV(COM2A1)) Але мабуть що щось пішло не так, 3 пін перестав працювати а 11 не почав. Даташит на ATmega168/328 читав, поки стільки випити не можу, в очах рябить від скорочень.

Підкажіть будь ласка, як правильно запустити PWM на 11 піні і як перенести на нього IR передавач. codeload.github.com/z3t0/…duino-IRremote/zip/master У ній два пов'язані файли, IRremote.h визначає кодування IR І власне що намагаюся правити — IRremoteInt.h створює режими роботи контролера.
Наперед вдячний за обґрунтовану відповідь.
Коментарі 58
Управління Китайським плеєром. Написано під себе. Може треба ... Протокол і коди кнопок читав з ІЧ приймача. У мене у блозі мої хотілки.