Obsah:

Použití infračerveného senzoru s Arduino: 8 kroků (s obrázky)
Použití infračerveného senzoru s Arduino: 8 kroků (s obrázky)

Video: Použití infračerveného senzoru s Arduino: 8 kroků (s obrázky)

Video: Použití infračerveného senzoru s Arduino: 8 kroků (s obrázky)
Video: Ze strojárny do ESA – přednáška Engineering Student Club 2024, Listopad
Anonim
Použití infračerveného senzoru s Arduino
Použití infračerveného senzoru s Arduino

Co je to infračervený (aka IR) senzor?

IR senzor je elektronický přístroj, který snímá IR signály ve specifických frekvenčních rozsazích definovaných standardy a převádí je na elektrické signály na svém výstupním pinu (obvykle se nazývá signální kolík). Infračervené signály se používají hlavně k přenosu příkazů vzduchem na krátké vzdálenosti (obvykle několik metrů), jako je to, s čím jste již pracovali na dálkových ovladačích televizoru nebo jiných podobných elektronických zařízeních.

IR komunikační protokol

Každý signál představuje konkrétní kód. Elektrické signály lze převést zpět na skutečná data/kód, který odesílatel odeslal. Když stisknete tlačítko na dálkovém ovládání televizoru, generuje signál odpovídající kódu tlačítka (např. Zapnuto/Vypnuto, Zvýšení hlasitosti atd.) A odešle jej do přijímače (v tomto případě vašeho televizoru). Odesílatel i příjemce se dohodli na sadě kódů, aby příjemce na základě každého kódu věděl, co má dělat. Způsob, jakým by měl být kód modulován (modelován) jako signál, je definován v jiném standardu a každý výrobce senzorů se normálně pokouší vyrobit produkt, který je s nimi kompatibilní, aby jej bylo možné použít v různých zařízeních. Jeden z nejznámějších standardních protokolů je od NEC. Stručnou historii IR protokolů najdete na Wikipedii pod názvem Consumer IR.

Krok 1: Jak vypadá IR senzor?

Jak vypadá IR senzor?
Jak vypadá IR senzor?
Jak vypadá IR senzor?
Jak vypadá IR senzor?
Jak vypadá IR senzor?
Jak vypadá IR senzor?

IR senzory jsou k dispozici v různých baleních. Zde můžete vidět některé typické obaly pro IR přijímač.

Krok 2: Deska/modul IR senzoru

Breakout deska/modul IR senzoru
Breakout deska/modul IR senzoru
Breakout deska/modul IR senzoru
Breakout deska/modul IR senzoru
Breakout deska/modul IR senzoru
Breakout deska/modul IR senzoru
Breakout deska/modul IR senzoru
Breakout deska/modul IR senzoru

Můžete si je také koupit jako IR modul/breakout board na eBay, Aliexpress nebo Amazon. Takové moduly obvykle obsahují jeden ze senzorů uvedených výše s pěkným balíčkem vhodným pro prkénko společně s LED diodou, která bliká, když senzor detekuje signál. Tím byste si všimli, že se přenášejí nějaká data. Velmi doporučuji začít s jedním z těchto modulů.

Poznámka: pokud máte surový infračervený senzor, nic se nezmění, kromě toho, že byste měli zkontrolovat datový list senzoru a ujistit se, že jej zapojujete správně, protože jinak můžete mít krásný modrý kouř s vůní, která by vydržela hodina. Víš co myslím;)

Krok 3: Požadované součásti a součásti

Požadované součásti a součásti
Požadované součásti a součásti

Zde najdete seznam komponent, které byste potřebovali k dokončení tohoto kurzu:

odkazy na eBay:

  • 1 x Arduino Uno:
  • 1 x IR senzorový modul s dálkovým ovládáním:
  • 4 x 220 ohmové odpory:
  • 4 x LED:
  • 8 x kabel Dupont:
  • 1 x nepájivá deska:
  • 1 x Mini breadboard (volitelně):

Odkazy na Amazon.com:

  • 1 x Arduino Uno:
  • 1 x IR senzorový modul s dálkovým ovládáním:
  • 1 x nepájivá deska:
  • 4 x 220 ohmové odpory:
  • 4 x LED:
  • 8 x kabel Dupont:
  • 1 x Mini breadboard (volitelně):

Krok 4: Připojení IR senzoru k Arduinu

Připojení IR senzoru k Arduinu
Připojení IR senzoru k Arduinu
Připojení IR senzoru k Arduinu
Připojení IR senzoru k Arduinu
Připojení IR senzoru k Arduinu
Připojení IR senzoru k Arduinu

Nastavení připojení infračerveného senzoru k Arduinu je velmi jednoduché. Kromě pinů VCC a GND má senzor pouze jeden výstupní pin, který by měl být připojen k jednomu z digitálních pinů Arduina. V tomto případě je připojen ke kolíku 13.

Pokusil jsem se předvést jak modul IR senzoru, tak i nastavení surového IR senzoru. Jak je vidět na obrázcích, poloha pinů VCC a GND na modulu senzoru je opačná než surový senzor. To však nemusí platit pro váš senzor, takže jak bylo uvedeno v předchozím kroku, v případě použití surového senzoru nejprve zkontrolujte datový list.

Krok 5: Najděte kód odpovídající každému klíči na dálkovém ovladači

Najděte kód odpovídající každému klíči na dálkovém ovladači
Najděte kód odpovídající každému klíči na dálkovém ovladači
Najděte kód odpovídající každému klíči na dálkovém ovladači
Najděte kód odpovídající každému klíči na dálkovém ovladači
Najděte kód odpovídající každému klíči na dálkovém ovladači
Najděte kód odpovídající každému klíči na dálkovém ovladači

Abyste mohli Arduino naprogramovat tak, aby po stisknutí klávesy na dálkovém ovládání něco udělalo, měli byste nejprve mít kód odpovídající této klávese. Klíčový kód je číslo obvykle prezentované jako hexadecimální. Každý dálkový ovladač má vlastní sadu klíčových kódů, přičemž je možné, že dva ovladače sdílejí stejný kód pro různé účely. Mít různé kódy klíčů spolu s použitím různých frekvenčních rozsahů zajišťuje, že dva dálkové ovladače různých zařízení nebudou rušit. Proto když změníte televizní kanál, váš DVD přehrávač vůbec nereaguje.

Chcete -li zjistit kódy pro váš IR dálkový ovladač, musíte nejprve spustit jednoduchý náčrt, který se pokusí přečíst kód ze senzoru po stisknutí klávesy a odeslat jej přes sériový port do vašeho počítače, kde k němu máte přístup pomocí nástrojů Serial Monitor Arduino IDE. K tomu slouží skica připojená k této sekci. Bylo by lepší stisknout každé tlačítko, abyste viděli kód a zapsali si seznam kódů někam, abyste v budoucnu nemuseli tento kód znovu spouštět. Seznam klíčových kódů, které vidíte jako tabulku na obrázku, jsou ve skutečnosti kódy, které jsem obdržel při stisknutí tlačítek na levném IR dálkovém ovladači.

Můžete také získat přístup ke skutečnému zdrojovému kódu sdílenému v mém webovém editoru Arduino na ir-key-code-logger.

Poznámka: Nebojte se, pokud někde mezi tím uvidíte kód jako FFFFFF. To znamená, že jste na chvíli stiskli a přidrželi tlačítko. Vrátíme se k tomu později. Prozatím je prostě ignorujte a soustřeďte se na jiné kódy.

Krok 6: Ovládejte sadu LED diod pomocí IR dálkového ovladače

Ovládejte sadu LED pomocí IR dálkového ovladače
Ovládejte sadu LED pomocí IR dálkového ovladače
Ovládejte sadu LED pomocí IR dálkového ovladače
Ovládejte sadu LED pomocí IR dálkového ovladače
Ovládejte sadu LED pomocí IR dálkového ovladače
Ovládejte sadu LED pomocí IR dálkového ovladače

Nyní, když máme kód pro každé tlačítko, je čas zaměřit se na způsob, jakým je můžeme použít. Normálně používáte IR dálkové ovládání k odesílání příkazů do Arduina, například k zapnutí nebo vypnutí lampy, pohybu robota v určitém směru, zobrazení něčeho na obrazovce LCD/OLED atd. Zde se pokusíme demonstrovat postup pomocí jednoduchého obvod skládající se ze 4 LED v různých barvách. Každý z nich chceme zapnout nebo vypnout pomocí vyhrazeného tlačítka IR dálkového ovladače. Jak vidíte na schématu, musíte Arduino připojit k LED a senzoru následujícím způsobem:

Arduino GND -> IR senzor GND.

Arduino VCC -> IR senzor VCC.

Arduino 13 -> Výstup signálu IR senzoru.

Arduino 2 -> Anoda modré LED (kratší kolík modré LED)

Arduino 3 -> Anoda zelené LED (kratší pin zelené LED)

Arduino 4 -> Anoda žluté LED (kratší pin žluté LED)

Arduino 5 -> Anoda červené LED (kratší pin červené LED)

Arduino GND -> Katoda všech LED diod přes odpor 220 ohmů (delší pin LED)

Kód odpovídající tomuto obvodu najdete v přiloženém souboru nebo v mém webovém editoru Arduino na ir-led-control.

Krok 7: Odstraňování problémů

Při nastavování projektu a provádění následujících kroků můžete narazit na mnoho podivných situací. Zde je seznam některých běžných chyb, se kterými se můžete setkat při práci s IR senzorem.

Získání FFFFFF při stisknutí klávesy

Po stisknutí tlačítka si můžete všimnout, že většinou hlásí kód jako FFFFFF. K tomu dojde, když stisknete tlačítko a na chvíli ho podržíte, dokonce i na krátkou dobu. Scénář je takový, že když zpočátku stisknete tlačítko, IR dálkový ovladač odešle kód tlačítka a dokud tlačítko podržíte, opakuje odesílání FFFFFF, což znamená, že uživatel stále mačká tlačítko nahlášené nedávno. To by bylo v pořádku. Můžete je prostě vynechat. Skutečný kód je ten, který jste dostali těsně před FFFFFF na sériovém monitoru.

IR senzor vůbec nereaguje a zdá se, že se zahřívá

Vypněte napájení !!! Pokud jste si jisti, že skica záznamníku klíčových kódů je správná, problém může být způsoben špatným nastavením vašich vodičů. Stalo se mi to tak, že pro svůj IR modul (ten připojený k desce) jsem připojil VCC a GND opačným způsobem (kvůli nepoužívání správných barev pro moje propojovací vodiče). Přitom shořela součástka senzoru a vznikl pěkný modrý kouř. Koupil jsem balíček surových IR senzorů a zkusil jsem ho vyměnit a teď to funguje jako kouzlo:). Bohužel jsem udělal stejnou chybu, když jsem testoval surový IR senzor a tentokrát se nic nestalo, kromě toho, že se senzor zahřál. Před zapnutím napájení tedy vždy zkontrolujte obvod!

Někdy senzor detekuje kód, který jsem nikdy předtím neviděl

Toto je jeden z nejčastějších problémů. Je to pravděpodobně z jednoho z následujících důvodů:

Nemíříte IR dálkovým ovladačem přímo na senzor

To povede k tomu, že budete mít nějaké nové kódy (většinou delší kódy), které jste nikdy předtím neobdrželi a běžně se neshodují s délkou kódů, které již máte. Nezapomeňte tedy dálkový ovladač vždy namířit na senzor.

Používáte levné IR dálkové ovládání (jako to, které jsem použil v tomto tutoriálu)

Namísto použití levných nepředvídatelných dálkových ovladačů můžete vyzkoušet stejný scénář pomocí dálkového ovladače televizoru nebo DVD přehrávače nebo infračerveného dálkového ovladače jakéhokoli zařízení, které máte. Obvykle mají dobrou kvalitu signálu/hardwaru (a samozřejmě jsou dražší) a na základě mých zkušeností normálně fungují dobře, i když nemíříte dálkovým ovladačem přímo na senzor.

Jak poznám, zda kód, který je zaznamenán, není odpad

Kódy jsou obvykle prezentovány v hexadecimálním formátu. Pokud je převedete na odpovídající binární hodnotu, všimnete si, že binární reprezentace posledního bajtu je negací bajtu před tím. Pokud to víte, můžete provést tuto kontrolu v kódu a ujistit se, že kód, který jste obdrželi, je skutečně platný nebo ne. Pokud například získáte FF7A85, jeho binární reprezentace bude následující:

1111 1111 0111 1010 1000 0101

Zleva doprava je každá dávka 4 číslic reprezentací znaku v původním hexadecimálním čísle. Jak vidíte, dávka odpovídající 7 je 0111 a dávka odpovídající 8 je 1000, což je její přesná negace. Negací mám na mysli, že všechny 0s budou 1s a všechny 1s budou nahrazeny 0s. Totéž platí pro další, která je A (1010) a 5 (0101).

Krok 8: Co dělat dále?

Teď jsi na řadě. Je jen na vaší fantazii, abyste viděli, co můžete s tímto malým jednoduchým senzorem v ruce dělat. Zde je několik nápadů na začátek:

  • Použijte IR dálkové ovládání jednoho ze zařízení, které máte doma (TV, Stereo atd.) A zkuste je použít ve svém projektu Arduino
  • Zkuste zapnout všechny LED diody najednou stisknutím klávesy a poté je vypnout pomocí jiné klávesy
  • Pomocí tlačítek Nahoru/Dolů na dálkovém ovladači zapněte/vypněte LED diody jednu po druhé, dokud se všechny nezapnou/nevypnou
  • Vytvořte semafor pomocí LED diod a ovládejte jej pomocí dálkového ovladače
  • Pokud máte po ruce malý stejnosměrný motor, zkuste spustit/zastavit nebo změnit směr jeho otáčení pomocí IR dálkového ovladače
  • Pomocí dálkového ovladače televizoru můžete ovládat robota nebo na něm aktivovat/deaktivovat některá čidla/akční členy

Dejte mi vědět v komentářích, co byste udělali (nebo jste již udělali) pomocí IR dálkového ovladače.

Doporučuje: