Unicon07-169180

Page 1

Unicon  169

     รีโมตคอนโทรลอินฟราเรดของเครืองใช ่ ไฟฟาเปนอีกหนึงอุ ่ ปกรณอินพุตทีน่ าสนใจ เหมาะอยางยิ่งใน การนํามาเชื่อมตอกับไมโครคอนโทรลเลอรเพื่อสรางระบบควบคุมไรสายในราคาประหยัด เนืองจากรี ่ โมต คอนโทรลแบบนี้มักจะมีในแทบทุกครัวเรือน โดยในบทนีนํ้ าเสนอถึงการนํารีโมตคอนโทรลอินฟราเรดของ โทรทัศนยีห่ อ โซนี่ (Sony) หรือยี่หออืนที ่ เข ่ ากันไดมาเปนตัวอยางในการใชงานและทดลองรีโมตคอนโทรล

  จุดมุงหมายหนึ  งของการสร ่ างรีโมตคอนโทรลอินฟราเรดคือ ตองการสรางอุปกรณสงสัญญาณขอมูล ระยะไกลที่สามารถบรรจุขอมูลของปุมกดจํานวนมาก แลวสงไปยังอุปกรณปลายทางเพื่อใหสามารถควบคุม การทํางานไดอยางหลากหลาย โดยเฉพาะอยางยิ่งกับเครื่องใชไฟฟาจําพวก โทรทัศน วิทยุ เครื่องซีดี/วีซีดี/ดีวี ดี และตองกินพลังงานไฟฟานอยมากๆ จะเห็นไดวา รีโมตคอนโทรลอินฟราเรดจะใชแบตเตอรี่ขนาด AAหรือ AAA เพียง 1 หรือ 2 กอนเทานัน้ และใชงานไดยาวนานนับเดือน ดังนันการใช ้ แสงอินฟราเรดจึงตอบโจทยในเรื่องของการใชพลังงานและระยะทําการที่ไกล 6 ถึง 10 เมตร ซึงเพี ่ ยงพอสําหรับการควบคุมไรสายภายในหอง และเพือป ่ องกันการรบกวนจากแสงอาทิตย จึงตองมีการ ผสมคลื่นพาหความถี่ 36 ถึง 40kHz เขากับขอมูลและสงออกไปพรอมแสงอินฟราเรด จากนั้นจึงมีการพัฒนา มาอีกขันหนึ ้ ่งก็คือ มีการกําหนดรูปแบบขอมูลอนุกรมของรีโมตคอนโทรลแตละตัว แตละยี่หอ ใหแตกตางกัน ซึงลงลึ ่ กไปถึงการกําหนดขอมูลของปุมกดแต  ละปุมทีแตกต ่ างกันดวย จึงทําใหผูใช  งานไมสามารถใชงานรีโมต คอนโทรลของเครื่องเลนซีดีไปควบคุมเครื่องปรับอากาศหรือโทรทัศนได เวนแตรีโมตคอนโทรลแบบพิเศษที่ สามารถกําหนดรหัสเพื่อเปลี่ยนรูปแบบการสงขอมูลใหรองรับกับเครื่องใชไฟฟาตางชนิดได จะเรียกรีโมต คอนโทรลแบบนันว ้ า รีโมตคอนโทรลอินฟราเรดอเนกประสงค (universal infrared Remote control)

 การกําหนดขอมูล “1” หรือ “0” ของรีโมตคอนโทรลแตละยี่ หอมีความแตกตางกัน สําหรับรีโมต คอนโทรลอินฟราเรดของโทรทัศนยี่หอโซนี่ ซึงนํ ่ ามาใชอางอิงในบทนี้ มีการกําหนดลักษณะของขอมูล “0” และ “1” ดังรูปที่ 7-1 และการผสมขอมูลเขากับแสงอินฟราเรดในรีโมตคอนโทรลจะเรียกวา การมอดูเลชั่นทาง ความกวางบิต (Bit width modulation)


170 

Unicon

T

T

T

2T

600 ไมโครวินาที

600 ไมโครวินาที

600 ไมโครวินาที

1,200 ไมโครวินาที

คาบเวลาของขอมูล "0" เทากับ 1,200 ไมโครวินาที

คาบเวลาของขอมูล "1" เทากับ 1,800 ไมโครวินาที

(ก) รูปแบบของขอมูล "0"

(ข) รูปแบบของขอมูล "1"

รูปที่ 7-1 แสดงรูปแบบของขอมูล “0”” และ “1” ของรีโมตคอนโทรลโซนี่ ขอมูล “0” จะมีความกวางของบิตขอมูลเทากับ 1,200 ไมโครวินาที โดยแบงเปนชวงเวลาลอจิก “0” 600 ไมโครวินาทีหรือ 1T และชวงเวลาลอจิก “1” 600 ไมโครวินาทีหรือ 1T เทากัน ในขณะที่ขอมูล “1” มี ความกวางของบิตขอมูลเทากับ 1,800 ไมโครวินาที โดยแบงเปนชวงเวลาลอจิก “0” 600 ไมโครวินาทีหรือ 1T และชวงเวลาลอจิก “1” 1,200 ไมโครวินาทีหรือ 2T



D

INFRARED RECEIVER

38kHz OUT IRM GND

S

+

โมดูลรับแสงอินฟราเรด 38kHz

ความไว (5dBตอชอง)

อุปกรณทีใช ่ ในการตรวจจับขอมูลของปุมกดที  ส่ งมาจากรีโมตคอนโทรลอินฟราเรดคือ โมดูลรับแสงอิน ฟราเรด 38kHz ซึงมี ่ การจัดขา, กราฟคุณสมบัติ และการทํางานแสดงในรูปที่ 7-2 โดยตัวโมดูลรับแสงจะทําหนาที่ ในการกรองคลืนพาห ่ 36 ถึง 40kHz ออกไป ก็จะไดสัญญาณเปนลอจิก “0” หรือ “1” ตามขอมูลทีผสมมากั ่ บคลืน่ พาห ในรูปที่ 7-3 แสดงใหเห็นถึงแนวคิดของกระบวนการดังกลาว ในการรับสัญญาณของโมดูลรับแสงอินฟราเรด นัน้ เมือตรวจพบคลื ่ นพาห ่ จะสัญญาณเอาตพุตเปนลอจิก “0” นานเทากับคาเวลาของคลืนพาห ่ ทีผสมมา ่ ดังนัน้ สัญญาณขอมูลทีออกจากโมดู ่ ลรับแสงอินฟราเรด 38kHz จึงมีลักษณะกลับลอจิกกับขอมูลจริงทีมารี ่ โมตคอนโทรล อินฟราเรด ดังแสดงในรูปที่ 7-4

+V 0.1/50V 18 22 26 30 34 38 42 46 50 54 58

ความถี่ (kHz)

รูปที่ 7-2 หนาตา, วงจร และกราฟคุณสมบัติในการทํางานของ ZX-IRM แผงวงจรโมดูลรับอินฟราเรด 38kHz


Unicon  171

2 3

6

9

ขอมูลอนุกรมของปุมของ รีโมตคอนโทรลอินฟราเรด ที่ถูกกด

+S

5

ZX-IRM

1

8

ลําแสงอินฟราเรดที่มีการ ผสมสัญญาณพาห 38kHz

38kHz IR Module

4

0

7

REMOTE CONTROL

D

สัญญาณพาห 38kHz

รูปที่ 7-3 ตัวอยางการรับและถอดรหัสขอมูลอนุกรมของ ZX-IRM แผงวงจรโมดูลรับอินฟราเรด38kHz จากสัญญาณทีส่ งมาจากรีโมตคอนโทรลอินฟราเรด ตัวอยางขอมูลปุมกด

1

0

0

1

1

1

0

0

1

1

0

0

0

1

ลักษณะของสัญญาณ สัญญาณที่สงออกจาก รีโมตคอนโทรลหลังจาก ไดรับการผสมหรือมอดูเลต ดวยคลื่นพาห 38kHZ สัญญาณเอาตพุตที่โมดูล รับแสงอินฟราเรด 38kHz ขอมูลที่รับได

รูปที่ 7-4 ลักษณะของสัญญาณขอมูลทีเกิ ่ ดขึนในกระบวนการส ้ งและรับขอมูลอนุกรมของ รีโมต คอนโทรลอินฟราเรดโซนี่


172 

Unicon

บิต LSB D0

บิต MSB D1

D2

D3

2.4 มิลลิวินาที

บิตเริ่มตน

ขอมูล/คําสั่ง

D4

D5

D6

บิต LSB A0

บิต MSB A1

A2

A3

A4

ระบบ/กลุม/แอดเดรส 1 : โทรทัศน

รูปที่ 7-5 แสดงรูปแบบขอมูลอนุกรมของรีโมตคอนโทรลอินฟราเรดสําหรับโทรทัศนของโซนี่

 รูปแบบขอมูลรีโมตคอนโทรลของโซนีเป ่ นรหัสขอมูลแบบอนุกรมทีเรี่ ยกวา โปรโตคอล SIRCS (serial infrared remote control system) สําหรับรีโมตคอนโทรลของโทรทัศนมีชื่อรหัสคือ Sony D7C5 ประกอบดวย บิตเริ่มตน (start bit) 1 บิต, บิตขอมูล 7 บิต และกลุมบิ  ตเฉพาะระบบอีก 5 บิต ดังแสดง ในรูปที่ 7-5 ถาหากเปนรีโมตคอนโทรลสําหรับโทรทัศน คาของกลุมแอดเดรส  5 บิต จะเทากับ 00001 หรือ 1

 IRremote.h คือชื่ อของไฟลไลบรารีที่สรางขึ้นเพื่อถอดรหัสปุมกดของรีโมตคอนโทรลอินฟราเรด โทรทัศน ทีทํ่ างานรวมกับ Arduino ไดเปนอยางดี โดยไฟลไลบรารี IRremote.h นีรองรั ้ บการถอดรหัสของรีโมต คอนโทรลของเครื่องใชไฟฟายี่หอดังเกือบครบ ไมวาจะเปนโซนี,่ พานาโซนิค, JVC, ชารป, ซันโย, NEC, มิ ตซูบิชิ, เครื่องรับโทรทัศนผานดาวเทียม DISH รวมถึงรหัสรีโมตคอนโทรลแบบ RC5 และ RC6 ไฟลไลบรารี IRremote.h นีพั้ ฒนาขึนโดย ้ Ken Shirriff ดูขอมูลเพิมเติ ่ มไดที่ http://arcfn.com/2009/08/ multi-protocol-infrared-remote-library.htm และ http://arcfn.com มีผูร วมพัฒนาเพิมเติ ่ มอีก 3 ทานคือ Mitra ซึงช ่ วย เพิมฟ ่ งกชันให ่ รองรับรีโมตคอนโทรลของซันโย, Joe Knapp ผูสร  างโคดอินเตอรรัปตของรีโมตคอนโทรล NEC อันเปนการตังต ้ นของการสรางไฟลไลบรารีตัวนีและ ้ Kristian Lauszus ทีเพิ ่ มเติ ่ มโปรโตคอลหรือรูปแบบคําสัง่ ของรีโมตคอนโทรล JVC และพานาโซนิค เมื่อตองการใช งานไลบรารี นีต้ องผนวกไฟลไวในตอนตนของโปรแกรมหลังคําสั่ง #include <unicon.h> ดวยคําสั่ง #include <IRremote.h>


Unicon  173

    7.6.1 การทดลองถอดรหัสรีโมตคอนโทรลบืองต ้ น ในการทดลองนีเป ้ นการรับคารหัสจากรีโมตคอนโทรลของบอรด Unicon โดยใช ZX-IRM แผงวงจร โมดูลรับแสงอินฟราเรด 38kHz โดย Unicon จะถอดรหัสดวยการใชไฟลไลบรารี IRremote.h ชวย คารหัสของ ปุมตางๆ ที่ถอดไดจะถูกนํามาแสดงที่จอแสองผลของบอรด GLCD-XT ในรูปที่ 7-6 เปนวงจรการเชื่อมตอทั้งหมด สวนโปรแกรมที่ใชในการทดลองแสดงในโปรแกรมที่ 7-1

ตอวงจรลงบนเบรดบอรด

1

Unicon port

+5V

6

0.1F +V

38kHz IRM

GND OUT

D PR

ME NU

0

-

7

4

+

VO LUM E

8

-

5

2 1

+

OG

9

6

3

S

ZX-IRM

38kHz IR module

+ S

+

รูปที่ 7-6 วงจรทดลองใชงาน Unicon กับ ZX-IRM แผงวงจรโมดูลรับแสงอินฟราเรด 38kHz ในการรับและถอดรหัสสัญญาณรีโมตคอนโทรลอินฟราเรด


174 

Unicon

#include <unicon.h> #include <IRremote.h> int RECV_PIN = 6; IRrecv irrecv(RECV_PIN); decode_results results; void setup() { setTextSize(2); glcdClear(); irrecv.enableIRIn(); }

// Connect ZX-IRM to pin 6

// Set text size of GLCD-XT // Clear screen of GLCD-XT // Enable IR module

void loop() { if (irrecv.decode(&results)) // Check the IR data available { glcd(2, 1, "%d ", results.value); // Show remote control code on // the GLCD-XT irrecv.resume(); } }

โปรแกรมที่ 7-1 ไฟล IR_Rawdata.ino โปรแกรมภาษา C/C++ ของ Arduino สําหรับบอรด Unicon ในการถอดรหัสสัญญาณรีโมตคอนโทรลอินฟราเรดทีใช ่ โปรโตคอลของโซนี่ ในการทดสอบ เมื่อกดปุมบนรี  โมตคอนโทรล Unicon จะถอดรหัส แลวนําคาไปแสดงทีจอแสดงผล ่ ของ GLCD-XT จากการทดสอบไดคาของปุมต  างๆ ที่สําคัญดังนี้

1

2

3

4

5

6

7

8

9

0 VOLUME

PROG

+ -

+

-

MENU

            

           

     



          


Unicon  175

7.6.2 การทดลองแสดงภาพกราฟกจากการรับสัญญาณจากรีโมตคอนโทรล ในการทดลองนีเป ้ นการตอยอดจากการทดลองในหัวขอ 7.6.1 โดยเลือกรับเฉพาะปุมที  สนใจ ่ ซึงในการ ่ ทดลองนีคื้ อ ปุมเพิ่ม-ลดเสียง (VOLUME+ และ VOLUME-) และปุมเลือกชอง (PROG+ และ PROG-) Unicon จะนําสัญญาณของปุมทั้งสี่มาทําการปรับภาพกราฟกในลักษณะกราฟแทง เพื่อแสดงระดับการเปลี่ยนแปลง การตอวงจรทดลองยังคงใชวงจรทดลองตามรูปที่ 7-6 สวนโปรแกรมที่ ใชในการทดลองแสดงใน โปรแกรมที่ 7-2 ผลการทํางานของวงจรแสดงในรูปที่ 7-7

ตอวงจรลงบนเบรดบอรด 5

Unicon port

+5V 0.1F

6

7

+V 1

38kHz IRM

GND OUT

D

ME NU

0

-

7

4

+

1

VO LU M E

8

-

5

+

2

P RO G

9

6

3

S

ZX-IRM

+ S

38kHz IR module

+

  

  รูปที่ 7-7 แสดงการทดสอบการทํางานของวงจรทดลองอานคาจากรีโมตคอนโทรลอินฟราเรด ของบอรด Unicon เพือควบคุ ่ มการแสดงผลของบอรด GLCD-XT


176 

Unicon

#include <unicon.h> #include <IRremote.h>

// Include main library // Include the Infrared remote decoder library

int int int int int int int int int

// // // // // // // // //

Connect Set the Set the Set the Set the Set the Set the Set the Set the

// // // // //

Set textsize as 2 Clear screen of GLCD-XT Enable the IR module operation Draw the Volume bargraph Draw the Channel bargraph

RECV_PIN = 6; VOLUME_MAX = 10; VOLUME = 5; CHANNEL_MAX = 10; CHANNEL = 5; BARGRAPH_HEIGHT = 120; BARGRAPH_WIDTH = 30; MARGIN_TOP = 29; MARGIN_SIDE = 20;

ZX-IRM with pin 6 maximum of Volume level as 10 default level of Volune as 5 maximum of Channel bar as 10 default value of Channel bar as 5 bargraph height as 120 pixels bargraph width as 30 pixels top margin as 29 pixels side margin as 20 pixels

IRrecv irrecv(RECV_PIN); decode_results results; void setup() { setTextSize(2); glcdClear(); irrecv.enableIRIn(); drawVolumeGraph(); drawChannelGraph(); }

void loop() { if (irrecv.decode(&results)) // Check the remote control data available { if(results.value == 1168 && VOLUME < VOLUME_MAX) // Is is VOLUME+ ? { VOLUME++; // Increase value drawVolumeGraph(); // Increase the height of bargraph } else if(results.value == 3216 && VOLUME > 0) // Is is VOLUME- ? { VOLUME--; // Decrease value drawVolumeGraph(); // Decrease the height of bargraph } else if(results.value == 144 && CHANNEL < CHANNEL_MAX) // Is is PROG+ ? { CHANNEL++; // Increase value drawChannelGraph(); // Increase the height of bargraph } else if(results.value == 2192 && CHANNEL > 0) // Is it PROG- ? { CHANNEL--; // Decrease value drawChannelGraph(); // Decrease the height of bargraph } irrecv.resume(); } } void drawVolumeGraph() // Draw the Volume's bargraph function { int VALUE = VOLUME_MAX - VOLUME; int LEVEL_HIGH = BARGRAPH_HEIGHT / VOLUME_MAX;

โปรแกรมที่ 7-2 ไฟล IR_BarGraph.ino โปรแกรมภาษา C/C++ ของ Arduino สําหรับบอรด Unicon ในการถอดรหัสสัญญาณรีโมตคอนโทรลเพือนํ ่ ามาควบคุมการเปลียนแปลงของภาพกราฟ ่ ก (มีตอ)


Unicon  177

clearBarGraph(MARGIN_SIDE, MARGIN_TOP, BARGRAPH_WIDTH, BARGRAPH_HEIGHT); glcdFillRect( MARGIN_SIDE, MARGIN_TOP + (VALUE * LEVEL_HIGH) , BARGRAPH_WIDTH, (VOLUME * LEVEL_HIGH), GLCD_RED); // Set the Volume's bargraph color as red glcd(0, 2, "%d ", VOLUME); // Show the height of bargraph // on the top of screen } void drawChannelGraph() // Draw the Channel's bargraph function { int VALUE = CHANNEL_MAX - CHANNEL; int LEVEL_HIGH = BARGRAPH_HEIGHT / CHANNEL_MAX; clearBarGraph(128 - (MARGIN_SIDE + BARGRAPH_WIDTH), MARGIN_TOP , BARGRAPH_WIDTH, BARGRAPH_HEIGHT); glcdFillRect( 128 - (MARGIN_SIDE + BARGRAPH_WIDTH), MARGIN_TOP + (VALUE * LEVEL_HIGH) , BARGRAPH_WIDTH, (CHANNEL * LEVEL_HIGH), GLCD_BLUE); // Set the Chnanel's bargraph color as blue glcd(0, 7, "%d ", CHANNEL); // Show the height of bargraph on the top of screen } void clearBarGraph(int x, int y, int width, int height) // Clear bargraph function { glcdFillRect( x, y, width, height, GLCD_BLACK); // Clear screen by fill the black rectangle }

คําอธิบายโปรแกรมเพิมเติ ่ ม โปรแกรมนี้แบงออกเปน 3 สวน 1. สวน setup() เปนการเตรียมความพรอมทั้งหมดของโปรแกรม 2. โปรแกรมหลัก ทีทํ่ าหนาทีตรวจจั ่ บ, ถอดรหัสสัญญาณรีโมตคอนโทรลอินฟราเรด และตรวจสอบ วา สัญญาณทีรั่ บเขามานันเป ้ นสัญญาณของปุม VOLUME+, VOLUME-, PROG+ หรือ PROG- หรือไม ถาใชจะทําการเรียกใชงานฟงกชันวาดกราฟแท ่ งตอไป 3. ฟงกชันวาดกราฟแท ่ งหรือบารกราฟ (bargraph) มี 2 ฟงกชันคื ่ อ drawVolumeGraph() และ drawChannelGraph() โดยกราฟแทงจะเพิ่มหรือลดขึ้นกับการตรวจสอบคา VOLUME และ C H A N N E L จากโปรแกรมหลั ก การวาดกราฟใช หลั กการคื อ ลบรู ปกราฟเดิ มออกด วยฟ งก ชั่ น clearBarGraph () และสรางรูปสีเหลี ่ ่ยมผืนผาดวยฟงกชัน่ glcdFillRect() ลงไปแทน ในทุก ครังที ้ รั่ บสัญญาณของปุมที  ต่ องการจากรีโมตคอนโทรลอินฟราเรด นอกจากนันในฟ ้ งกชันนี ่ ยั้ งใชในการแสดง คาความสูงกราฟแทงเพื่อแจงใหผูใชงานทราบดวย โดยแสดงคาไดตั้งแต 0 ถึง 10 คาตังต ้ นของระดับความสูงของกราฟแทงในโปรแกรมนี้กําหนดไวเทากับ 5 สวนสีของกราฟแทงของ ปุม VOLUME เปนสีแดง ในชณะทีกราฟแท ่ งของปุม PROG เปนสีนําเงิ ้ น

โปรแกรมที่ 7-2 ไฟล IR_BarGraph.ino โปรแกรมภาษา C/C++ ของ Arduino สําหรับบอรด Unicon ในการถอดรหัสสัญญาณรีโมตคอนโทรลเพือนํ ่ ามาควบคุมการเปลียนแปลงของภาพกราฟ ่ ก (จบ)


178 

Unicon

7.6.3 การทดลองถอดรหัสและแสดงชือปุ ่ มของรี  โมตคอนโทรล ในการทดลองนี้เปนการตอยอดจากการทดลองในหัวขอ 7.6.1 เชนกัน โดยในการทดลองนี้จะทําการ ตรวจสอบวา สัญญาณจากรีโมตคอนโทรลทีรั่ บเขามานันเป ้ นของโซนีหรื ่ อไม หากใช จะนําไปเปดตารางขอมูล เพื่อแจงวา ปุมที่กดสงสัญญาณมาเปนปุมหมายเลขหรื  อฟงกชั่นใด ผานทางจอแสดงผลของบอรด GLCD-XT แตถาหากสัญญาณทีรั่ บเขามาไมตรงกับโปรโตคอลของโซนี่ ระบบจะแสดงขอความเพื่อแจงใหทราบ วา รีโมตคอนโทรลที่นํามาใชงานไมใชของโซนี่ หรือไมใชโปรโตคอลของโซนี่ การตอวงจรทดลองยังคงใชวงจรทดลองตามรูปที่ 7-6 สวนโปรแกรมที่ ใชในการทดลองแสดงใน โปรแกรมที่ 7-3 #include <unicon.h> #include <IRremote.h>

// Include main library // Include IR remote decoder library

int RECV_PIN = 6; IRrecv irrecv(RECV_PIN); decode_results results;

// Connect the ZX-IRM with pin 6 of Unicon

void setup() { setTextSize(2); // Set text size of GLCD-XT glcdClear(); // Clear screen of GLCD-XT irrecv.enableIRIn(); // Enable the IR module operation } void loop() { if (irrecv.decode(&results)) // Check the remote control data available { if (results.decode_type == SONY) // Check type of the SONY's remote control protocal { if(results.value == 16) // Button 1 { glcd(2, 1, "1 "); } else if(results.value == 2064) // Button 2 { glcd(2, 1, "2 "); } else if(results.value == 1040) // Button 3 { glcd(2, 1, "3 "); } else if(results.value == 3088) // Button 4 { glcd(2, 1, "4 "); }

โปรแกรมที่ 7-3 ไฟล IR_Button.ino โปรแกรมภาษา C/C++ ของ Arduino สําหรับบอรด Unicon ในการถอดรหัสสัญญาณรีโมตคอนโทรลทีใช ่ โปรโตคอลของโซนี่ แสดงชือปุ ่ มบนจอแสดงผลของ  บอรด GLCD-XT (มีตอ)


Unicon  179

else if(results.value { glcd(2, 1, "5 } else if(results.value { glcd(2, 1, "6 } else if(results.value { glcd(2, 1, "7 } else if(results.value { glcd(2, 1, "8 } else if(results.value { glcd(2, 1, "9 } else if(results.value { glcd(2, 1, "0 } else if(results.value { glcd(2, 1, "MENU } else if(results.value { glcd(2, 1, "POWER } else if(results.value { glcd(2, 1, "VOL+ } else if(results.value { glcd(2, 1, "VOL} else if(results.value { glcd(2, 1, "CH+ } else if(results.value { glcd(2, 1, "CH} } else { glcd(2, 1, "UNKNOWN"); } irrecv.resume();

== 528)

// Button 5

"); == 2576)

// Button 6

"); == 1552)

// Button 7

"); == 3600)

// Button 8

"); == 272)

// Button 9

"); == 2320)

// Button 0

"); == 112)

// Button MENU

"); == 2704)

// Button POWER

"); == 1168)

// Button VOLUME+

"); == 3216)

// Button VOLUME-

"); == 144)

// Button PROG+ or CH+

"); == 2192)

// Button PROG- or CH-

");

// Another is unknown

} }

โปรแกรมที่ 7-3 ไฟล IR_Button.ino โปรแกรมภาษา C/C++ ของ Arduino สําหรับบอรด Unicon ในการถอดรหัสสัญญาณรีโมตคอนโทรลที่ใชโปรโตคอลของโซนี่ แสดงชือ่ ปุมบนจอแสดงผลของบอร  ด GLCD-XT (จบ)


180 

Unicon


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.