Как и обещал в прошлой части, выкладываю схему подключения и скетч. Попытаюсь максимально подробно рассказать что и куда.
Весь проект строился под #мультируль Opel Corsa C.
Сам скетч имеет подробные комментарии.
Ардуино очень доброжелательная к пользователю платформа, язык программирования упрощен, прошивка тоже. Но если вы не уверены в своих силах, проще купить адаптер, экономия сомнительна. Если не напугал, читаем дальше.
Код еще достаточно сырой и будет еще не раз изменен, но уже работает ;)
Вот сам код - Ссылка
Ещё понадобится библиотека ir remote
Этот код должен работать сразу, если подключили #ардуино по такой схеме:
Пояснения по схеме:
D1 - ИК светодиод
R9 - токоограничивающий резистор 10 Ом для ИК светодиода
R8 - резистор 4,7кОм, плечо делителя напряжения
Вся требуха в рамке со стрелочкой это наши кнопки на руле.
Внизу схема кнопок на руле, которую я нашел в интернете.
Внимательный читатель заметит, что в моей схеме и в схеме ниже кнопки "-" и "+" перепутаны, да, я тупо не помню как на самом деле, когда проводил измерения на руле записал их себе по верхней схеме, может проглядел =)
Принцип работы:
На аналоговый вход arduino (А0) поступает сигнал с делителя напряжения, одно плечо делителя это кнопки на руле, второе плечо это резистор R8.
Ардуино считает этот входящий сигнал в своих "попугаях" от 0 до 1024.
В шапке скетча есть настройки:
/*Описываем сколько "попугаев" в нажатых кнопках*/
define MINUS0 18 // Кнопка "-" на руле
define PLUS0 34 // Кнопка "+" на руле
define CIRCLE0 58 // Кнопка "0" на руле
define RIGHT0 91 // Кнопка ">" на руле
define LEFT0 146 // Кнопка "<" на руле
define UP0 241 // Кнопка "вверх" на руле
define ALLDOWN 447 //Все кнопки отпущены
define DELTA 5 // Погрешность в измерении приходящего сигнала, если показания скачут более чем на 5 единиц, то можно увеличить
Разберем строку: define MINUS0 18 // Кнопка "-" на руле
Это означает что когда нажата кнопка "-"(обозначена как MINUS0), на вход ардуино А0 приходит напряжение, которое она воспринимает как 18 попугаев.
Так описываются все 6-ть кнопок.
Строка: define ALLDOWN 447 //Все кнопки отпущены
Эта постоянная задает количество попугаев, когда все кнопки отпущены.
Строка: define DELTA 5
Из-за того, что напряжение может быть не стабильно, попугаев может быть больше или меньше, поэтому вводим погрешность при измерении - 5 попугаев.
Часто задаваемые вопросы:
Вопрос:
Ответ:
Вопрос: а на пионер сможешь такую штуку сделать?)
Ответ: Теоретически будет работать с любым устройством, которое управляется по ИК.
Если на магнитоле JVC есть провод #steering wheel remote , и не охота лепить куда-то ИК-светодиод, то в следующей части расскажу как это реализовать. Если не хотите пропустить, подписывайтесь.