Съдържание:

Използване на инфрачервен сензор с Arduino: 8 стъпки (със снимки)
Използване на инфрачервен сензор с Arduino: 8 стъпки (със снимки)

Видео: Използване на инфрачервен сензор с Arduino: 8 стъпки (със снимки)

Видео: Използване на инфрачервен сензор с Arduino: 8 стъпки (със снимки)
Видео: Използване на Melexis MLX90614 инфрачервен термометър с Arduino 2024, Ноември
Anonim
Използване на инфрачервен сензор с Arduino
Използване на инфрачервен сензор с Arduino

Какво е инфрачервен (известен още като IR) сензор?

IR сензор е електронен инструмент, който сканира IR сигнали в определени честотни диапазони, определени от стандартите, и ги преобразува в електрически сигнали на своя изходен щифт (обикновено наричан сигнален щифт). Инфрачервените сигнали се използват главно за предаване на команди по въздуха на къси разстояния (обикновено няколко метра) като това, с което вече сте работили на дистанционното управление на телевизора или други подобни електронни устройства.

IR комуникационен протокол

Всеки сигнал представлява определен код. Електрическите сигнали могат да бъдат преобразувани обратно в действителните данни/код, изпратен от изпращача. Когато натиснете бутон на дистанционното управление на телевизора, той генерира сигнал, съответстващ на кода на бутона (напр. Вкл./Изкл., Увеличаване на звука и т.н.) и го изпраща към приемник (в този случай към вашия телевизор). И подателят, и получателят се договориха за набор от кодове, така че получателят да знае какво да прави въз основа на всеки код. Начинът, по който кодът трябва да бъде модулиран (моделиран) като сигнал, е дефиниран в различни стандарти и всеки производител на сензори обикновено се опитва да произведе продукт, съвместим с тях, така че да може да се използва в различни устройства. Един от най -известните стандартни протоколи е от NEC. Можете да намерите кратка история на IR протоколите в Wikipedia под заглавие Consumer IR.

Стъпка 1: Как изглежда инфрачервен сензор?

Как изглежда инфрачервеният сензор?
Как изглежда инфрачервеният сензор?
Как изглежда инфрачервеният сензор?
Как изглежда инфрачервеният сензор?
Как изглежда инфрачервеният сензор?
Как изглежда инфрачервеният сензор?

IR сензорите се предлагат в различни опаковки. Тук можете да видите някои типични опаковки за IR приемник.

Стъпка 2: Платка/модул за пробив на IR сензора

Пробивна платка/модул на IR сензора
Пробивна платка/модул на IR сензора
Пробивна платка/модул на IR сензора
Пробивна платка/модул на IR сензора
Пробивна платка/модул на IR сензора
Пробивна платка/модул на IR сензора
Пробивна платка/модул на IR сензора
Пробивна платка/модул на IR сензора

Можете също така да ги закупите като IR модул/пробивна дъска в eBay, Aliexpress или Amazon. Такива модули обикновено включват един от споменатите по -горе сензори с приятен пакет, подходящ за макет, заедно със светодиод, който ще мига, когато сензорът открие сигнал. По този начин ще забележите дали се прехвърлят някакви данни. Силно препоръчвам да започнете с един от тези модули.

Забележка: ако имате суров IR сензор, нищо няма да се промени, освен че трябва да проверите листа с данни на сензора, за да се уверите, че сте го свързали правилно, защото в противен случай може да имате красив син дим с миризма, която да продължи за час. Знаеш какво имам предвид;)

Стъпка 3: Необходими части и компоненти

Необходими части и компоненти
Необходими части и компоненти

Тук можете да намерите списъка с компоненти, които ще ви трябват, за да завършите този урок:

връзки към eBay:

  • 1 x Arduino Uno:
  • 1 x IR сензорен модул с дистанционно:
  • 4 x 220 ома резистори:
  • 4 x LED:
  • 8 x кабел Dupont:
  • 1 х планка без запояване:
  • 1 х мини платка (по избор):

Връзки на Amazon.com:

  • 1 x Arduino Uno:
  • 1 x IR сензорен модул с дистанционно:
  • 1 x Планка за запояване:
  • 4 x 220 ома резистори:
  • 4 x LED:
  • 8 x Dupont кабел:
  • 1 x Мини платка (по избор):

Стъпка 4: Свързване на IR сензор към Arduino

Свързване на IR сензор към Arduino
Свързване на IR сензор към Arduino
Свързване на IR сензор към Arduino
Свързване на IR сензор към Arduino
Свързване на IR сензор към Arduino
Свързване на IR сензор към Arduino

Настройката на връзка с IR сензор към Arduino е много проста. Освен VCC и GND щифт, сензорът има само един изходен щифт, който трябва да бъде свързан към един от цифровите щифтове на Arduino. В този случай той е свързан към щифт 13.

Опитах се да демонстрирам както модул за IR сензор, така и настройка на суров IR сензор. Както може да се види на снимките, позицията на щифтовете VCC и GND на сензорния модул е противоположна на необработения сензор. Въпреки това може да не е така за вашия сензор, така че както е споменато в предишната стъпка, в случай на използване на необработен сензор, първо проверете листа с данни.

Стъпка 5: Намерете кода, съответстващ на всеки ключ на дистанционното управление

Намерете кода, съответстващ на всеки ключ на дистанционното управление
Намерете кода, съответстващ на всеки ключ на дистанционното управление
Намерете кода, съответстващ на всеки ключ на дистанционното управление
Намерете кода, съответстващ на всеки ключ на дистанционното управление
Намерете кода, съответстващ на всеки ключ на дистанционното управление
Намерете кода, съответстващ на всеки ключ на дистанционното управление

За да програмирате Arduino да направи нещо, когато натиснете клавиш на дистанционното, първо трябва да имате кода, съответстващ на този ключ. Кодът на ключа е число, обикновено представено като шестнадесетично. Всяко дистанционно управление има свой собствен набор от ключови кодове, докато е възможно два контролера да споделят един и същ код за различни цели. Наличието на различни ключови кодове заедно с използването на различни честотни диапазони гарантира, че два дистанционни контролера на различни устройства няма да имат смущения. Ето защо, когато смените телевизионния си канал, вашият DVD плейър изобщо не реагира.

За да откриете кодовете за вашето IR дистанционно, първо трябва да изпълните проста скица, която се опитва да прочете кода от сензора, когато натиснете клавиш, и го изпраща през серийния порт на вашия компютър, където можете да получите достъп до него с помощта на инструменти за сериен монитор на Arduino IDE. Това прави скицата, приложена към този раздел. По -добре е да натиснете всеки бутон, за да видите кода и да запишете списъка с кодове някъде, така че да не се налага да го стартирате отново в бъдеще. Списъкът с ключови кодове, които виждате като таблица на снимката, всъщност са кодове, които получих при натискане на бутони на евтиното ми дистанционно управление.

Можете също така да получите достъп до действителния изходен код, споделен в моя уеб редактор на Arduino, в ir-key-code-logger.

Забележка: Не се страхувайте, ако видите код като FFFFFF някъде по средата. Това означава, че сте натиснали и задържили бутон за известно време. Ще се върнем към него по -късно. Засега просто ги игнорирайте и се съсредоточете върху други кодове.

Стъпка 6: Управлявайте набор от светодиоди с помощта на IR дистанционно управление

Управлявайте набор от светодиоди с помощта на IR дистанционно управление
Управлявайте набор от светодиоди с помощта на IR дистанционно управление
Управлявайте набор от светодиоди с помощта на IR дистанционно управление
Управлявайте набор от светодиоди с помощта на IR дистанционно управление
Управлявайте набор от светодиоди с помощта на IR дистанционно управление
Управлявайте набор от светодиоди с помощта на IR дистанционно управление

Сега, когато имаме код за всеки бутон, е време да се съсредоточим върху начина, по който можем да ги използваме. Обикновено използвате IR дистанционното, за да изпращате команди до Arduino, за да направите нещо като включване или изключване на лампа, преместване на робот в определена посока, показване на нещо на LCD/OLED екран и т.н. Тук се опитваме да демонстрираме процеса с помощта на проста верига, състояща се от 4 светодиода в различни цветове. Искаме да включим или изключим всеки от тях чрез специален бутон на IR дистанционното управление. Както можете да видите на схемата, трябва да свържете Arduino по следния начин към светодиоди и сензор:

Arduino GND -> IR сензор GND.

Arduino VCC -> IR сензор VCC.

Arduino 13 -> Изход за сигнал на IR сензор.

Arduino 2 -> Анод на синия светодиод (по -къс щифт на синия светодиод)

Arduino 3 -> Анод на зеления светодиод (по -къс щифт на зеления светодиод)

Arduino 4 -> Анод на жълтия светодиод (по -къс щифт на жълтия светодиод)

Arduino 5 -> Анод на червения светодиод (по -къс щифт на червения светодиод)

Arduino GND -> Катод на всички светодиоди чрез резистор 220 ома (по -дълъг щифт на светодиодите)

Можете да намерите кода, съответстващ на тази схема, в прикачения файл или в моя уеб редактор Arduino на ir-led-control.

Стъпка 7: Отстраняване на неизправности

Докато настройвате проекта си и следвате стъпките, може да срещнете много странни ситуации. Ето списъка с някои често срещани грешки, които може да получите при работа с IR сензор.

Получаване на FFFFFF при натискане на клавиш

При натискане на бутон може да забележите, че през повечето време той съобщава код като FFFFFF. Това се случва, когато натиснете бутон и го задържите за известно време, дори за кратък период от време. Сценарият е, че когато първоначално натиснете бутона, IR дистанционното изпраща кода на бутона и докато задържите бутона, той повтаря изпращането на FFFFFF, което означава, че потребителят все още натиска бутона, докладван наскоро. Това би било ОК. Можете просто да ги пропуснете. Действителният код е този, който имате точно преди FFFFFF на серийния монитор.

IR сензорът изобщо не реагира и изглежда се затопля

Прекъснете захранването !!! Ако сте сигурни, че скицата на регистратора на ключови кодове е правилна, тогава проблемът може би се дължи на грешната настройка на вашите проводници. Сценарият, който ми се случи, беше, че за моя IR модул (този, прикрепен към платката) бях свързал VCC и GND по обратния начин (поради това, че не използвах подходящи цветове за моите свързващи проводници). По този начин сензорният компонент изгоря и се вдигна хубав син дим. Купих пакет сурови IR сензори и се опитах да го сменя и сега работи като чар:). За съжаление направих същата грешка, когато тествах със суров IR сензор и този път нищо не се случи, освен сензорът да се затопли. Затова винаги проверявайте веригата, преди да включите захранването!

Понякога сензорът открива код, който никога не съм виждал досега

Това е един от най -често срещаните проблеми. Най -вероятно това се дължи на една от следните причини:

Не насочвате IR дистанционното директно към сензора

Това ще доведе до появата на някои нови кодове (предимно по -дълги кодове), които никога досега не сте получавали и обикновено не съвпадат с дължината на кодовете, които вече имате. Затова не забравяйте винаги да насочвате дистанционното към вашия сензор.

Използвате евтино IR дистанционно (като това, което използвах в този урок)

Вместо да използвате евтини непредсказуеми дистанционни управления, можете да опитате същия сценарий, като използвате дистанционното управление на телевизора или DVD плейъра или IR дистанционното управление на всяко устройство, което имате. Обикновено те имат добро качество на сигнала/хардуера (и разбира се са по -скъпи) и според моя опит обикновено работят добре, дори ако не насочите дистанционното директно към сензора.

Как да разбера дали записаният код не е боклук

Кодовете обикновено се представят в шестнадесетичен формат. Ако ги преобразувате в съответната двоична стойност, ще забележите, че двоичното представяне на последния байт е отрицанието на байта идва преди това. Ако знаете това, можете да направите тази проверка във вашия код, за да се уверите, че кодът, който сте получили, всъщност е валиден или не. Като пример, ако имате FF7A85, двоичното му представяне ще бъде както по -долу:

1111 1111 0111 1010 1000 0101

Отляво надясно всяка партида от 4 цифри представлява представяне на знак в оригиналния шестнадесетичен номер. Както можете да видите, партидата, съответстваща на 7, е 0111, а партидата, съответстваща на 8, е 1000, което е точното му отрицание. Под отрицание имам предвид, че всички 0 ще бъдат 1 и всички 1 ще бъдат заменени с 0. Същото важи и за следващия, който е A (1010) и 5 (0101).

Стъпка 8: Какво да направите по -нататък?

Сега е твой ред. Всичко зависи от вашето въображение да видите какво можете да направите с този малък прост сензор в ръката си. Ето няколко идеи за начало:

  • Използвайте IR дистанционното управление на едно от устройствата, които имате у дома (телевизор, стерео и т.н.) и се опитайте да го използвате във вашия проект Arduino
  • Опитайте се да включите всички светодиоди наведнъж, като натиснете клавиш и след това ги изключете с помощта на друг клавиш
  • Използвайте бутона нагоре/надолу на дистанционното управление, за да включите/изключите светодиодите един по един, докато всички те се включат/изключат
  • Създайте светофар със светодиоди и го управлявайте с помощта на дистанционното
  • Ако имате под ръка малък DC мотор, опитайте да стартирате/спрете или промените посоката на въртене чрез IR дистанционно
  • Можете да използвате дистанционното на телевизора си, за да управлявате робота си или да активирате/деактивирате някои сензори/задействащи устройства на него

Кажете ми за коментарите, какво бихте направили (или вече сте направили) с помощта на IR дистанционно.

Препоръчано: