Apple remote shield на arduino

Apple Remote Shield на Arduino

Вы когда-нибудь хотели сделать пульт управления для Apple устройств? К примеру, чтобы управлять при помощи Arduino — ITunes на Mac, IPod, или Apple TV? Теперь это возможно!

Раньше я работал над проектом, который позволяет включать музыку на Mac через ИК-приемник. Через некоторое время я нашел библиотеку, которая позволяет использовать Arduino как Apple Remote. Я интегрировал её в свой проект, и она работает отлично! На днях я решил сделать Apple Remote из Arduino.

Примечание: В зависимости от используемых ИК светодиодов работа устройства может сильно варьироваться.

Необходимые материалы

— Arduino
— 2 или 3 ИК светодиода
— 5 кнопок без фиксации
— Провода
— Макетная плата
— Компьютер
— А-В USB-кабель

Программное обеспечение:
— Программное обеспечение Arduino
— Библиотека Apple Remote (можно скачать внизу статьи)

Сборка платы

Если вы хотите использовать больше светодиодов, то можете добавить их. Также их можно включить через транзистор. Как вы могли уже заметить, у меня нет кнопки меню. Мне она не нужна, но она поддерживается библиотекой и её можно добавить.

— Убедитесь, что выводы ИК-светодиодов не прикасаются к штырькам ICSP!
— Если вы хотите использовать BLS штырьки, то проденьте провода к ним через плату, как это показано на рисунке.

— Вырежьте макетную плату. Я использовал кусок 23×18 с несколькими вырезами.
— Установите кнопки
— Припаяйте GND.
— Проденьте провод GND через плату и обрежьте его.
— Погните ножки ИК-светодиодов
— Вставьте светодиоды в плату и припаяйте катод (короткий вывод) к GND
— Согните аноде одного светодиода и припаяйте его к другому
— Подсоедините левую кнопку
— Припаяйте провод к ИК светодиодах
— Подсоедините нижнюю кнопку
— Подсоедините среднюю кнопку
— Подсоедините верхнюю кнопку
— Подсоедините оставшеюся кнопку
— Готово!

BLS штырьки (опционально)

Если вы хотите использовать BLS штырьки вместо проводов для подключения к Arduino, делайте так:
— Не продевайте провода через плату второй раз
— Зачистите и обрежьте провода, чтобы их можно было припаять
— Возьмите 7 BLS штырьков
— Припаяйте их

Прошивка Arduino (Windows)

Установка библиотеки:
Скачайте и распакуйте файл «». Скопируйте распакованное в эту папку: «/hardware/libraries/»

Загрузка кода:
— Скачайте файл: ‘Arduino_Apple_Remote.pde »
— Откройте его в Arduino IDE.
— Подключите Arduino
— Нажмите кнопку Upload.

Прошивка Arduino (Mac OS X)

Установка библиотеки:
Скачайте и распакуйте файл «». Скопируйте распакованное в эту папку: «/Applications/Arduino/Contents/Resources/Java/hardware/libraries/»

Загрузка кода:
— Скачайте файл: ‘Arduino_Apple_Remote.pde »
— Откройте его в Arduino IDE.
— Подключите Arduino
— Нажмите кнопку Upload.

Использование и дальнейшее улучшение

Наведите светодиоды на ИК приемник и нажмите кнопку. В зависимости от светодиодов вам может понадобиться изменять расстояние, чтобы схема заработала.

Примечание: Сопряжение(Pairing) должно быть отключено. (Рис. 2)

Используйте транзисторы для управления светодиодами вместо подключения их напрямую к 13 контакту. Это должно увеличить дальность.
Используйте этот пульт в качестве пульта ДУ для робота.
Добавьте ИК светодиоды.
Используйте алюминиевую фольгу для увеличения дальности.


[Computergeek] made an Arduino Shield in order to use it as an Apple remote. We like the construction technique that he used; taking perf-board and soldering the circuit and using stripped wire to interface with the pin sockets on the Arduino. He’s written the code needed to function as an Apple Remote but this shield has a lot more potential. This is an excellent opportunity to delve into the different IR protocols out there and create a universal remote for all of your random devices. We’d also want to give it a try as a TV-B-Gone.

The parts are easy to find or salvage without putting in an order. We’re not certain about his design, he should probably have invited a resistor to the party the two IR LEDs are having.

Posted in Arduino Hacks, home entertainment hacks, Mac Hacks Tagged apple, ir, led, remote, tv-b-gone, universal remote

27 thoughts on “ Apple Remote Arduino Shield ”

I think he’s OK without the resistor… judging by the schematic he posted, he’s driving them from the Arduino’s pin 13, which has a built-in current-limiting resistor.

“he should have invited a resistor…”

If he’s running both LEDs from pin 13(built in resistor) should he need another one.

sounds like Resistor gets to stay at home while Arduino hangs out with two hot IRs all night yet again. T_T

When having LEDs in parallel like that, each LED should have its own resistor (instead of one resistor for both). It still works the original way, but this way is just more electronically correct

Vive La Resitance (like spoken in the infamouse “allo allo” series)

If I remember correctly, the resistor is only on the SMD led built into the duemilanove, check the schematics if you don’t believe me

I’ve refused the Arduino kool-aid before this, but I had a quick science fair timer project to do for the kids, so instead of yet again setting up the PIC C compiler etc I ordered one.
Man they are soooo easy to use with the simple included libraries and IDE. The project took 1/4th the time it would have with a PIC.

There is no pullup on inline resistor on Duemilanove pin 13.

Duemilanove pin 13 is connected to a resistor and LED to ground. Duemilanove pin 13 is directly connected directly to pin 19 on the ATMEGA.

I didn’t add use a resistor with the IR LED’s because pin 13 already has one built in. So Russ, KMD, RazorConcepts, jamieriddles & robocat are correct in their thinking.

I didn’t add a menu button because I didn’t have another button easily assessable & on my apple remote it’s kind of annoying. But it would be easy to add one.

Thanks for featuring my project!

As the author of the Arduino Apple Remote library, I’m super excited that my work has (tangentially) made Hack-a-day. I welcome any patches, as well as pointers to other projects using it. Thanks for featuring a project that featured my project.

apple BOOOO. instructables BOOOO.

but does it have an arduino in it?

what you talking about !?
in MPLAB you can real time debug, calculate each cycle time and use any language you like and most of them come with so large libraries that manual look like encyclopedia

even pic ccs, which considered by many as worst language come with so much build in stuff that Arduino cant even dream about with all its shield

I’ve come up with a diagnosis for the thing people like therian are afflicted with. It’s A.D.S. (Arduino Derangement Syndrome).

If not including a resistor in series with a current mode device isn’t wrong, then connecting two current mode devices in parallel certainly is.

If you wouldn’t do either of these things with power diodes, why is it that people think it’s okay with LE Diodes? Because they *look* like little globes? Is the need for current drive *really* that hard to understand?

I have examples of LED torches (flashlights) that depend entirely on the bulk resistance of the diodes in parallel and internal resistance of the battery in series – utterly bloody horrible “design”. Some LED’s do expire, and they make very poor use of the batteries. Yes, even manufacturers are getting away with such abominations, but they *are* abominations, not examples to emulate.

Adding a transistor stage will allow more current to be switched, but current setting resistors then become mandatory. IR LED’s in particular have the lowest cut-in voltage at 1.2 volts, and their V/I curve then rises almost vertically with a slope of amps per volt!

I don’t think a “reflector” is actually going to help much because most of the light is already being lensed into about a 30 degree forward cone. What does work is a bit more lensing to concentrate the energy into a narrower beam.

Derangement Syndrome mean irrational belief despite all factual evidence(like false imaginary difficulties or unbelievable high cost) so professor, to which side this definition apply more ?

If you need something as huge as an arduino to create an IR remote, you fail at mc building. Look at the TVBGone – who needs an Arduino to pulse IR LEDs?

Читайте также  Компания stmicroelectronics представила новую гибкую платформу на базе микроконтроллеров stm32

I think the point of using an Arduino is that when this project gets boring, its easy to take the Arduino off to some other party. Inevitably, the swiss-army knife factor comes into play here a bit ..

I’m not knocking PICs at all.
The PIC / MPLab and assorted compilers and certainly have more flexibility and power than Arduino. But for quick hobby projects that don’t require any optimization for manufacturability, battery life, speed, etc (read: actual engineering) it seems like the Arduino environment is ideal.

@Jay Vaughan
“I think the point of using an Arduino is that when this project gets boring, its easy to take the Arduino off to some other party.

but this mean you destroy you project, newer leaving working one, isn’t it better to grab new cheap chip from bag and leave working piece for future use ?

You truly are useless. Are you a libertarian or an objectivist? You certainly sound like someone brainwashed by Ayn Rand.

DIY Apple Remote Shield for the Arduino

Introduction: DIY Apple Remote Shield for the Arduino

Have you ever wanted to make an apple remote? Or maybe want to have one of your arduino creations be able to control iTunes on your Mac, your iPod, Or your Apple TV? Now you can!

Awhile back I was working on a project that that I wanted to be able to start music the on my mac through the IR receiver. After a while of looking around I found this library which allows you to use your arduino as an Apple Remote. I integrated it in to my project and it worked great! So the other day I decided to make an Apple Remote shield for my arduino.

Note: Depending on the IR Led’s you use, the performance of this can vary greatly.

If you have any questions, comments, &/or suggestions. Please ask them.

Voting starts Nov 16th. So please come back & vote!

Step 1: The Stuff:

— Arduino
— 2 or 3 IR Led’s
— 5 NO Momentary push buttons (NO Stands for Normally Open)
— Wire
— Perf-Board

— Computer
— A-B USB Cable

— Arduino Software
— Apple Remote Library (This can be found in the step: Coding the Arduino!)

Step 2: Assemble the Board

This is pretty flexable, If you want more Led’s feel free to add them in. If you want to control the led with a transistor feel free to add that in! Also you may have noticed that my shield doesn’t have a menu button. I decided not to put one in, But if you want to add one in you can. The library does support.

— Make sure the leads for the IR Led’s don’t touch the ICSP Headers!
— If you want to use header pins DON’T push the end of the wire from the top to the bottom in other words do picture 7, but picture 8.

— Cut the Perf-board. I used a piece 23×18 that has a few cutouts.
— Layout the switches
— Bend the ground wire & solder it in
— Wrap the loose end of the ground, up through a hole in the perf-board. Then push it down through the next & trim the end. (Pictures 5 — 10)
— Bend the IR Leds
— Insert the Led’s and solder the cathodes (Short Lead) to the ground wire
— Bend the anode of one led & solder it to the other one (Picture 21)
— Install a wire for the closest button (Picture 22)
— Add a wire for the IR LED’s (Picture 23)
— Connect the lower button (Picture 24)
— Connect the middle button (Picture 25)
— Wire the top button (Picture 26)
— Connect the furthest button (Picture 27)
— Your Done!

Step 3: Using Header Pins (Optional)

If you want to use header pins instead of wire to connect your shield to your arduino here’s how.


— Leave the leads from the led’s & buttons straight
— Strip and trim the wires so they can be soldered to (Picture 2)
— Cut your headers pins so you have a piece that is 7 pins long
— Solder the header pins in

Step 4: Coding the Arduino! (Windows)

Install the libraries:
Download & unzip the file «». Copy that unzipped folder to:

Upload the code:
— Download the file: ‘Arduino_Apple_Remote.pde’
— Open it in the Arduino IDE.
— Plug in your arduino
— Press Upload to I/O board button.


Step 5: Coding the Arduino! (Mac OS X)

Install the Libraries:
Download & unzip the file «». Copy that unzipped folder to: ‘»/Applications/Arduino/Contents/Resources/Java/hardware/libraries/»

Upload the code:
— Download the file: ‘Arduino_Apple_Remote.pde’
— Open it in the Arduino IDE.
— Plug in your arduino
— Press Upload to I/O board button.


Step 6: Using & What to Do Next

Point at IR receiver & press button. Depending on the LED’s you may need to move the remote around a little to get it to work.

Note: Pairing must be disabled for this to work. (Picture 2)

Advancement Ideas:
Use a transistor to control the led’s instead of just running them off Pin 13. This ‘should’ improve the range.
Use this to make a remote for a robot.
Add more IR Led’s
Use aluminum foil to boost the range.

Be the First to Share

Did you make this project? Share it with us!


Summer Fun: Student Design Challenge

Fandom Contest

Backyard Contest


My real struggle is deciding which project I’m going to tackle.
Will the project of tearing my room apart and re-cleaning it to find the original remote yield quicker results vs tinkering anew. I still sit wasting time pondering which to do.

Обзор шилдов Ардуино

Вначале стоит понять, о чем вообще пойдет речь, а вернее о том, что такое в сущности Arduino и при чем тут shield (в переводе с английского – щит).

  1. Назначение устройства
  2. Gprs shield от «Амперки»
  3. Шилд хранения файлов
  4. Shield, управляющий мощной нагрузкой
  5. Двигатели и Ардуино
  6. Питание
  7. Сеть
  8. Интерфейс с человеком
  9. Шилды, изменяющие модель контроллера
  10. Объединяющий шилд
  11. Дополнительные возможности

Назначение устройства

Ардуино – во всех его модификациях UNO, NANO, MEGA и прочих – достаточно сложный контроллер по своим возможностям, скорее напоминающий полноценный компьютер. Arduino UNO

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

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

Что касается Arduino Shield, – они представляют собой дополнительные платы расширения, зачастую размещаемые на основную самого контроллера и совместимые с ним контактно.

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

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

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

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

Рассмотрим наиболее популярные схемы шилдов Ардуино.

Gprs shield от «Амперки»

Устанавливается шилд на Ардуино и работает с ней в комплексе. Плата оснащена разъемом сим-карты, местом установки аккумулятора CR1225 для часов реального времени и точкой подключения съемной антенны GSM связи. Последнюю можно позже заменить на более мощную.

Основное предназначение у платы – соединение Ардуино с пользователем посредством сотовой связи.

Шилд хранения файлов

Вопрос хранения данных всегда важен, особенно в системах их обработки. Ниже представлен большой брат более простой модели, позволяющий размещать его плату в сам стек устройств Ардуино.

Основная направленность шилда – обеспечивать интерфейс между контроллером и SD картой хранения данных. Запись и чтение устройством поддерживается в распространенных файловых системах FAT12 и FAT32.

Шилд хранения файлов

Младшая модель представлена модулем, но обе они достаточно легки к повторению благодаря своей простой конструкции. Младшая модель и ее схема

Shield, управляющий мощной нагрузкой

Конечно, требовательность коммутируемых устройств здесь не превышает 220В при 5А постоянного тока, но можно подключить к выходам магнитные пускатели, с помощью которых уже управлять гораздо более мощным оборудованием. Shield, управляющий мощной нагрузкой

Понимание принципов платы расширения и управляющих сигналов Arduino можно определить по схеме устройства:

К сожалению, описанное устройство не может коммутировать сети переменного тока. Для этого используется посредник, подключаемый далее – ICStation 8 Channel EL Escudo Dos Shield for Arduino. Это семисторный вид шилдов Arduino на 8 каналов. Благодаря ему микроконтроллер может управлять шинами переменного тока. ICStation 8 Channel EL Escudo Dos Shield for Arduino

Двигатели и Ардуино

Одной из ниш применения микроконтроллеров всегда были роботизированные приборы, для которых обязательно нужны драйверы, управляющие двигателями.

В нише Ардуино разработан целый класс таких устройств, предназначенных для установки в качестве шилда, с целью прямого контактного подключения двигателей. Примером может служить Motor Shield, предназначенный для контроля четырех фазовых моторов постоянного тока или пары шаговых. Motor Shield

Основа устройства – две мостовых микросхемы L293, контактные группы портов которых в точках подключения к Ардуино демонстрируются далее: Схема подключения Motor Shield

В верхнем левом углу можно видеть входы группы контроля, в которые поступает плюс, минус и управляющий сигнал. Где помечено стрелкой, обычно размещается перемычка, указывающая устройству, откуда оно берет энергию – от самой Ардуино или внешнего питания. Обычно в схеме используется напряжение 5В.

Для применения шилда с 4-мя фазовыми двигателями выполняется немного другой их монтаж с этой платой: Подключение фазовых двигателей к Motor Shield

Основная библиотека для управления – AFMotor.

Есть вариант исполнения от российского изготовителя. Его основное отличие – только одна мостовая L298, что соответственно уменьшает возможности устройства. Коммутация выполняется или одного шагового двигателя, или двух фазовых.

Плюсом можно назвать их поддерживаемую мощность – в параллельном режиме доступно питать 4-амперный мотор, рассчитанный на работу от 24В. Шилд управления двигателями от Амперки

Это еще не все, что относится к контролю моторов. Часто применяются роботизированные сборки, в которых намного больше, чем пара двигателей. Для них соответственно требуется много серво-шилдов. Большое их количество вполне заменит универсальный Multi Servo Shield. Его схема подключения: Multi Servo Shield

Конечно, устройство не блещет мощностью подключаемых моторов, но его плюс в их количестве. Можно использовать аж 24 штуки.


Важным вопросом для Atmega, как, впрочем, и любого микрокомпьютера, служит питание. Существуют шилды, обеспечивающие его бесперебойность в случае утраты внешнего источника: Power Shield

Функция выполняется схемой с литий-ионным аккумулятором, размещаемым на своей плате в общий стек Ардуино. Обеспечивается полный автоматизированный контроль поступления внешнего напряжения и поддержка всей сборки в рабочем состоянии в случае его отсутствия.

Не оставлен без внимания и вопрос внешних коммуникаций. Шилды этого типа зачастую поставляются вместе с разъемами чтения SD-card.

Самым простым из существующих на текущий момент считается W5100, более продвинутый – W5500. Последний обладает лучшей оптимизацией в плане быстродействия и энергосбережения. Основное предназначение обоих – связь посредством кабельных UDP сетей по протоколу TCP/IP. W5100 и W5500

Есть у этих плат и младший брат для соединения с Arduino NANO. Но он изготавливается в виде модуля, а не шилда, и лишен разъема для SD-card. Модуль LAN

Не забыты и беспроводные коммуникации по WIFI. К примеру, ниже представлен официальный шилд, использующий 802.11b/g соединения.

Как видно по фотографии, на схеме кроме разъема для SD-карт присутствует и мини-USB, через который можно производить обновление ПО самого устройства, в основе своей – микроконтроллера связи. WIFI Shield

Интерфейс с человеком

Самое главное для любого компьютера – обеспечивать интерфейс с человеком. Здесь есть целый комплекс шилдов, от экрана с несколькими управляющими клавишами до системы распознавания голоса. Последняя представлена ниже: EasyVR Shield 3.0

Среди функций шилда не только контроль произносимого человеком, но и воспроизведение определенного текста, записанного в память устройства. Очень удобная возможность для организации своеобразного голосового диалога с Ардуино.

Конечно, говорить мало, нужно еще и видеть, что происходит. Здесь поможет LCD Keypad shield – шилд, обладающий двухстрочным экраном на 16 символов в каждой строке. Кроме отображения информации на его плате расположено несколько клавиш, позволяющих отдавать команды их нажатием контроллеру. LCD Keyboard Shield

Конечно, эта модель не единственная. В ее классе множество устройств. Для конкретно названой, из технических данных можно сообщить, что она использует для своей работы множество портов Ардуино. Распиновка платы с описанием входов:

Используемая библиотека для работы с дисплеем – LiquidCrystal.

Шилды, изменяющие модель контроллера

Конечно, здесь речь идет не о наращивании мощности, а об увеличении размера платы под следующий вид модели и соответствующее количество контактов.

Хорошим примером может послужить Nano Uno shield, превращающий Ардуино НАНО в УНО. Nano Uno Shield

Объединяющий шилд

Существует целый класс плат, которые обладают возможностями объединения многих других, выводя выходы их на одну. Характерный представитель – Arduino Sensor Shield. Чего только на нем не присутствует – порты COM, I2C, 6 цифровых и 12 аналоговых, коннектор LCD двух видов, возможность присоединения Bluetooth, радио модуля, и ридера SD. Arduino Sensor Shield

Дополнительные возможности

В конце хотелось бы вспомнить Arduino More-Core Shield. Очень своеобразная вещь, в своей основе – дополнительный микроконтроллер, расширяющий возможности центрального с использованием процессора ATMega328. Этакое второе ядро системы, причем количество их можно наращивать, подключая колодки в общий стек. Стопка подключенных Arduino More-Core Shield

Перечислены, конечно, далеко не все виды и типы шилдов, рассказано было только о наиболее известных из них.

Главный плюс оборудования такого типа – низкая цена приобретения и владения, при глобальности предоставляемых возможностей. Даже начинающий специалист, пользуясь модулями и шилдами Ардуино, способен создать любое устройство, которое полностью покроет все его запросы.

Универсальный IR remote Ардуино ИК пульт ДУ для телевизора

Изучив инструкцию, вы можете собрать на базе IR remote Arduino один универсальный ДУ пульт для телевизора, который заменит все пульты в вашем доме.

Для ИК пульта Ардуино вам понадобятся:

  • Arduino (я использовал дешевую копию Uno)
  • Плата LCD Keypad Shield
  • 1 инфракрасный светодиод
  • 1 инфракрасный датчик
  • Компьютер для запуска компилятора Arduino

Коды и программы:

  • Программа для приема сигналов (ссылка)
  • Основная программа (ссылка)
  • Видео программа (ссылка)

Шаг 1: Введение

Инфракрасное излучение применяется в различных областях, например, для удаленного контроля домашних устройств.

Процесс связи между эмиттером (пультом) и ресивером (устройством) начинается с нажатия пользователем кнопки на пульте. Ресивер имеет генератор и чип с определенной конфигурацией, что позволяет ему принимать инфракрасные волны частотой 39 кГц. Каждое нажатие кнопки передает чипу определенный код, что позволяет устройству различать команды.

Доходя до инфракрасного светодиода, сигнал преобразуется в ряд импульсов (940 нм), а затем в квадратичную волну, которая отдает команду устройству.

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

Шаг 2: Аппаратное оборудование

Эта инструкция проста и не требует конструирования сложных схем. Работа будет сосредоточена на коде.

Мы будем использовать Ардуино и LCD Keypad Shield для визуализации меню кодов пульта.

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

Шаг 3: Считывание кодов

Перед сборкой универсального пульта необходимо загрузить в него коды тех пультов, которые мы собираемся использовать. Для этого мы будем использовать инфракрасный датчик.

Для сборки схемы нужно следовать наброску, изображенному на картинке. Необходимо подключить сигнальный датчик к выходу 2, а остальные контакты к 5В и заземлению.

Код взят из учебника Adafruit, я немного изменил его для простоты понимания.

После загрузки кода и подключения датчика мы переходим к вкладке «Tools» и нажимаем на «Serial Monitor». После этого вы увидите сообщение «Ready to decode IR!». Теперь нажатие кнопки на пульте, направленном на сенсор, будет считывать код.

Если вы используете предоставленную мной версию, показания появятся в форме кода, и код будет готов для вставки в программу Arduino. Чтобы не потерять этот код, можно создать .txt файл и вставить его туда.

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

Совет: если Arduino показывает сообщение «Serial port ‘COM3’ not found. Did you select the right one from the Tools > Serial Port menu?», значит, ваш Arduino не подключен или порт неисправен.

Как только все необходимые коды были получены, переходим к следующему шагу.

Шаг 4: Настройка кодов: меню и подменю

Перед загрузкой кодов нам нужно визуализировать их. Нужно создать меню с необходимыми функциями.

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

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

Как только вы открыли файл с кодом, в первую очередь нужно посмотреть на строки в зеленой рамке. Эти константы ограничивают область меню и подменю. Отсчет начинается с числа 0, т.е. если ввести «2», программа создаст три меню.

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

После ознакомления с фотографиями укажите имя меню в массиве символов меню (см. фото 2). Данный код рассчитан на три меню, но вы можете добавить столько, сколько вам нужно, повторив структуру на четвертом изображении и внеся соответствующие настройки в массив и домены.

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

Программа отслеживает вашу позицию в массиве меню/подменю. Например, если вы меняете положение в меню, эта переменная также изменяется. Когда вы нажимаете кнопку, вы отправляете трансмиттеру данные о вашей позиции, таким образом устройство выполняет полученную команду.

Необходимо скопировать и вставить коды, которые были получены при чтении сигналов устройства в соответствующие меню и подменю. Проследите, чтобы индексы сигналов совпадали, иначе пульт не будет работать.

После этого нужно сохранить полученный код.

Шаг 5: Проверка

После завершения манипуляций с кодом, убедитесь, что вы переставили контакт инфракрасного светодиода из цифрового разъема 3 в ground.

Левая и правая кнопки служат для навигации по меню, кнопки вверх и вниз нужны для управления подменю, select отправляет сигнал устройству.

Для увеличения мощности и диапазона пульта можно использовать несколько светодиодов и транзистор, как показано на изображении. Питание стокового вывода ограничено 40 мА, чего будет достаточно для одного или двух светодиодов, но не хватит для пяти.

Ёмкость резистора для основы (выход посередине транзистора) должна составлять около 1-2 к.

Резистор может не понадобиться, так как здесь используется высокочастотное переключение, и светодиоды сами будут управлять мощностью. Я пробовал использовать стандартные ИК-светодиоды с питанием в 5 В от 3 разъема, это работало без проблем.

Совет. Можно использовать цифровую камеру для того, чтоб увидеть инфракрасное излучение от светодиода для проверки.

Рассказываю как сделать какую-либо вещь с пошаговыми фото и видео инструкциями.

ИК пульт ардуино

ИК приемник и инфракрасный пульт дистанционного управления – самый распространенный и простой способ управления электронной аппаратурой. Инфракрасный спектр излучения не виден человеческим глазом, но он отлично принимается ИК приемниками, которые встроены в электронные приборы. Модули Arduino ir remote используются для управления различной техникой в прямой видимости.

Принцип действия ИК пульта

Широкое применение ИК излучателей стало возможным благодаря их низкой стоимости, простоте и удобству в использовании. ИК излучение лежит в диапазоне от 750 до 1000 мкм – это самая близкая часть спектра к видимому свету. В области инфракрасного излучения могут меняться оптические свойства различных материалов. Некоторые стекла, например, становятся непрозрачными для ИК лучей, парафин же наоборот прозрачен в ИК спектре.

Регистрируется излучение с помощью специальных фотоматериалов, на основе которых изготавливаются приемники. Источником инфракрасного излучения помимо нагретых тел (Солнца, ламп накаливания или свечей), могут быть твердотельные приборы – ИК светодиоды, лазеры. Излучение в инфракрасном диапазоне обладает рядом особенностей, благодаря которым их удобно использовать в пультах:

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

Работа пульта осуществляется следующим образом. При нажатии кнопки происходит кодирование сигнала в инфракрасном свете, приемник принимает его и выполняет требуемое действие. Информация кодируется в виде логической последовательности пакетов импульсов с определенной частотой. Приемник получает эту последовательность и выполняет демодулирование данных. Для приема сигнала используется микросхема, в которой содержатся фотоприемник (фотодиод), усилители, полосовой фильтр, демодулятор (детектор, который позволяет выделить огибающую сигнала) и выходной транзистор. Также в ней установлены фильтры – электрический и оптический. Работают такие устройства на расстоянии до 40 метров. ИК способ передачи данных существует во многих устройствах: в бытовых приборах, в промышленной технике, компьютерах, оптоволоконных линиях.

IR приемник Arduino

Для считывания IR сигнала понадобятся сама плата Ардуино, макет, приемник IR сигнала и перемычки. Существует огромное множество различных приемников, но лучше использовать TSOP312 или другие соответствующие для Ардуино. Данные от пульта к приемнику могут передаваться по протоколу RC5 или NEC.

Чтобы определить, какая ножка к чему относится, нужно посмотреть на датчик со стороны приемника. Тогда на приемнике центральный контакт – это земля, слева – выход на микроконтроллер, справа – питание.

Для удобства можно использовать готовые модули IR приемника.

Подключение IR приемника к ардуино

Выходы IR приемника подключают к Ардуино к портам GND, 5V и цифровому входу. Схема подключения датчика к 11 цифровому пину изображена ниже.

Вот так выглядит схема с модулем инфракрасного приемника:

Библиотеки для работы с IR

Для работы с ИК устройствами можно использовать библиотеку IRremote, которая позволяет упростить построение систем управления. Скачать библиотеку можно здесь. После загрузки скопируйте файлы в папку arduinolibraries. Для подключения в свой скетч библиотеки нужно добавить заголовочный файл #include .

Для чтения информации используется пример IRrecvDumpV2 из библиотеки. Если пульт уже существует в списке распознаваемых, то сканирование не потребуется. Для считывания кодов нужно запустить среду ARduino IDE и открыть пример IRrecvDemo из IRremote.

Существует и вторая библиотека для работы с ИК сигналами – это IRLib. Она похожа по своему функционалу на предыдущую. По сравнению с IRremote в IRLib имеется пример для определения частоты ИК датчика. Но первая библиотека проще и удобнее в использовании.

После загрузки библиотеки можно начать считывать получаемые сигналы. Для этого используется следующий код.

Оператор decode_results нужен для того, чтобы присвоить полученному сигналу имя переменной results .

В коде нужно переписать «HEX» в «DEC».

Затем после загрузки программы нужно открыть последовательный монитор и нажимать кнопки на пульте. На экране будут появляться различные коды. Нужно сделать пометку с тем, к какой кнопке соотносится полученный код. Удобнее полученные данные записать в таблицу. После этот код можно записать в программу, чтобы можно было управлять прибором. Коды записываются в память самой платы ардуино EEPROM, что очень удобно, так как не придется программировать кнопки при каждом включении пульта.

Бывает, что при загрузке программы выдается ошибка «TDK2 was not declared In his scope». Для ее исправления нужно зайти в проводник, перейти в папку, в которой установлено приложение Arduino IDE и удалить файлы IRremoteTools.cpp и IRremoteTools.h. После этого нужно произвести перезагрузку программы на микроконтроллер.


Использование Arduino ir remote упрощает жизнь пользователю. В качестве пульта дистанционного управления может выступать мобильный телефон, планшет или компьютер – для этого только нужен специальный софт. При помощи Ардуино можно централизовать все управление. Одной кнопкой на пульте можно выполнить сразу несколько действий – например, включить одновременно телевизор и Blu-Ray.