ir control

17
IR Control Materials taken from a variety of sources including IR Remote for the Boe-Bot by Andy Lindsay

Upload: timothy-brock

Post on 30-Dec-2015

21 views

Category:

Documents


1 download

DESCRIPTION

IR Control. Materials taken from a variety of sources including IR Remote for the Boe-Bot by Andy Lindsay. The Plan: Use a TV Remote to Communicate with the Arduino. IR signal. Sony TV remote control. PWM. What is IR: Visible Light Waves. What is Infrared. The IR Signal. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: IR Control

IR Control

Materials taken from a variety of sources including IR Remote for the Boe-Botby Andy Lindsay

Page 2: IR Control

The Plan: Use a TV Remote to Communicate with the Arduino

Sony TV remotecontrol

IR signal

PWM

Page 3: IR Control

What is IR: Visible Light Waves

Page 4: IR Control

What is Infrared

Page 5: IR Control

The IR Signal

The IR detector is only looking for infrared that’s flashing on and off 38,500 times per second. It has built-in optical filters that allow very little

light except the 980 nm infrared. It also has an electronic filter that only allows

signals around 38.5 kHz to pass through. This is the type of signal produced by the

remote control. This prevents IR interference from

common sources such as sunlight and indoor lighting.

Page 6: IR Control

Important Concepts

Pulse width modulation (PWM): Pulse durations are used in many applications, a few of which are motor control, and communication. Since the IR detector sends low pulses that can be measured to determine what information the IR remote is sending, it's an example of using PWM for communication.

Carrier signal: The IR remote uses a 38.5 kHz "carrier signal" to transmit the pulse durations from the remote to the IR detector.

Communication protocol: A communication protocol is a set of rules for devices that have to exchange electronic messages. Protocols tend to have rules for voltages, the amount of time signals last, carrier signal frequencies and/or wavelengths, and much more. When two or more devices follow the rules of a given protocol, they should be able to communicate and exchange information.

Page 7: IR Control

The TV Remote Control (4 Function Universal Remote) You must configure your universal remote

so that it sends PWM messages to a television set using the SONY protocol.

TV remote setup Press and release the TV key. Press and hold the SET key until the indicator

LED on the remote turns on and stays on. Use the digit keys to enter 0001. The LED may

turn off briefly as you press each digit. VCR remote setup

Press and release the VCR key. Press and hold the SET key until the indicator

LED on the remote turns on and stays on. Use the digit keys to enter 1028. The LED may

turn off briefly as you press each digit.

Page 8: IR Control

The TV Remote Control (SYSTEMLINK 3 RCA) You must configure your universal remote so that

it sends PWM messages using the SONY protocol. TV remote setup

Press and hold the CODE SEARCH button until the indicator LED lights, then release the CODE SEARCH button.

Press and release the TV button (the indicator LED will blink and then remain lit).

Use the digit keys to enter the code 002. After your code is entered, the indicator LED will turn off.

VCR remote setup Press and hold the CODE SEARCH button until the

indicator LED lights, then release the CODE SEARCH button.

Press and release the VCR button (the indicator LED will blink and then remain lit).

Use the digit keys to enter the code 004. After your code is entered, the indicator LED will turn off.

Page 9: IR Control

The Sony Protocol

Page 10: IR Control

Protocol Details This message consists of thirteen negative pulses that

the Arduino can easily measure. 1: the start pulse, which lasts for 2.4 ms. 2-13: will either last for 1.2 ms (binary-1) or 0.6 ms

(binary-0). 2-8: indicates which key is pressed. 9-13: indicate if the message is being sent to a TV,

VCR, CD, DVD player, etc. Pulses are transmitted in least significant bit first

fashion. the first data pulse is bit-0. the next data pulse is bit-1 Etc.

If you press and hold a key on the remote, the same message will be sent over and over again with a 20 to 30 ms rest between messages.

Page 11: IR Control

How the IR Detector Works Our IR receiver is the same detector found in

many TVs and VCRs. This detector sends a low signal whenever it

detects IR flashing on/off at 38.5 kHz and a high signal the rest of the time.

When the IR detector sends low signals, the processor inside a TV or VCR measures how long each of the low signals lasts. Then, it uses these measurements to figure out which key was pressed on the remote.

Like the processor inside a TV, the Arduino can be programmed to detect, measure, store, and interpret the sequence of low pulses it receives from the IR detector.

Page 12: IR Control

Schematic for IR Detector

Page 13: IR Control

pulseIn Command The syntax for the pulseIn command is

pulseIn (Pin, State); Pin: the I/O pin for measuring the

pulse. State is used to determine whether the

pulse is a HIGH or LOW Option third input: max duration in

millisecs The output of the IR detector is inverted

(i.e., LOW). pulseIn(pin#, LOW); pin# is the pin connected to the IR

detector

Page 14: IR Control

Using pulseIn() while(pulseIn(9, LOW) < 2200) { } //Wait for start bit

Page 15: IR Control

Interpreting the IR Message The Idea: represent the pulse sequence as a bit

sequence. The IR message consists of thirteen pulses with

the following format: 1: the start pulse lasts for 2.4 ms. 2-13: will either last for 1.2 ms (binary-1) or 0.6

ms (binary-0). Map the duration of pulses 2-8 to their

corresponding binary value Use pulseIn() to measure pulse length Use the bitSet() to create the corresponding

binary representation

Page 16: IR Control

Program for Reading IR Signals

ReadIR Programming Features:

pulseIn() and bitSet() Arrays A debug flag to turn on printout Throws away devise designation Adjusts bit pattern to match numeric

keys

Page 17: IR Control

Program for Controlling Bot

• IRcontrol• Programming Features:

• Switch statement• Servo library