Upload
others
View
5
Download
0
Embed Size (px)
Citation preview
บทท 2
ทฤษฎทเกยวของ
2.1 ไมโครคอนโทรลเลอร PIC 16F684
ในปจจบนเครองใชไฟฟาอปกรณอเลกทรอนกสตลอดจนระบบโรงงานอตสาหกรรมจะใชไมโครคอนโทรลเลอรซงตดตงอยภายในเปนตวควบคมเกอบทงหมด ท าใหไมโครคอนโทรลเลอรกลายเปนอกหนงอปกรณทผผลตสารกงตวน าหลายๆ บรษทใหความสนใจ และมการแขงขนสงมาก อปกรณทใชไมโครคอนโทรลเลอรควบคมมมากมายหลายชนด เชน อปกรณเครองใชภายในบาน สญญาณไฟจราจร รถยนต ตลอดจนระบบอตสาหกรรม PLC, CNC, Robot เปนตน ไมโครคอนโทรลเลอรตระกล PIC ซงเปนไมโครคอมพวเตอรแบบชปเดยว (Single Chip Microcontroller) ถกใชงานอยางแพรหลาย การศกษาเกยวกบไมโครคอนโทรลเลอรจงมองคประกอบหลายอยาง เชน สถาปตยากรรมของไมโครคอนโทรลเลอร วงจรอเลคทรอนกส ตลอดจนภาษาทจะใชในการเขยน ซงจะตองศกษาควบคกนไป โดยจะน าเสนอล าดบการท างานดงตอไปน
2.1.1. ไมโครคอนโทรลเลอรคออะไร ไมโครคอนโทรลเลอร คอ อปกรณประเภทสารกงตวน าทรวบรวมฟงกชนการท างานตางๆ
ไวภายในตวของมนเอง โดยมโครงสรางใกลเคยงกบคอมพวเตอร คอ ภายในประกอบดวยหนวยรบขอมลและโปรแกรมหนวยประมวลผล หนวยความจ า หนวยแสดงผล ซงสวนประกอบเหลานมความสมบรณในตวของมนเอง ท าใหมขนาดเลก และสามารถเขยนโปรแกรมควบคมการท างานของอปกรณตางๆ ทเชอมตอกบตวมน งายตอการน าไปประยกตใชงาน ไมโครคอนโทรลเลอร ( Microcontroller) มาจากค า 2 ค า ค าหนงคอ ไมโคร (Micro) หมายถงขนาดเลกและค าวา คอนโทรลเลอร (Controller) หมายถงตวควบคมหรออปกรณควบคม ดงนน ไมโครคอนโทรลเลอร จงหมายถงอปกรณควบคมขนาดเลก แตในตวอปกรณควบคมขนาดเลกน ไดบรรจความสามารถทคลายคลงกบ ระบบคอมพวเตอร ทคนโดยสวนใหญคนเคย กลาวคอภายใน ไมโครคอนโทรลเลอร ไดรวมเอาซพย หนวยความจ า และพอรต ซงเปนสวนประกอบหลกส าคญของระบบคอมพวเตอรเขาไวดวยกน โดยท าการบรรจเขาไวในตวถงเดยวกนความแตกตางของ Microcontroller กบ Microcomputer คอ Microcontroller นนมความสมบรณภายในตวของมนเอง คอ มสวนประกอบตางๆ ครบถวน สวน Microcomputer นนตองท างานรวมกบอปกรณขางเคยงทเชอมตอจากภายนอก เชน แปนพมพ เครองอานเขยนแผนบนทก หนวยความจ า I/O ฯลฯ
4
2.1.2 ขอแตกตางระหวางไมโครโปรเซสเซอรกบไมโครคอนโทรลเลอร ไมโครโปรเซสเซอรทใชอยในปจจบน จะไมมหนวยความจ า RAM, ROM และ Port อยใน
ตว ท าใหตองตอหนวยความจ าโปรแกรมภายนอกเพมและตองใช ICs ขยายพอรตเพมเตม ขอดคอ สามารถเพมหนวยความจ าไดตลอด สวนไมโครคอนโทรลเลอรจะมวงจรพนฐานประกอบอยภายในชป เชน หนวยความจ า RAM, ROM และ I/O Port ดงนน ในระบบไมโครคอนโทรลเลอรจงมขนาดเลกกวาและราคาต ากวาระบบไมโครโปรเซสเซอร
2.1.3 โครงสรางโดยทวไปของไมโครคอนโทรลเลอร โครงสรางโดยทวไป ของไมโครคอนโทรลเลอรนน สามารถแบงออกมาไดเปน 5 สวน
ใหญๆ ดงตอไปน
รปท 2.1 โครงสรางโดยทวไปของไมโครคอนโทรเลอร
2.1.3.1 หนวยประมวลผลกลางหรอซพย (CPU: Central Processing Unit) เปนวงจรอเลคทรอนคสทท างานหรอประมวลผล ตามชดของค าสงเครองจาก
ซอฟตแวร ค านเรมใชในอตสาหกรรมคอมพวเตอรตงแตตนศตวรรษ 1960 หนวยประมวลผลเปรยบเสมอนเปนสมองของคอมพวเตอร ในการท าหนาทตดสนใจหรอค านวณ จากค าสงทไดรบมา เชน การเปรยบเทยบ การกระท าการทางคณตศาสตร ฯลฯโดยมกระบวนการพนฐานคอ
• อานชดค าสง (Fetch) • ตความชดค าสง (Decode) • ประมวลผลชดค าสง (Execute) • อานขอมลจากหนวยความจ า (memory) • เขยนขอมล/สงผลการประมวลกลบ (write back)
5
2.1.3.2.หนวยความจ า ( Memory ) สามารถแบงออกเปน 2 สวน คอ หนวยความจ าทมไวส าหรบเกบโปรแกรมหลก
( Program Memory) เปรยบเสมอนฮารดดสกของเครองคอมพวเตอรตงโตะ คอขอมลใดๆ ทถกเกบไวในนจะไมสญหายไปแมไมมไฟเลยง อกสวนหนงคอหนวยความจ าขอมล ( Data Memory ) ใชเปนเหมอนกระดาษทศในการค านวณของซพย และเปนทพกขอมลชวคราวขณะท างาน แตหากไมมไฟเลยง ขอมลกจะหายไปคลายกบหนวยความจ าแรม(RAM)ในเครองคอมพวเตอรทวๆไป แตส าหรบไมโครคอนโทรลเลอรสมยใหม หนวยความจ าขอมลจะมทงทเปนหนวยความจ าแรม ซงขอมลจะหายไปเมอไมมไฟเลยง และเปนออพรอม (EEPROM : Erasable Electrically Read Only Memory ) ซงสามารถเกบขอมลไดแมไมมไฟเลยง
2.1.3.3.สวนตดตอกบอปกรณภายนอก หรอพอรต (Port) ม 2 ลกษณะคอ พอรตอนพต (Input Port) และพอรตสงสญญาณหรอพอรต
เอาตพต (Output Port) สวนนจะใชในการเชอมตอกบอปกรณภายนอก ถอวาเปนสวนทส าคญมาก ใชรวมกนระหวางพอรตอนพต เพอรบสญญาณ อาจจะดวยการกดสวตช เพอน าไปประมวลผลและสงไปพอรตเอาตพต เพอแสดงผล เชน การตดสวางของหลอดไฟ เปนตน
2.1.3.4.ชองทางเดนของสญญาณหรอบส (BUS) คอเสนทางการแลกเปลยนสญญาณขอมลระหวาง ซพยหนวยความจ าและพอรต
เปนลกษณะของสายสญญาณ จ านวนมากอยภายในตวไมโครคอนโทรลเลอร โดยแบงเปนบสขอมล (Data Bus), บสแอดเดรส (Address Bus)และบสควบคม Control Bus )บสขอมลเปนสายสญญาณทบรรจขอมล เพอการประมวลผลทงหมด ขนาดของบสจะขนอยกบความสามารถการประมวลผลของซพย ส าหรบในงานทวๆ ไป ขนาดของบสขอมลจะเปน 8 บต และในปจจบนไดมการพฒนาขนมาจนถง 16,32 และ 64 บต บสแอดเดรสเปนสายสญญาณทบรรจคาต าแหนงของหนวยความจ า โดยการตดตอกบหนวยความจ านน ซพย ตองก าหนดต าแหนงทตองการอานหรอเขยนกอน ดงนนจ านวนสายสญญาณของแอดเดรสจงตองมจ านวนมาก ยงมากเทาไหร กจะเปนการแสดง ขนาดของหนวยความจ าทไมโครคอนโทรลเลอรสามารถตดตอได โดยสามารถค านวณไดจาก จ านวนแอดเดรสของหนวยความจ า = 2 ยกก าลง n ( n คอจ านวนของเสนทาง ) ยกตวอยาง ไมโครคอนโทรลเลอรตวหนงมสายแอดเดรส 10 เสน ดงนน ไมโครคอนโทรลเลอรตวน สามารถตดตอกบหนวยความจ าได 2 ยกก าลง 10 = 1,024 ต าแหนง หากตองการทราบความจของหนวยความจ าจรงๆ จะตองทราบถงขนาดของบสขอมลกอนวาเปนเทาใด หากเปน 8 บต ความจของหนวยความจ าทมสายแอดเดรส 10 เสน จะเทากบ 8×1024 = 8,192 บต และ 1 กโลไบต เทากบ 1,024 ไบต ดงนนไมโครคอนโทรลเลอรดงกลาว จงมความจของหนวยความจ าเทากบ 8,192 บต
6
หรอ 1,024 ไบต หรอ 1 กโลไบตบสควบคมเปนกลมของสายสญญาณควบคมการตดตอทงหมดของซพยกบหนวยความจ าและพอรต ส าหรบสายสญญาณเลอกควบคมหลกไดแก สายสญญาณเลอก-อาน-เขยนหนวยความจ า สายสญญาณเลอกเลอก อาน-เขยนขอมลกบพอรต
2.1.3.5. วงจรก าเนดสญญาณนาฬกา (Clock) นบเปนสวนประกอบทส าคญมากอกสวนหนง เนองจากการท างานทเกดขนในตว
ไมโครคอนโทรลเลอร จะขนอยกบการก าหนดจงหวะ หากสญญาณนาฬกามความถสง จงหวะการท างานกจะสามารถท าไดถขนสงผลใหไมโครคอนโทรลเลอรตวนน มความเรวในการประมวลผลสงตามไปดวย
รปท 2.2 การจดขาของไมโครคอนโทลเลอรตระกล PIC 16F684
2.2 การเขยนโปรแกรมดวยภาษาซ 2.2.1 องคประกอบพนฐานของภาษา C อกขระ (Characters) คาคงท (Constants) ตวแปร (Variables) ตวด าเนนการ (Operators)
นพจน (Expressions) Characters แบงเปนตวเลข (Digits) คอ ตวเลข 0 ถง 9 และเลขฐานสบหก คอ A B C D E
และ F ตวอกษร (Letters) คอตวอกษรในภาษาองกฤษ เปนตวพมพใหญและตวพมพเลก คอ A-Z และ a-z อกขระพเศษ (Special Characters) คอ ! * + " < # ( = | > % ) ~ : / ^ - [ ; ? , & _ ] ' . Space ในภาษาซถอวา เครองหมายขดเสนใตเปนตวอกษรตวหนง Characters ตาง ๆ นจะใชเปนคาคงท ตวแปร ตวด าเนนการ Constants เปนคาทมคาไมเปลยนแปลง แบงเปนคาคงทประเภทเลขจ านวนเตม (Integer Constant) คอเลขจ านวนเตม ทอยระหวาง -32768 ถง 32767 เชน-25 หรอ 0 หรอ 236 คาเหลานแตละคาใชหนวยความจ าในการเกบ 2 ไบต คาเหลานเขยนในรปเลขฐานสบ ฐานแปด(เขยนโดยใชเลขศนยน าหนา เชน 045) เลขฐานสบหก (เขยนโดย ใชเลขศนยและ x น าหนา เชน 0x28 0X2AF) คาคงทชนดตวเลขทศนยม (Floating Point Constants) เปนตวเลขทศนยม เชน 1.0
7
1.6 E+09 คานใชหนวยความจ าในการเกบคาละ 4 ไบต และมคาอยในชวง 1.2 E-38 ถง 3.4 E+38 โดย 3 ไบตแรกเกบคาตวทศนยม สวนไบตสดทายเกบเลขยกก าลงคาคงทชนดตวเลขทศนยมความละเอยดสองเทา (Double Floating Point) เรยกสน ๆ วา Double เกบจ านวน 2.2 E-308 ถง 1.8 E+308 เทานน ใชหนวยความจ า 8 ไบต 7 ไบตแรกเกบเลขทศนยม ไบตสดทายเกบเลขยกก าลงคาคงทชนดตวอกขระ (single character constant) เกบตวอกขระ 1 ตว โดยใชเครองหมาย ' และ ' ลอม1 ตวอกขระใช 1 ไบต เชน 'E' 'X'คาคงทชนดขอความ (String Constant) ใชเกบขอความ มความยาวตงแต 1 ตวอกขระ เกบในรปอารเรยแตละตวใชหนวยความจ า 1 ไบต เรยงตอกนโดยไบตสดทายจะตองเกบ \0 (Null Character) เพอบอกวาจบขอความแลว เชน "Bodindecha" ใชหนวยความจ า 11ไบต ตวแปร(Variables)เปนชอทตงเพอใชอางองถงขอมลตาง ๆ โดยตวแปรจะมการใชเนอทในหนวยความจ าในปรมาณทตางกนขนกบชนดของขอมล ขอมล พนฐานในภาษาซ ม 5 ชนด คอ อกขระ (Char) จ านวนเตม (Int) จ านวนจรง (Float) จ านวนจรงละเอยด 2 เทา (Double) ไมใหคาใด ๆ (Void) นอกจากนเพอความสามารถในการใชงานจงมการเพมชนดของตวแปรขนมาดงตารางท 2.1
ตารางท 2.1 ตารางแสดงชนดของตวแปร
8
2.2.2 การตงชอตวแปร 1. ตองขนตนดวยตวอกษรเทานน ตวตอไปจะเปนตวเลขหรอตวอกษรได ความยาวไมเกน
31 ตว 2. ชอตวแปรควรสอความหมายของตวแปรเพอปองกนความสบสนของการพจารณา
โปรแกรม 3. หามตงชอตรงกบค าสงวนในภาษาซ ซงม 33 ค า ดงน asm auto break case char const continue default do double else enum extern float for goto
if int long register return short signed size of static struct switch type def union unsigned void volatile while
2.2.3 การประกาศตวแปร ในการจะใชงานตวแปรจะตองมการประกาศชนดและชอของตวแปรนนกอน โดยการ
ประกาศตวแปรใชรปแบบ คอ ชนดของตวแปร ชอตวแปร โดยถามตวแปรชนดเดยวอาจประกาศพรอมกนโดยใช คอมมา คนระหวางชอของตวแปร ถามการก าหนดคาใหใชเครองหมาย = และใชเครองหมายแสดงการจบค าสงเมอสนสดค าสง ตวอยาง เชน
char name, day = 'S' , surname[20] ="Kodedee"; int x=5 ,y,z[100]; float a=5.00 ,b,c; double k=1.234567, m ; 2.2.4 ตวด าเนนการ (Operator) ตวด าเนนการมหลายประเภทลกษณะการด าเนนการแตกตางกนไป ในทนจะกลาวถงบาง
ประเภทเทานน
ตารางท 2.2 ตวด าเนนการทางคณตศาสตร
9
ตารางท 2.3 ตวด าเนนการความสมพนธหรอการเปรยบเทยบ
ตารางท2.4 ตวด าเนนการตรรกะ
ตารางท 2.5 ตวด าเนนการก าหนดคา
10
2.2.4 นพจน (Expression) เกดจากการน า คาคงท หรอ ตวแปร และตวด าเนนการมาประกอบกน โดยนพจนมหลาย
ชนด เชนนพจนทางคณตศาสตร นพจนทางตรรกะ นพจนทางการเปรยบเทยบ นพจนเกยวกบเงอนไข นพจนเกยวกบขอความ เชน 2 + x * 5 เปนตวอยางของนพจนทางคณตศาสตร (2>3)&&(5>=4) เปนนพจนทางตรรกะและการเปรยบเทยบ !(a) เปนนพจนทางตรรกะ if(x==y) เปนนพจนเงอนไข
ตวอยาง การหาผลลพธของนพจน ก าหนด int a = 10 , b = 12, c =3; จงหาผลลพธของ 2 * a + b % c ด าเนนการดงน (2 * a) +
(b %c) ผลลพธ คอ 20 + 0 คอ 20 จากขอก าหนดดานบน จงหาผลลพธ ของ (a>b)&&(c<=b) ซงเราอาจพจารณา ดงน (เทจ) && (จรง) ดงนน ผลลพธ คอ เทจ
2.2.5 โครงสรางของภาษาซในโปรแกรม CSS C Compiler Preprocessor directive ใชส าหรบเรยกไฟลทโปรแกรมตองการท างานและก าหนดคาตางๆ โดยคอมไพเลอรจะท า
ตามค าสงกอนทจะคอมไพลโปรแกรม โดยจะเรมตนดวยเครองหมาย Pound Sign (#) ส าหรบ Directiveทใชบอยไดแก #Include เปนการแจงใหคอมไพเลอรอานไฟลอนเขามาคอมไพลรวมดวย เชน #Include <16f877.h> #Use delay (clock=4000000) เปนการบอกใหคอมไพเลอรรวาจะมการใชฟงกชน Delay โดยใชสญญาณนาฬกาเทากบ 4 MHz โดยคาของ Clock จะขนอยกบสญญาณนาฬกาทเราใช
สวนประกาศ (Global Declaration) เปนสวนทใชประกาศตวแปรหรอฟงกชนทตองใชในโปรแกรมโดยตวแปรในสวนนจะสามารถใชไดกบทกๆสวนของโปรแกรม หากเปน Local Declaration จะสามารถใชเฉพาะในบลอกหรอฟงกชนทประกาศใชเทานน
สวนฟงกชนหลก (Void Main ( ) Function) สวนนทกโปรแกรมจะตองมภายในจะประกอบไปดวยประโยคค าสงตางๆ ทจะใหโปรแกรมท างานแตละประโยคค าสงจะจบดวยเครองหมาย เซมโคลอน (;)
ตวอยาง #include<16f877.h> //ใชไมโครคอนโทรลเลอรเบอร 16f877 #use delay (clock = 4000000) #fuses XT,NOWDT void main ( ) { //เรมตนโปรแกรมหลก While (true)
11
{ OUTPUT_HIGH (PIN_B0); //ให port B0 เปนลอจก 1 Delay_ms( 1000 ); //หนวงเวลา 1000 มลลวนาท OUTPUT_LOW (PIN_B0); //ให port B0 เปนลอจก 0 } } //จบโปรแกรม Note: โปรแกรมขางตนจะท าให Led ตด ดบสลบกน โดยจากรป Led จะตดเมอ Port B0 เปนลอจก 1 และจะดบเมอ Port B0 เปนลอจก 0
การประกาศตวแปร การประกาศตวแปรมรปแบบการประกาศ ดงน ประเภทของขอมล ชอตวแปร [,.........,]; เชน float a; //ประกาศตวแปร a เปนตวแปรประเภทจ านวนจรง int x,y,z; //ประกาศตวแปร x , y , z เปนตวแปรแบบจ านวนเตม การใชงานตวแปรใหถกประเภทน นมความส าคญตอความถกตองและความรวดเรวในการประมวลผลมาก ดงนนเราจงตองท าความเขาใจเกยวกบตวแปรประเภทตางๆ
ตารางท 2.6 ชนดตวแปร
12
ตารางท 2.6 ชนดตวแปร (ตอ) 2.2.6 ค าสงควบคมในภาษาซ (Control Statement)
ค าสงทใชควบคมในภาษาซมอยหลายค าสง เชน ค าสงวนลปซอน, ค าสงท าตามเงอนไข เปนตน ค าสงทใชในการควบคมไมโครคอนโทรลเลอร สามารถแบงออกไดดงน
2.2.6.1 ค าสง Goto Label เปนชดค าสงทใชสงใหกระโดดขามไปยงค าสงอนๆ ทไดก าหนด Label ไว แตค าสงนมลกษณะทไมเปนโครงสราง หากใชงานมากๆ จะท าใหเกดความยงยากตอโปรแกรม ดงนนจงไมเหมาะตองานทมความซบซอนมากๆ โดยมรปแบบการใชงานดงน
13
2.2.6.2 ค าสงเลอกท าแบบทางเดยว ( if ) ใชตรวจสอบนพจนเงอนไข การใชงานค าสง if ถอไดวาเปนค าสงส าคญมากค าสง
หนงทใชในการตดสนใจเพอท าหรอไมใหท าสงใด มการตดสนใจใหท าเมอนพจนเปนจรง และใหท าค าสงถดไปเมอนพจนเปนเทจ
14
รปท 2.3 ค าสง if แบบทางเดยว
รปแบบ if ( condition) { action statement; } ตวอยาง if (input(sw)) { output_high(pin_C0); } เปนการตรวจสอบวาตวแปรอนพท SW ถกกดเปนคา 1 หรอเปลาถาเปนจรงจะท าใหพอรต C (Pin C0) มคาเปนลอจก 1
2.2.6.3 การเลอกท าแบบสองทศทาง (IF – ELSE) ใชก าหนดเงอนไขดวยตวด าเนนการเปรยบเทยบ แลวสงใหไมโครคอนโทลเลอร
ปฏบตตามเงอนไขทก าหนดไว ใหเลอกท าเงอนไขใดเงอนไขหนง ซงมรปแบบดงน
15
รปท 2.4 ค าสง If แบบสองทาง
2.2.6.4 การเลอกท าแบบหลายทางเลอก (Switch) มลกษณะคลายกบค าสง If แบบหลายทาง แตผดกนตรงทเมอมนพจนเงอนไขใด
เงอนไขหนงเปนจรงแลวไมโครคอนโทลเลอรจะปฏบตตามชดค าสงนนๆ และชดค าสงอนๆ ถดไปดวย เมอไดรบนพจนเงอนไขนนมาเพอเลอกอก ในเงอนไขนพจนหากไมตามทายดวยค าสง Break ในแตละชดเงอนไขทดสอบนนจะตองเปนอกขระ หรอตวเลขจ านวนเตมเทานน เชน Char, Int, Short Long เปนตน
16
รปท 2.5 โครงสรางค าสงเลอกท าแบบหลายทางเลอก (Switch)
17
2.2.6.5 ค าสง For loop ค าสงนจะถกน ามาใชในกรณทตองการใหโปรแกรมท างานซ าโดยจะตองทราบคา
ของจ านวนครงในการท าซ า หรอเงอนไขทแนนอนเพอควบคมใหโปรแกรมหยดท างานซ า
18
รปท 2.6 แสดงโครงสรางของชดค าสง For Loop
2.3 LED
LED ยอมาจากภาษาองกฤษค าวา Light Emitting Diode หรอถาแบบไทยๆ คออปกรณ
สงประดษฐชนดหนง ทสามารถเปลยนพลงงานไฟฟาเปนพลงงานแสงสวางได LED ถาคยกนใน
ภาษาอเลกทรอนกส เราเรยกวาไดโอดเปลงแสง ขนาด 1 รอยตอ PN เมอเราใหไฟบวกดาน P และ
ไฟลบดาน N อเลกตรอนและโฮลจะไหลมารวมกน อเลกตรอนจะปลดปลอยพลงงานออกมา ใน
รปแบบคลนแมเหลกไฟฟา ถาการปลดปลอยพลงงานน อยในชวงคลนทเราสามารถมองเหนได
เรากสามารถมองเหนแสงทออกมาจากตวไดโอดชนดนไดสารกงตวน าทใชเปนสวนผสมหลก จะ
เปนสารผลกแกเลยม (Ga) โดยทสตางๆ เชนสแดง สเขยว สสม จะเกดขนจากสารทใสเจอปนเขาไป
บนผลกแกเลยม LED ในอดตสวนใหญจะถกน ามาใชงานเปนสวนแสดงผลการท างานของ
19
เครองใชไฟฟา เชนการแสดงการเปดปดของอปกรณไฟฟา สาเหตทเปนเชนนกเพราะ ตวหลอด
LED เองเมอท าใหเกดแสงขนจะกนกระแสนอยมากประมาณ 1-20 mA มอายการใชงานทยาวนาน
ทนทานตอสภาวะอากาศ การสนสะเทอน และมหลากหลายสใชเลอกใช LED ไดถกพฒนาขน
เรอยๆ ทงในดานสของแสงทเปลงออกมา ไมวาจะเปนสแดง สเขยว สสม หรอทผลตไดทายสด
และท าใหวงการแอลอดพฒนาขนอยางรวดเรวคอสน าเงน ซงการเกดขนของแอลอดสน าเงนน ท า
ใหครบแมส 3 ส คอ สแดง สเขยว และสน าเงน และเกดเปนจดเรมตนของจอแอลอด และแอลอด
ในงานไฟประดบตางๆ
2.3.1 RGB LED
RGB ยอมาจาก Red, Green และ Blue คอระบบสของแสง เกดจากการหกเหของแสง
กลายเปนสรง ดวยกน 7 ส ซงเปนชวงแสงทตาของคนเราสามารถมองเหนได แสงสมวงจะมความถ
สงสดเรยกวา อนตราไวโอแรต และแสงสแดงจะมความถต าสด เรยกวาอนฟาเรต คลนแสงทม
ความถสงกวาสมวง และต า กวาสแดงนน สายตาของมนษยไมสามารถรบได แสงสทงหมดเกดจาก
แสงส 3 ส คอ สแดง ( Red ) สน าเงน ( Blue ) และสเขยว ( Green )ทงสามสถอเปนแมสของ
แสง แมสของแสงมดวยกน 3 ส คอ สแดง ( R ) ,สเขยว ( G ), สน าเงน ( B ) และแตละแมสเมอ
รวมกนกจะไดสดงนสแดง+สเขยว ได สเหลอง Yellow สเขยว+น าเงน ได สฟา Cyan สแดง+สน า
เงน ได สแดงอมชมพ Magenta เมอน าแมสของแสงทง 3 มาผสมกน ในปรมาณแสงสวางเทากนก
จะไดเปนแสงทสขาว แตถาผสมกนระหวางแสงระดบความสวางตางกน กจะไดผลทเปนแสงสๆ
มากมายเปนลานสทเดยว สวนใหญการใชสลกษณะนจะใชในอปกรณทเกยวกบแสง เชน จอภาพ
กลองดจตอล สแกนเนอร เปนตน ระบบส RGB จะการแสดงผลออกมา เปนรปแบบการรบแสง
แสดงผลดวยแสงทเปนแมสไดแก สแดง สเขยว สน าเงน ซงอปกรณอเลกทรอนกสตางๆไมวาจะ
เปน จอภาพ,สแกนเนอร,กลองดจดอลหรอดวงตาคนเราลวนแตรบและแปลผลเปนสตางๆ ดวยแสง
เหลาน ตวอยางการงานทเหมาะกบการใชระบบส RGB กเชน ในการออกแบบ Web Site , Blog
เหลา Web Design จะใชระบบส RGB เพอใหไดภาพทเมอแสดงผลบนนาจอแลวมความสวยงาม
ใกลเคยงกบสทตาเรามองเหนปกต สวนในงานสงพมพจะนยมใชระบบส CMYK เพราะเปนระบบ
สทใชกบเครองพมพ ดงนนเมอเราตองการพมพภาพ จงควรตงคาภาพนนใหเปน ระบบส CMYK
20
กอนพมพเพอใหภาพทไดสไมผดเพยนไป เพราะหากเราน าภาพทเปนระบบส RGB ไปพมพปกต
โดยไมมการแปลงใหเปนระบบส CMYK เสยกอน ภาพทไดจะมสทผดเพยนไป
2.3.2 RGB Dot Matrix
ดอทเมตรกซ (Dot Matrix) เปนอปกรณแสดงผล แบบเดยวกบ LED คอการน าเอา LED
หลายตวมาตอเรยงกน เปนหลก เปนแถว ซงจะเหนการใชงานดอมเมตรกซในการท าปายไฟวง โดย
จะน าเอาดอทเมตรกซ หลายๆ ตวมาตอกน แลวเขยนโปแกรมผานไมโครคอนโทลเลอร หรอ
คอมพวเตอรผานวงจรขบดอทเมตรกซ กสามารถท าไฟวงได
รปท 2.7 RGB Dot Matrix
อยางทเรารแลววาดอทเมตรกซ คอ การน า LED มาตอกน ดงนน สญลกษณ ของ ดอทเมอตรกซ
และการตอใชงานจะเหมอนกบการตอใชงาน LED หรอ การตอใชงาน ตวแสดงผล 7 สวน (7
Segments) จะมทงการตอแบบ คอมมอนอาโนด( A) การตอแบบคอมมอนคาโทด (K)
รปท 2.8 วงจรของ RGB Dot Matrix
21
การเรยกดอทเมตรกซ เราจะเรยก กหลก กแถว เชน ขนาด 8X8 คอ จะม 8 หลก 8 แถว และ
จะมสใหเหลอกใชงานเหมอนกบ LED สวนขนาดนนจะมหลายขนาดใหเลอกใช คงตองเลอก
กนเองแตในกรณนจะใชขนาด 8x8
2.4 Integrated Circuit
IC หมายถง วงจรทน าเอาไดโอด ทรานซสเตอร ตวตานทาน ตวเกบประจ และ
องคประกอบวงจรตาง ๆ มาประกอบรวมกนบนแผนวงจรขนาดเลก ในปจจบนแผนวงจรนจะท า
ดวยแผนซลคอน บางทอาจเรยกชป (Chip) และสรางองคประกอบวงจรตาง ๆ ฝงอยบนแผนผลกน
สวนใหญเปนชนดทเรยกวา Monolithic การสรางองคประกอบวงจรบนผวผลกน จะใชกรรมวธ
ทางดานการถายภาพอยางละเอยด ผสมกบขบวนการทางเคมท าใหลายวงจรมความละเอยดสงมาก
สามารถบรรจองคประกอบวงจรไดจ านวนมาก ภายในไอซ จะมสวนของลอจกมากมาย ในบรรดา
วงจรเบดเสรจทซบซอนสง เชน ไมโครโปรเซสเซอร ซงใชท างานควบคม คอมพวเตอร จนถง
โทรศพทมอถอ แมกระทงเตาอบไมโครเวฟแบบดจทล ส าหรบชปหนวยความจ า (RAM) เปนอก
ประเภทหนงของวงจรเบดเสรจ ทมความส าคญมากในยคปจจบน
2.4.1 IC 74HC595
ไอซ 74HC595 เปนไอซลอจก (Logic IC) ทท าหนาทเปนวงจรเลอนบตขนาด 8 บต (8-bit Shift Register) โดยรบขอมลเขาและสงขอมลออกทละบต (Serial-In & Serial-Out) และมเอาตพตแบบ 8 บต (Parallel Data Output) ถาตองการจะสงขอมลไปก าหนดสถานะลอจกใหขาเอาตพตทง 8 ขา (Q0 ถง Q7) จะตองใชวธเลอนบตทละบต เขาทขาอนพต DS (Serial Data Input) และสรางสญญาณ Clock ปอนเขาทขา SHCP (Shift Clock Input) เพอก าหนดจงหวะในการท างาน และสามารถเลอกใชความถของสญญาณอนพต SHCP ไดเกนกวา 10 MHz ... สญญาณ SHCP หนงไซเคล (Clock Cycle) หมายถง การเลอนบตหนงครง ดงนนจงตองใชทงหมด 8 ไซเคล ส าหรบ 8 บต ถาเลอนบตมากกวา 8 ไซเคล ขอมลในรจสเตอร กจะถกสงออกมาตามล าดบทขา Q7S การเลอนบตเพอสงขอมลจะสงแบบ MSB First เมอขอมลถกน าไปใสไวในรจสเตอรภายในจนครบ 8 บตแลว และตองการใหขาเอาตพต Q0 ถง Q7 มสถานะลอจกตรงตามขอมลในรจสเตอร จะตองสรางสญญาณแบบ Pulse เขาทขา STCP (Storage Clock Input) และตองก าหนดขาอนพต OE (Output Enable) ใหเปนลอจก Low ถาตองการจะเคลยรขอมลในรจสเตอร ใหปอนอนพตทขา MR (Master Reset) เปน Low แลวจงเปลยนเปน High
22
ขอสงเกต: อาจพบวามไอซ 74HC595 และ 74HCT595 ใหเลอกใช แมวาไอซทงสองจะมฟงกชนการท างานเหมอนกน แตอยในตระกลของไอซลอจก (Logic Families) ทแตกตางกน... การเลอกใชแรงดนไฟเลยง (Vcc) ส าหรบ 74HC595 จะใชงานไดในชวง 2.0 ถง 6.0 โวลต แตถาเปน 74HCT595 จะใชแรงดนไฟเลยงไดในชวง 4.5 ถง 5.5 โวลต
รปท 2.9 ต าแหนงขาทงหมดของไอซ 74HC595
ไอซ 74HC595 ตวถงแบบ PDIP-16 มขาดงตอไปน
Pin 1 = Q1 -- Data Output Bit 1 Pin 2 = Q2 -- Data Output Bit 2 Pin 3 = Q3 -- Data Output Bit 3 Pin 4 = Q4 -- Data Output Bit 4 Pin 5 = Q5 -- Data Output Bit 5 Pin 6 = Q6 -- Data Output Bit 6 Pin 7 = Q7 -- Data Output Bit 7 Pin 8 = GND Pin 9 = Q7S -- Serial Data Output
23
Pin 10 = /MR -- Master Reset (Active-Low) Pin 11 = SHCP -- Shift Register Clock Input Pin 12 = STCP -- Storage Register Clock Input Pin 13 = /OE -- Output Enable Input (Active-Low) Pin 14 = DS -- Serial Data Input Pin 15 = Q0 -- Data Output Bit 0 Pin 16 = VCC -- Supply Voltage
การตอวงจรไอซ 74HC595 เพอควบคมการตด-ดบของ LED จ านวน 8 ดวง จะใชเพยง 3
ขาสญญาณ ( เพอใหใชขา I/O ใหนอยทสด) เชอมตอกบบอรด Arduino คอ ขา DS, SHC และ
STCP ขอดของการใชไอซ 74HC595 ควบคมการตดดบของ LED คอ สามารถใชขาสญญาณเพยง 3
ขา และใชกบไอซ 74HC595 ไดมากกวาหนงตว (ดงนนจงใชกบ LED ไดมากกวา 8 ดวง) โดยน า
ไอซมาตอกนแบบ Daisy Chain (น าขา Q7S ของไอซตวหนง ไปตอกบขา DS ของไอซตวถดไป
และไอซทกตวใชสญญาณ SHCP และ STCP เหมอนกน)
2.4.2 IC ULN2803
เปนไอซทใชในการขยายกระไฟฟาของวงจร
รปท 2.10 ต าแหนงขาของ ULN2803
24
Pin 1 -- Data Input Bit 1 Pin 2 -- Data Input Bit 2 Pin 3 -- Data Input Bit 3 Pin 4 -- Data Input Bit 4 Pin 5 -- Data Input Bit 5 Pin 6 -- Data Input Bit 6 Pin 7 -- Data Input Bit 7 Pin 8 -- Data Input Bit 8 Pin 9 -- GND Pin 10 -- Common Pin 11 -- Data Output Bit 8 Pin 12 -- Data Output Bit 7 Pin 13 -- Data Output Bit 6 Pin 14 -- Data Output Bit 5 Pin 15 -- Data Output Bit 4 Pin 16 -- Data Output Bit 3 Pin 17 -- Data Output Bit 2 Pin 18 -- Data Output Bit 1
2.4.3 IC SN74LS245
ในกรณของโปรเจคนใชไอซ SN74LS245 เปน CLK และSLK ไอซเบอรนสามารถม
Input and Output ไดสองทศทาง โดยควบคมทศของInput and Output ดวยขา DIR หากจายลอจก 0
ใหขา DIR ทศทางของInput and Output จะเปน Bus B Data to Bus A หากจายลอจก 1 ใหขา DIR
ทศทางของ Input and Output จะเปน Bus A Data to Bus B
25
รป 2.11 ต าแหนงขาของ SN74LS245
Pin 1 -- DIR Pin 2 -- Data Input or Data Output Bit 1 Pin 3 -- Data Input or Data Output Bit 2 Pin 4 -- Data Input or Data Output Bit 3 Pin 5 -- Data Input or Data Output Bit 4 Pin 6 -- Data Input or Data Output Bit 5 Pin 7 -- Data Input or Data Output Bit 6 Pin 8 -- Data Input or Data Output Bit 7 Pin 9 -- Data Input or Data Output Bit 8 Pin 10 --GND Pin 11 -- Data Input or Data Output Bit 8 Pin 12 -- Data Input or Data Output Bit 7 Pin 13 -- Data Input or Data Output Bit 6
26
Pin 14 -- Data Input or Data Output Bit 5 Pin 15 -- Data Input or Data Output Bit 4 Pin 16 -- Data Input or Data Output Bit 3 Pin 17 -- Data Input or Data Output Bit 2 Pin 18 -- Data Input or Data Output Bit 1 Pin 19 -- E Pin 20 -- VCC