altRobots
/robotigs/icons/actuator.pngActuatoren
/robotigs/icons/printboards.pngAlgemeen
/robotigs/icons/chassis.pngChassis
/robotigs/icons/arduino_logo.pngµControllers
/robotigs/icons/florigs.pngFlorigs
/robotigs/icons/interfacing.gifInterfacing
/robotigs/icons/microphone_icon.pngMuziek
/robotigs/icons/musicKey_icon.pngMuzikanten
/robotigs/icons/shield.pngSchildjes
/robotigs/icons/sensors.gifSensors
/robotigs/icons/languages.pngTalen
/robotigs/icons/battery.pngVoedingen
altContact
IR ontvanger KY-022/robotigs/icons/login_key.png    alt  
Infra Red is a cheap but not very convenient way to remotely control a moving Arduino robot. What you need is an IR remote control and an IR remote receiver. These can also be bought together as a (very cheap) set. The onboard LED only burns if the module is receiving data.
  • Bibliotheek
    • IRsmallDecoder.h
    • IRsmallDecoder Perfect for your Arduino projects that need a fast, simple and reliable decoder, but don`t require the usage of multiple different protocols at the same time and don`t need to send IR signals. Klinkt goed. IRsmallDecoder bijt niet met NewPing. Verder nog niet getest. Deze testen. Alleenstaand met code 513 voor een RC5 protocol werkt deze uitstekend. Alle toetsen geven een code.

    • IRremote.h
    • Deze bibliotheek wordt niet met de IDE wordt meegeleverd of geadviseerd. De bibliotheek is van z3t0 en kan worden gedownload vanaf Github. Echter:
      Deze 2 libraries bijten elkaar:
      //#include //Never use the IDE default but replace it IR RECEIVER
      // http://robotigs.nl/robotigs/includes/parts_header.php?idpart=10
      #include //Use this library to speed up the SRF04
      // http://robotigs.nl/robotigs/includes/parts_header.php?idpart=6
      We willen vooral wel werken met NewPing dus we moeten op zoek naar een alternatief. Wat biedt de IDE?
    • IRLremote.h
    • IRLremote.h bijt niet met NewPing. Verder nog niet getest.

/robotigs/icons/45in1/KY-022.png KY-022 37.9 The KY-022 is the standard infrared remote control receiver module for Arduino. Infrared receiving module adopts 1838 infrared receiving head, Frequency: 37.9KHz. Also separate available at Banggood. (pinout)
/robotigs/documentatie/plaatjes/tsop1736.png TSOP 1736 36 TSOP series datasheet, Arduino tutorial. This Vishay chip works just as well as the KY-022. It also works with the same software. Even the pinout is equal. Being slightly of the frequency is not a problem since almost all transmitters are rather broad in their emitting frequency.
/robotigs/documentatie/plaatjes/tsop1736.png TSOP 1738 38 TSOP series datasheet, Arduino tutorial. This Vishay chip works just as well as the KY-022. It also works with the same software. Even the pinout is equal.
hTe next step is to download and install the Brainy bits library. The IDE will ask you to upgrade, and you can do so.

If you are not working with the KY-022 then you will need the text below. There are 2 main quirks you should pay attention to:

  1. Frequency
    Infrared (wiki) is light that is invisible to the human eye. It is used for many applications amongst which TV remote controls. The TV remote control is the transmitter and you will need to buy a receiver. Such a receiver is called a Thin Small Outline Package chip. TSOP chips come in a broad variety since not every remote control transmits at the same frequency. Remotes use a range of infra red colours, much like from light red to dark red. And your receiver needs to work at the same frequency. You will have to find out at what frequency your remote control is working before you can buy the right TSOP chip. A TSOP chip usually has a name like for example TSOP 1735. The 35 in this name stands for the frequency. In Europe 36 kHz is rather common but in Japan 38 kHz is more often used. I have seen frequencies ranging between 25 - 55 kHz. In short: buy a TSOP which frequency matches your TV remote control.

  2. Protocol
    The TV remote control can only switch the infrared light on or off. A TSOP always gives a 5Vdc output unless he receives light of the right frequency. In that case the TSOP pulls his output down. That is also why a TSOP can be directly connected to an input pin on your Arduino. You don`t need any extra hardware. Although not obligated you will want to use an external interrupt pin to connect to. Since the light only can be put on or off, the transmitter creates a so called pulse train to indicate which key has been pressed by the user. Some pulses are longer then others and your Arduino will have to measure the duration of the pulses to decode which key has been pressed. The sequence and duration of the pulses are determined by a protocol. And you guessed it already: many protocols are in use. So you will also have to find out which protocol your remote control is using to be able to implement that protocol in your sketch. In short: use software that implements the protocol that matches your TV remote control.

When I set my Phillips SRU1060 as a Samsung TV this Arduino program gives a consistent result. But the library will keep on telling you that it has detected a NEC train pulse. Still it will function like it should. Under the same conditions my Provision also seems to work, but with different codes. Interesting.

Legacy

AVR410: RC5 IR Remote Control Receiver, and to analyze the pulse train a rather complicated program (not tested) has been published on Arduino playground. http://extremeelectronics.co.in/code-libraries/using-ir-remote-with-avr-mcus-part-ii/

Het RC5 protocol is niet makkelijk in software te vangen want de pulsen hebben een gelijke tijdsduur en moeten daarom worden onderzocht voordat u weet of er een 1 of een 0 ontvangen is. Het NEC protocol (ook wel Japanse protocol genoemd) is veel makkelijker in software te vangen want hierbij bepaalt de tijd tussen de pulsen of er een 1 of 0 is ontvangen. Dit is met een timer in een controller relatief gemakkelijk te meten. Om met dit protocol te kunnen werken dient u dus uw afstandsbediening in te stellen op een Japans apparaat (bijvoorbeeld: LG, JVC, Acorp, Hitachi, Nokia, Aiwa, Akai, AverMedia of NEC). De ontvanger werkt correct met de "Provision" universele afstandsbediening van Blokker (minder dan 10 EUR). Deze moet dan ingesteld worden door het TV knopje minimaal 5 seconden ingedrukt te houden totdat het ledje 2 keer kort knippert en vervolgens als code in te voeren: 499 (Hitachi). Het ledje zal daarna 2 keer kort oplichten ter bevestiging. Onderstaand een voorbeeld van een Japanse pulsetrain:

Nec protocol train

Gebruik.
De controller kan van te voren niet weten wanneer er een toets ingedrukt gaat worden. Daarom moet de TSOP worden aangesloten op een pin die een interrupt kan veroorzaken. Indien er ook sprake is van SPI communicatie tussen controllers moet de TSOP op de master controller worden geplaatst omdat dan de SPI communicatie foutloos zal blijven verlopen. Als aansluitpin moet de Input Capture Pin 1, ICP1, (D6 op de ATmega32) worden genomen. Deze moet worden ingesteld op falling edge herkenning. Deze edge wordt minimaal 4 clockcycles lang gemeten, anders is hij niet geldig als interrupt (Noise Capture Filter=On).Telkens als een burst wordt ontvangen wordt er een falling edge interrupt worden uitgevoerd. In deze interrupt wordt de counter uitgelezen en op 0 gezet om opnieuw te gaan tellen. De waarde van de counter bepaalt het verdere verloop:

1.bit =0 => 1,12 mS

2. bit =1 => 2,25 mS

3 startburst => 13,5 mS

4 verlopen (misschien niet nodig, door het tellen van bits)

http://www.scienceprog.com/ir-remote-control-signal-receiver-using-avr-microcontroller/

  • Software initialisatie.
    De TSOP maakt een blokgolf op pin ICP1. Dit veroorzaakt bij het laag pullen een interrupt in Counter 1. De ATmega Counter werkt in de Normal Mode. De totale duur van 1 keer aan en uit (hoog en laag) heet de frequentie. MrBlue loopt op een 16 mHz kristal. Het instellen van CTC voor Timer 1 gebeurt door het schrijven van:
    1. Timer Counter 1 Control Register A TCCR1A
      • bit 7,6 - COM1A1:COM1A0 Compare Output Mode for Compare unit A, 0:0 Normal Port Operation.
      • bit 5,4 - COM1B1:COM1B0 Compare Output Mode for Compare unit B, 0:0 Normal Port Operation.
      • bit 3,2 - FOC1A:FOC1B Force Output Compare Mode for Compare unit A of B, 0:0
      • bit 1,0 - WGM11:WGM10 Waveform Generation Mode, 0:0 Normal.
    2. Timer Counter 1 Control Register B TCCR1B
      • bit 7 - ICNC1 Input Capture Noise Canceller, 1 ICP1 is Filtered.
      • bit 6 - ICES1 Input Capture Edge Select, 0 Falling edge is trigger.
      • bit 5 - Reserved bit, 0 write to zero.
      • bit 4,3 - WGM13:WGM12 Waveform Generation Mode, 0:0 Normal.
      • bit 2:0 - CS12:CS11:CS10 Clock Select Prescaler, 101(1024 Default), 100(256) 011(64).
    3. Timer Interrupt MaSK TIMSK
      • Bits die niet worden beschreven, mogen niet worden gewijzigd.
      • bit 5 - TICIE1 Timer/Counter1, Input Capture Interrupt Enable, 1 Connected to RC5 receiver TSOP.
      • bit 4 - OCIE1A Timer/Counter1, Output Compare A Match Interrupt Enable, 0.
      • bit 3 - OCIE1B Timer/Counter1, Output Compare B Match Interrupt Enable, 0.
      • bit 2 - TOIE1 Timer/Counter1, Overflow Interrupt Enable, 0.
      •  

I received an Arduino extension / breakout? with my sensor kit. Which frequency and how do I determinate it?


Algemene informatie over dit onderdeel
KYcode KY-022
Prijs indicatie  €  2,96
Sketch voorbeeld  Arduino
Pinout tekst  pinout
Menu groep  Sensors
Laatste verandering  2020-02-14

Software voor dit onderdeel
Bolderbot Mini IR remote control Single run Test 01  Arduino Mega 2560
BolderbotMiniParty.ino  Arduino Mega 2560
Bolderbot Mini Serial Monitor  Arduino Mega 2560
futIRreceiver.asm  EMBMEGA32C
futstart25lc512wr3.asm  EMBMEGA32C
IR Japanese.c  Arduino Mega 2560
KY-022.ino  Arduino Mega 2560
RC5receiver.asm  Atmel ATmega32
RemoteLCD.asm  Atmel ATmega8
start_ir_receiver.asm  Atmel ATmega8

Robots waar dit onderdeel in zit
mrBlue V2
mrBoldermin
Just wait till your 57....
Afb 1: Bolderbot Mini maart 2016

Just wait till your 57....
Afb 2: Motor driver print