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.1F +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.1F
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