Important Announcement
PubHTML5 Scheduled Server Maintenance on (GMT) Sunday, June 26th, 2:00 am - 8:00 am.
PubHTML5 site will be inoperative during the times indicated!

Home Explore Lab5

Lab5

Published by kowit2558, 2018-03-27 20:02:37

Description: ใบงานที่ 5 การใช้งาน Arduino เพื่อควบคุม 7 Segment ด้วยการใช้ไอซีถอดรหัส

Search

Read the Text Version

ใบงานการทดลองที่ 5 การใช้งานอาร์ดุยโนเพื่อควบคุมเซเวนเซกเมนต์ด้วยการใช้ไอซถี อดรหสัวตั ถปุ ระสงคเ์ ชิงพฤตกิ รรมเพ่ือให้นักศึกษาสามารถ 1. ควบคมุ เซเวนเซกเมนต์ 1 หลกั และ 2 หลักโดยใชก้ ารส่งขอ้ มลู ผ่านไอซถี อดรหัสไดอ้ ย่างถกู ต้อง 2. เขียนโปรแกรมนับเลข 1 หลักและ 2 หลกั โดยใช้การสง่ ข้อมูลผ่านไอซีถอดรหัสไดอ้ ย่างถูกต้อง 3. เขียนโปรแกรมเพ่ือแสดงผลการนบั เลขโดยใชง้ านรว่ มกบั คาสัง่ วนลปู for ไดอ้ ย่างถกู ตอ้ งอปุ กรณป์ ระกอบการทดลอง 1 เครอ่ื ง 1 บอรด์ 1. คอมพิวเตอรท์ ่ีมีชอ่ งเสยี บ USB 1 บอรด์ 2. บอรด์ Arduino Mega 2560 18 เส้น 3. บอรด์ One the all 4. สายเช่ือมต่อลงชอื่ ผู้ทดลอง 1.__________________________________ 2. ____________________________________ทฤษฎที เ่ี ก่ยี วขอ้ งการควบคุม 7 Segment โดยใช้ IC ถอดรหัส ไอซีถอดรหัส เป็นไอซีขนาด 16 ขา ใช้สาหรับถอดรหัสเลขฐาน 2 แบบ BCD เป็นสัญญาณลอจิกดิจทิ ัลสาหรับการแสดงผลเซเวนเซกเมนต์ มีหลากหลายเบอร์ข้ึนอยู่กับการใช้งาน ท้ังที่เป็นคอมมอนแคโทดหรือแอโนด ตัวอย่างเช่น ไอซีเบอร์ HEF4511B BCD to 7-segment latch/decoder/driver เป็นไอซี 4อินพุตถอดรหัสเป็น 7 เอาต์พุต สาหรับเซเวนเซกเมนต์แบบคอมมอนแคโทด มีวงจรค้างสภาวะ (Latch)และวงจรขับ (Driver) ภายใน ดังน้ันการแสดงผลของเซเวนเซกเมนต์จะคงติดสว่างค้างจนกว่าจะมีการสั่งให้เปลีย่ นค่า หนงั สือชุดฝกึ ดา้ นดิจทิ ลั 105

โดยลักษณะตาแหน่งขาของเบอร์ HEF4511B แสดงดังรูปใบงานที่ 5-1 และหน้าทขี่ องแตล่ ะขาแสดงได้ดงั ตารางใบงานท่ี 4-1 รูปใบงานที่ 5-1 ขาสัญญาณของไอซี HEF4511Bตารางใบงานท่ี 5-1 ชือ่ หมายเลข และหนา้ ท่ีแตล่ ะขาของไอซี HEF4511Bสญั ลกั ษณ์ หมายเลขขา คาอธบิ ายL̅̅̅T̅ 3 lamp test input (active LOW)̅B̅̅L̅ 4 ripple blanking input (active LOW)LE 5 latch enable input (active HIGH)D0 – D3 7,1,2,6 address (data) inputVSS 8 ground supply voltageQa – Qg 13,12,11,10,9,15,14 segment outputVDD 16 supply voltage จากตารางข้างต้นการแสดงผลของเซเวนเซกเมนต์ ข้ึนอยู่กับสัญญาณอินพุต เช่น สัญญาณอินพุตD3 – D0 เป็น 0110 มีค่าเท่ากับ 6 ฐานสิบ สัญญาณเอาต์พุตถูกถอดรหัสท่ีขา Qa-Qg เป็น 0011111และเมื่อสายสัญญาณ LE เป็นลอจิก 1 ทาให้เซเวนเซกเมนต์แสดงเป็นตัวเลข 6 ค้างสภาวะจนกว่า LEจะเปล่ียนเป็น 1 อีกครง้ั ตารางการทางานของไอซี HEF4511B แสดงดงั ตารางใบงานที่ 5-2 ต่อไปนี้106 หนงั สือชดุ ฝึกด้านดจิ ทิ ลั

ตารางใบงานที่ 5-2 ตารางคณุ สมบตั แิ ละการทางานของไอซถี อดรหสั HEF4511B รปู ใบงานท่ี 5-2 การตอ่ ใช้งานไอซี HEF4511B บนบอร์ด One the All จะมี BCD to 7-Segment ท้ังหมดสองตัว รายละเอียดขาสัญญาณควบคุมBCD to 7-Segment แสดงดังรปู ใบงานที่ 5-3 และตารางใบงานที่ 5-3 รปู ใบงานที่ 5-3 รายละเอียดขาสญั ญาณควบคุม BCD to 7-Segment หนงั สือชดุ ฝึกด้านดจิ ทิ ลั 107

ตารางใบงานที่ 5-3 ตารางการใช้งานขาสัญญาณและรายละเอยี ดขาแตล่ ะขาขาสัญญาณควบคุม รายละเอียด D0 ใช้รบั คา่ รหัสเลข BCD ตาแหน่ง D0 D1 ใช้รับค่ารหัสเลข BCD ตาแหน่ง D1 D2 ใช้รับคา่ รหัสเลข BCD ตาแหน่ง D2 D3 ใช้รับค่ารหัสเลข BCD ตาแหน่ง D3 DP 0 = จุดบน 7-Segment ดบั / 1 = จุดบน 7-Segment ตดิการสง่ั ให้ 7-Segment แสดงตวั เลขตัง้ แต่ 0 ถึง 9 ต้องสง่ั ด้วยรหสั เลข BCD รายละเอยี ดดังตารางใบงานที่ 5-4ตารางใบงานท่ี 5-4 ตารางคณุ สมบตั แิ ละการทางานของไอซีถอดรหัส HEF4511Bตัวเลข รหสั เลข BCD D3 D2 D1 D00 00001 00012 00103 00114 01005 01016 01107 01118 10009 1001108 หนังสือชุดฝกึ ดา้ นดจิ ทิ ลั

ขน้ั ตอนการทดลองการทดลองย่อยที่ 1 การควบคมุ การแสดงผลผ่านไอซีถอดรหสั 1 หลัก จากใบงานที่ 4 จะเป็นการเขียนโปรแกรมเพ่ือควบคุมเซเวนเซกเมนต์ โดยใช้วิธีการสแกน ซึ่งถือเป็นวิธีพื้นฐาน โดยอาจมีข้อเสียคือ ในการเขยี นโปรแกรมเพ่ือให้แสดงเป็นตัวเลขที่มากกว่า 1 หลักได้อย่างสมบูรณ์น้ัน จาเป็นที่จะต้องมีการส่ังงานเพ่ือให้แสดงผลอยู่ตลอดเวลา ซ่ึงในการทดลองนี้จะเป็นการใช้งานไอซีถอดรหัส ซงึ่ มกี ารใช้งานที่แตกตา่ งกนั ดงั นี้1.1 เชื่อมต่ออุปกรณ์เข้ากับบอร์ดอาร์ดุยโน เข้ากับเซเวนเซกเมนต์แสดงผลในส่วนของ BCD to 7 Segmentโดยลักษณะการเชอ่ื มตอ่ ขาเป็นดงั ตารางใบงานที่ 5-1 ดงั น้ีตารางใบงานท่ี 5-1 การเช่ือมตอ่ ในการทดลองบอรด์ Mega2560 BCD to 7Segment บอร์ด Mega2560 BCD to 7Segment D1 DP หลักหนว่ ย D6 DP หลกั สิบ D2 D3 หลกั หนว่ ย D7 D3 หลักสบิ D3 D2 หลกั หน่วย D8 D2 หลักสบิ D4 D1 หลักหนว่ ย D9 D1 หลักสิบ D5 D0 หลักหน่วย D10 D0 หลักสิบ Vin 9V GND GNDซึ่งลกั ษณะการเช่ือมต่อ แสดงดังรปู ใบงานที่ 5-4 รปู ใบงานที่ 5-4 การเช่ือมต่อเพือ่ การทดลองย่อยท่ี 4-2 หนังสือชุดฝกึ ด้านดิจิทัล 109

1.2 เขียนโปรแกรมการทดลองท่ี 5-1 ดังนี้โปรแกรมการทดลองที่ 5-11 byte Counter=0; //Define initial variable2 int DP_A = 1;3 int D3_A = 2;4 int D2_A = 3;5 int D1_A = 4;6 int D0_A = 5;78 // Create constant value table9 const boolean BCD_Table[10][4] = {10 {LOW, LOW, LOW, LOW}, //0 -> 0 0 0 011 {LOW, LOW, LOW, HIGH}, //1 -> 0 0 0 112 {LOW, LOW, HIGH, LOW}, //2 -> 0 0 1 013 {LOW, LOW, HIGH, HIGH}, //3 -> 0 0 1 114 {LOW, HIGH, LOW, LOW}, //4 -> 0 1 0 015 {LOW, HIGH, LOW, HIGH}, //5 -> 0 1 0 116 {LOW, HIGH, HIGH, LOW}, //6 -> 0 1 1 017 {LOW, HIGH, HIGH, HIGH}, //7 -> 0 1 1 118 {HIGH, LOW, LOW, LOW}, //8 -> 1 0 0 019 {HIGH, LOW, LOW, HIGH} //9 -> 1 0 0 120 };2122 // Create Array table 1x4 for Stored PIN data23 int ledPins[] = {D3_A,D2_A,D1_A,D0_A};2425 void setup() {26 //Setup IO for Output27 for (int thisLed = 0; thisLed < 4; thisLed++) {28 pinMode(ledPins[thisLed], OUTPUT);29 }30 }3132 void loop() {33 // Write BCD from table Array34 for(int i = 0 ; i < 4 ; i++){35 digitalWrite(ledPins[i], BCD_Table[Counter][i]);36 }37 delay(1000); //Delay 1 Second38 Counter++; //Increase Value Counter +139 // If counter more than 9 reset value = 040 if(Counter >= 9)Counter=0;4142 }43110 หนังสอื ชุดฝกึ ดา้ นดิจทิ ลั

1.3 คอมไพล์โปรแกรม และอพั โหลดโปรแกรมเพือ่ ทดสอบการทางาน และบนั ทึกผลการทางาน…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………..……………………………………………………………………………………………………………………………………………………………………………………1.4 จงอธิบายการทางานของโปรแกรมในบรรทัดที่ 34-36…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………..………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………1.5 หากตอ้ งการให้นับตัวเลขเร็วขน้ึ จะตอ้ งไปแก้ไขทบี่ รรทดั ใด อย่างไร…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………..……………………………………………………………………………………………………………………………………………………………………………………การทดลองย่อยท่ี 2 การควบคมุ การแสดงผลผ่านไอซถี อดรหัส 2 หลัก จากการทดลองย่อยที่ 1 จะเป็นการเขยี นโปรแกรมเพ่อื ควบคมุ เซเวนเซกเมนต์ โดยผ่านไอซีถอดรหสั ซึ่งจะเหน็ ได้ว่ามีวิธกี ารใช้งานท่ีไม่ยุ่งยาก แค่เพยี งการสง่ ค่าในลักษณะของฐาน 2 ไปทขี่ าสัญญาณ ตวั ไอซถี อดรหัสก็จะแปลงเป็นสัญญาณไปยังเซเวนเซกเมนต์อัตโนมัติ โดยในการทดลองน้ี จะเป็นการใช้งานเพื่อควบคุม เซเวนเซกเมนตท์ ง้ั 2 หลัก โดยผ่านไอซีถอดรหสั2.1 เช่ือมต่ออุปกรณ์เข้ากับบอร์ดอาร์ดุยโน เข้ากับเซเวนเซกเมนต์แสดงผลในส่วนของ BCD to 7 Segmentโดยลกั ษณะการเชือ่ มต่อขาเป็น ดงั ตารางใบงานท่ี 5-2 ดงั น้ีตารางใบงานที่ 5-2 การเชือ่ มต่อในการทดลองยอ่ ยที่ 2บอรด์ Mega2560 BCD to 7Segment บอร์ด Mega2560 BCD to 7Segment D1 DP หลักหนว่ ย D6 DP หลกั สิบ D2 D3 หลักหน่วย D7 D3 หลักสิบ D3 D2 หลกั หน่วย D8 D2 หลกั สิบ D4 D1 หลักหนว่ ย D9 D1 หลักสิบ D5 D0 หลกั หนว่ ย D10 D0 หลักสิบ Vin 9V GND GND หนังสอื ชุดฝกึ ดา้ นดิจิทลั 111

2.2 เขียนโปรแกรมท่ี 5-2 ดังน้ี โดยสามารถเพ่ิมเติมจากโปรแกรมที่ 5-1 ได้ โดยเพิ่มเติมโปรแกรมในส่วนท่ีHigh-light ลงไป ดงั โปรแกรมการทดลองท่ี 5-2โปรแกรมการทดลองที่ 5-21 byte Counter=0;2 int DP_A = 1;3 int D3_A = 2;4 int D2_A = 3;5 int D1_A = 4;6 int D0_A = 5;78 int DP_B = 6;9 int D3_B = 7;10 int D2_B = 8;11 int D1_B = 9;12 int D0_B = 10;1314 const boolean BCD_Table[10][4] = {15 {LOW, LOW, LOW, LOW}, //016 {LOW, LOW, LOW, HIGH}, //117 {LOW, LOW, HIGH, LOW}, //218 {LOW, LOW, HIGH, HIGH}, //319 {LOW, HIGH, LOW, LOW}, //420 {LOW, HIGH, LOW, HIGH}, //521 {LOW, HIGH, HIGH, LOW}, //622 {LOW, HIGH, HIGH, HIGH}, //723 {HIGH, LOW, LOW, LOW}, //824 {HIGH, LOW, LOW, HIGH} //925 };2627 int ledPins[] = {D3_A,D2_A,D1_A,D0_A,D3_B,D2_B,D1_B,D0_B};2829 void setup() {30 for (int thisLed = 0; thisLed < 8; thisLed++) {31 pinMode(ledPins[thisLed], OUTPUT);32 }33 }3435 void loop() {36 int A,B;3738 Counter++;39 B = Counter / 10;40 A = Counter % 10;4142 for(int i = 0 ; i < 4 ; i++){43 digitalWrite(ledPins[i], BCD_Table[A][i]);44 digitalWrite(ledPins[i+4], BCD_Table[B][i]);45 }46 delay(1000);47 if(Counter >= 20)Counter=0;48 }112 หนังสอื ชุดฝึกดา้ นดิจทิ ัล

2.3 คอมไพล์โปรแกรม และอัพโหลดโปรแกรมเพอื่ ทดสอบการทางาน และบันทึกผลการทางาน…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………..……………………………………………………………………………………………………………………………………………………………………………………2.4 หากตอ้ งการใหโ้ ปรแกรมนับเลขต้งั แต่ 1-99 เม่ือครบแล้วให้กลับไปที่ 1 ใหม่ ตอ้ งแกไ้ ขอยา่ งไร…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………..……………………………………………………………………………………………………………………………………………………………………………………สรุปผลการทดลอง…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………..………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………..………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………คาถามท้ายการทดลอง1. การใชง้ านเซเวนเซกเมนตร์ ะหวา่ งวิธีการสแกนและวิธกี ารใชไ้ อซถี อดรหสั มีความแตกต่างกนั อยา่ งไร…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………..………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………..…………………………2. หากต้องการให้เซเวนเซกเมนต์แสดงผลเปน็ เลข “5” โดยอย่างไอซถี อดรหัส มวี ธิ กี ารส่งั งานอยา่ งไรบ้าง…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………..………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………..………………………… หนงั สือชุดฝึกด้านดิจทิ ัล 113

Note………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………...………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………114 หนงั สือชุดฝึกด้านดิจทิ ลั


Like this book? You can publish your book online for free in a few minutes!
Create your own flipbook