เอกสารประกอบการสอนวชิ าไมโครคอนโทรลเลอรเบอื้ งตน 5 หนวยที่ 1 ความรเู กย่ี วกบั ไมโครคอนโทรลเลอรเบ้อื งตน 1.1 ความรูเก่ยี วกบั ไมโครคอนโทรลเลอรเบือ้ งตน ไมโครคอนโทรลเลอร (อังกฤษ: Microcontroller มักยอวา μC, uC หรือ MCU) คือ อุปกรณ ควบคมุ ขนาดเลก็ ซง่ึ บรรจคุ วามสามารถทีค่ ลา ยคลึงกับระบบคอมพิวเตอร โดยในไมโครคอนโทรลเลอรไดรวม เอาซีพยี ู หนว ยความจํา และพอรต ซ่ึงเปนสวนประกอบหลกั สําคัญของระบบคอมพิวเตอรเขาไวดวยกัน โดย ทาํ การบรรจุเขา ไวใ นตวั ถังเดียวกัน ไมโครคอนโทรลเลอรถาแปลความหมายแบบตรงตัวก็คือ ระบบคอนโทรลขนาดเล็กเรียกอีกอยาง หนึ่งคือเปนระบบคอมพิวเตอรข นาดเล็ก ท่สี ามารถนาํ มาประยุกตใ ชงานไดหลากหลาย โดยผานการออกแบบ วงจรใหเหมาะกับงานตางๆ และยงั สามารถโปรแกรมคําสั่งเพื่อควบคุมขา Input / Output เพื่อสั่งงานใหไป ควบคุมอปุ กรณต า งๆ ไดอ กี ดวย ซึง่ ก็นับวาเปน ระบบทส่ี ามารถนาํ มาประยุคใชงานไดห ลากหลาย ท้ังทางดาน Digital และ Analog ยกตัวอยางเชน ระบบสัญญาณตอบรับอัตโนมัต, ระบบบัตรคิว, ระบบตอกบัตร พนักงาน และอืน่ ๆ ยิง่ ระบบไมโครคอนโทรลเลอร ในยุคปจ จุบันนั้นสามารถทาํ การเช่อื ตอ กับระบบ Network ของคอมพิวเตอรทัว่ ไปไดอ ีกดว ย ดังน้ันการส่ังงานจงึ ไมใชแ คห นา แผงวงจร แตอ าจจะเปนการสง่ั งานอยูคนละ ซกี โลกผานเครือขายอินเตอรเนต็ ก็ได รปู ที่ 1.1 โครงสรางโดยทว่ั ไปของไมโครคอนโทรลเลอร (ท่มี า www.Chokelive.com/blog/2013/07/Micro-Controller-Application.html) หนว ยที่ 1 ความรเู กยี่ วกับไมโครคอนโทรลเลอรเ บ้อื งตน
เอกสารประกอบการสอนวชิ าไมโครคอนโทรลเลอรเบอ้ื งตน 6 ไมโครคอนโทรลเลอรตระกูลตางๆ ท่ีไดร ับความนิยมและมพี ัฒนาการมาจนถงึ ปจจุบันมีดังนี้ 1.1.1 Z-80 ไมโครคอนโทรลเลอรที่นิยมใชกัน เริ่มตั้งแตตัวแรกท่ีเปนลักษณะของ CPU ไมถึงขั้นเรียกวา ไมโครคอนโทรลเลอร กค็ อื ตระกลู Z80 เปนลักษณะของ CPU เล็กๆ ที่ตองอาศัย IO ตางๆ เพ่ิมเติมเขามา มาก จงึ ทําใหบ อรดมขี นาดคอนขางใหญ จดั ไดวาเปนการเร่ิมตนการเรียนรูท่ีดีของยุคสมัยนั้น ทําใหไดเรียนรู ชดุ คําสั่งทเี่ ปน Op Code รูปท่ี 1.2 ไมโครคอนโทรลเลอร Z-80 (ท่ีมา www.Chokelive.com/blog/2013/07/Micro-Controller-Application.html) รปู ท่ี 1.3 ตัวอยางการใชงาน Z-80 บนบอรด ทดลองจริง (ทม่ี า www.Chokelive.com/blog/2013/07/Micro-Controller-Application.html) หนวยท่ี 1 ความรูเ ก่ยี วกบั ไมโครคอนโทรลเลอรเบ้ืองตน
เอกสารประกอบการสอนวิชาไมโครคอนโทรลเลอรเ บือ้ งตน 7 1.1.2 MCS-51 บริษัทที่สรางไมโครคอนโทรลเลอรตระกูล MCS-51 เปนบริษัทแรกคือบริษัท Intel ตระกูล MCS-51 เปน ตระกูลที่พัฒนาตอ จาก Z80 ทําใหการศึกษาเรียนรูไมโครคอนโทรลเลอรงายขึ้นกวาเดิม ไมวา จะเปนการเขียนโปรแกรมในลักษณะของ Assembly Code แลวโหลดลงบอรดเพื่อใชงาน ตลอดจน สถาปต ยกรรมในการออกแบบ ไมโครคอนโทรลเลอรรุนนี้ จะชว ยลดอปุ กรณรอบขา งลงไปไดมาก เหมาะที่จะ นําไปใชงานจริง รปู ที่ 1.4 ไมโครคอนโทรลเลอร MCS-51 (ท่ีมา www.Chokelive.com/blog/2013/07/Micro-Controller-Application.html) ตัวอยางการตอ ใชงาน MCS-51 บนบอรดทดลองจริง อุปกรณรอบขางจะนอยกวา Z-80 มากทําให ออกแบบวงจรไดงา ยขึน้ มาก รูปท่ี 1.5 ตวั อยา งการตอใชง าน MCS-51 บนบอรดทดลอง (ท่ีมา www.Chokelive.com/blog/2013/07/Micro-Controller-Application.html) หนว ยท่ี 1 ความรเู กี่ยวกบั ไมโครคอนโทรลเลอรเ บือ้ งตน
เอกสารประกอบการสอนวิชาไมโครคอนโทรลเลอรเบ้ืองตน 8 1.1.3 PIC บริษัท Microchip Technology เปนผูสรางและผลิต PIC เปนไมโครคอนโทรลเลอรยุคตอมาท่ี ไดร ับความนิยมสูงอีกตระกูลหนึง่ ตงั้ แตอดีตจนถงึ ปจ จุบนั คาํ วา PIC ยอ มาจากคําวา (Peripheral Interface Controller) ไมโครคอนโทรลเลอรตระกลู น้ี มกี ารพฒั นาเทคโนโลยีข้ึนในทุกดาน ทําใหไดรับความนิยมกวา ไมโครคอนโทรลเลอรยุคเกา เพราะในเรื่องของอุปกรณตอพวงที่มีนอย ประกอบกับมีหนวยความจํา EEPROM ในตัว จึงทําใหงายตอการบันทึกและจัดก็บขอมูล และ PORT ตางๆ ไดมีการ latch ในตัว IC อยู แลว จึงสามารถตอออกมาใชงานภายนอกไดโดยตรง มีกระแสและแรงดันท่ีเพียงพอ และอีกความสามารถ หน่ึง คือสามารถโปรแกรมตัว Boot Loader เขาไปในตัวไมโครคอนโทรลเลอรได จึงทําใหงายในการโหลด โปรแกรมเขาไปจากคอมพิวเตอร โดยผานทาง Serial Port และกดปุม Reset เพียงอยางเดียว ไมตองการ เครอ่ื งโปรแกรม IC เพิ่มเติม อยางทตี่ อ งมกี ับระบบไมโครคอนโทรลเลอรรนุ เกา อยาง MCS-51 รปู ท่ี 1.6 ไมโครคอนโทรลเลอร MCS-51 (ท่ีมา www.Chokelive.com/blog/2013/07/Micro-Controller-Application.html) ตวั อยา งการตอ ใชงาน PIC กับบอรดทดลองจริง ฟงกช่ันการใชงานคอนขางครบ และโปรแกรมงาย โดย CCS, HI-TECH C Compiler, C18 C Compile, C30 C Compiler, MPLAB เปนตน รปู ท่ี 1.7 ตัวอยา งการตอใชง าน MCS-51 บนบอรด ทดลอง (ทีม่ า www.Chokelive.com/blog/2013/07/Micro-Controller-Application.html) หนวยที่ 1 ความรเู กยี่ วกับไมโครคอนโทรลเลอรเบ้ืองตน
เอกสารประกอบการสอนวชิ าไมโครคอนโทรลเลอรเบ้อื งตน 9 1.1.4 AVR AVR เปนไมโครคอนโทรลเลอรรุนตอมาที่มีการพัฒนาตอมาจาก MCS-51 โดยบริษัท ATMEL อัน เนื่องมาจากวา MCS-51 ยุคหลังนี้ไมคอยมีคนใชงานจริง และมีใชงานแตเฉพาะในสถาบันการศึกษา เปน เชนน้ีก็เพราะวาการออกออกแบบวงจรที่คอนขางยุงยาก และตองอาศัยการตออุปกรณรวมเยอะน้ันเอง ดังนั้น AVR จึงเขามาเปนที่นิยมในการทํางานดานนี้ โดยคุณสมบัติหลักที่นาสนใจก็คือ สามารถ Interface ผาน USB ไดโดยตรง ซ่ึงไมโครคอนโทรลเลอรยุคเกาทําไดโดยตอผานพอรต RS-232 แตเนื่องดวย คอมพวิ เตอรยุคใหม พอรต RS-232 เริ่มหายาก ดังน้นั AVR จึงไดร บั ความนิยม รูปท่ี 1.8 ไมโครคอนโทรลเลอร AVR (ที่มา www.Chokelive.com/blog/2013/07/Micro-Controller-Application.html) ตวั อยางการตอ AVR ใชงานบนเบอรด ที่มีลักษณะใกลเ คยี งกบั ไมโครคอมพิวเตอร รูปที่ 1.9 ตวั อยางการตอ ใชง าน AVR (ทม่ี า www.Chokelive.com/blog/2013/07/Micro-Controller-Application.html) หนวยท่ี 1 ความรเู ก่ยี วกบั ไมโครคอนโทรลเลอรเบ้ืองตน
เอกสารประกอบการสอนวิชาไมโครคอนโทรลเลอรเ บอ้ื งตน 10 1.1.5 Arduino Arduino เปนไมโครคอนโทรลเลอรบอรด แบบสําเรจ็ รูปในยุคปจ จุบนั ซง่ึ ถูกสรางมาจาก Controller ตระกลู ARM ของ ATMEL ขอดขี องไมโครคอนโทรลเลอรบอรดคือเร่ืองของ Open Source ท่ีสามารถนําไป พัฒนาตอเปนอุปกรณตางๆได และความสามารถในการเพ่ิม Boot Loader เขาไปท่ีตัว ARM จึงทําใหการ Upload Code เขา ตวั บอรดสามารถทําไดงายข้ึน และยงั มีการพฒั นา Software ทใ่ี ชในการควบคุมตัวบอรด ของ Arduino มีลักษณะเปนภาษา C++ ท่ีโปรแกรมเมอรมีความคุนเคยในการใชงาน ตัวบอรดสามารถนํา โมดลู มาตอเพ่ิม ซึง่ ทาง Arduino เรียกวาเปน shield เพอ่ื เพ่มิ ความสามารถเพมิ่ ขนึ้ รปู ท่ี 1.10 ไมโครคอนโทรลเลอร Arduino (ทม่ี า www.Chokelive.com/blog/2013/07/Micro-Controller-Application.html) รูปท่ี 1.11 ตัวอยา งการตอ ใชงาน Arduino บนบอรด Shield สาํ เร็จรปู (ท่ีมา www.Chokelive.com/blog/2013/07/Micro-Controller-Application.html) หนว ยท่ี 1 ความรูเ ก่ียวกบั ไมโครคอนโทรลเลอรเบือ้ งตน
เอกสารประกอบการสอนวิชาไมโครคอนโทรลเลอรเบ้อื งตน 11 หรอื ถา สามารถสรา งวงจรเพ่ิมเตมิ และนาํ มาประกอบเปน Shield ใหก บั Arduino กไ็ ด รูปที่ 1.12 ตวั อยางการตอ ใชงาน Arduino บนบอรด Shield ท่สี รา งขึ้นเอง (ที่มา www.Chokelive.com/blog/2013/07/Micro-Controller-Application.html) 1.1.6 Raspberry Pi รปู ที่ 1.13 ไมโครคอนโทรลเลอร Raspberry Pi (ท่ีมา www.Chokelive.com/blog/2013/07/Micro-Controller-Application.html) Raspberry Pi เปนไมโครคอนโทรลเลอร Board ยุคนี้เหมือนกัน ใช Controller ตระกูล ARM เชนกัน ท่ีนาสนใจสําหรับบอรด Raspberry Pi ก็คือการจําลองตัวมันเองใหเปนระบบคอมพิวเตอรเครื่อง เลก็ ๆเคร่อื งหนึ่ง ทส่ี ามารถรนั ระบบ Linux ไดใ นตัว น้นั ก็หมายถึงการดึงระบบตางๆเพ่ือมาใชงานใน board หนวยท่ี 1 ความรเู ก่ียวกบั ไมโครคอนโทรลเลอรเบื้องตน
เอกสารประกอบการสอนวิชาไมโครคอนโทรลเลอรเ บื้องตน 12 ทําใหมีความสะดวกมากเพราะมี OS Linux ทํางานใหแทนอยูแลว อยางเชนการติดตอกับระบบ Network การติดตอ กับระบบจอภาพ การติดตอระบบเสียง ตลอดจนการติดตอกับระบบการเก็บขอมูลผาน SD Card ซึ่งสามารถทําไดครบและครอบคลมุ ดวยระบบปฏิบัตกิ าร Linux ที่รันอยูบนตวั บอรด Raspberry Pi รปู ท่ี 1.14 ตัวอยางการประยุคใช Raspberry Pi เปน Smart TV (ท่มี า www.Chokelive.com/blog/2013/07/Micro-Controller-Application.html) ท้ังหมดน้กี ็คือวิวัฒนาการของระบบไมโครคอนโทรลเลอร จากอดีตจนถงึ ปจจบุ ันท่ีไดรับความนยิ ม แตยัง มีอีกหลายรุนที่มีการผลิตข้ึนมาใชงานและมิไดกลาวถึงในท่ีนี้ มีเฉพาะท่ีนิยมและรูจักกันเปนวงกวางใน ปจ จุบนั มานําเสนอ หนวยที่ 1 ความรูเกี่ยวกับไมโครคอนโทรลเลอรเ บอื้ งตน
เอกสารประกอบการสอนวชิ าไมโครคอนโทรลเลอรเ บ้ืองตน 13 1.2 หนา ท่สี วนตางๆ ของไมโครคอนโทรลเลอร โครงสรางโดยทว่ั ไปของไมโครคอนโทรลเลอรสามารถแบง ออกมาไดเ ปน 5 สว นใหญๆ ดงั ตอไปน้ี รปู ท่ี 1.14 หนาท่ีสวนตา งๆของไมโครคอนโทรลเลอร (ท่มี า www.Rendhyy8.blogspot.com/2013/12/tugas-mikroprosesor.html) 1. หนวยประมวลผลกลางหรือซีพยี ู (CPU : Central Processing Unit) 2. หนวยความจํา (Memory) สามารถแบงออกเปน 2 สวน คือหนวยความจําท่ีมีไวสําหรับเก็บ โปรแกรมหลัก (Program Memory) เชน Flash Memory ลักษณะการทํางานของหนวยความจําน้ี เปน หนว ยความจําทอี่ า น-เขยี นไดดว ยไฟฟา เปรียบเสมือนฮารดดิสกของเคร่ืองคอมพิวเตอรต้ังโตะ คือขอมูลใดๆ ทถ่ี ูกเกบ็ ไวใ นนี้จะไมส ญู หายไปแมไ มมีไฟเล้ียง อีกสวนหนึ่งคือหนวยความจําขอมูล (Data Memory) ใชเปน เหมอื นกับกระดาษทดในการคํานวณของซีพียู และเปนที่พักขอมูลช่ัวคราวขณะทํางาน แตหากไมมีไฟเลี้ยง ในการทํางานขอมูลจะหายไปคลายกับหนวยความแรม (RAM) ในเคร่ืองคอมพิวเตอรทั่วๆไป แตสําหรับ ไมโครคอนโทรลเลอรส มยั ใหม หนวยความจาํ ขอมลู มที ั้งที่เปนหนวยความจําแรม ซ่ึงขอมูลจะหายไปเม่ือไมมี ไฟเล้ียง และเปนอีอีพรอม (EEPROM : Erasable Electrically Read-Only Memory) ซึ่งสามารถเก็บ ขอมูลไดแ มไมม ไี ฟเล้ียงก็ตาม ในอดตี เปนหนวยความจําโปรแกรมแบบ EPROM หนวยความจําท่ีลบดวยแสง หนวยที่ 1 ความรูเกย่ี วกับไมโครคอนโทรลเลอรเ บื้องตน
เอกสารประกอบการสอนวชิ าไมโครคอนโทรลเลอรเบอื้ งตน 14 3. สวนติดตอกับอุปกรณภายนอก หรือพอรต (Port) มี 2 ลักษณะคือ พอรตอินพุต (Input Port) และพอรตสง สญั ญาณหรือพอรตเอาตพ ตุ (Output Port) สวนนจี้ ะใชใ นการเชื่อมตอกับอุปกรณภายนอก ถือ วาเปนสวนที่สําคัญมาก พอรตอินพตุ รับสัญญาณเพ่อื นําไปประมวลผลและสง ไปแสดงผลท่ีพอรตเอาตพุต เชน การติดสวา งของหลอดไฟ เปน ตน 4. ชอ งทางเดนิ ของสัญญาณ หรือบัส (BUS) คือเสน ทางการแลกเปลี่ยนสัญญาณขอมูลระหวาง ซีพียู หนวยความจําและพอรต เปนลักษณะของสายสัญญาณจํานวนมากอยูภายในตัวไมโครคอนโทรลเลอร โดย แบง เปน บสั ขอ มลู (Data Bus) บสั แอดเดรส (Address Bus) และบัสควบคุม (Control Bus) 5. วงจรกําเนิดสญั ญาณนาฬกิ า นับเปน สวนประกอบทส่ี ําคัญมากอีกสวนหนึ่ง เน่ืองจากการทํางานท่ี เกดิ ขนึ้ ในตัวไมโครคอนโทรลเลอร จะข้ึนอยูกับการกําหนดจังหวะ หากสัญญาณนาฬิกามีความถ่ีสูง จังหวะ การทาํ งานกจ็ ะสามารถทําไดถี่ขนึ้ สงผลใหไมโครคอนโทรลเลอรตัวน้ัน มีความเร็วในการประมวลผลสูงตาม ไปดวย การเขยี นโปรแกรมไมโครคอนโทรลเลอรภ าษาซถี ือวาเปน ภาษาระดบั กลาง 1.3 ไมโครคอนโทรลเลอร AVR AVR เปนไมโครคอนโทรลเลอรต ระกลู หนึ่งผลิตโดยบริษัท Atmel AVR อยูในรูปแบบสมองกลฝงตัว (Embedded System) มีลักษณะสถาปตยกรรมเปนแบบ RISC (Reduced Instruction Set Computing) มีความเรว็ ในการประมวลผล 1 คาํ สง่ั ตอ 1 สญั ญาณนาฬกิ า ใชพลังงานไฟฟา ตาํ่ โดยบางรนุ ใชไฟเพียง 1.5 V - 5.5 V เทา นัน้ และยงั มโี หมดประหยดั พลงั งานอกี 6 โหมด รปู ที่ 1.15 สถาปต ยกรรมภายในไมโครคอนโทรลเลอร AVR (ทม่ี า www.Microcontroller.com/news/Atmel_AVR_XMEGA_B1.asp) ในที่นี้จะนาํ เสนอ AVR เบอร ATmega48 เปนตัวอยา งในการศึกษาคณุ สมบตั ิดา นตา งๆ หนวยที่ 1 ความรเู กี่ยวกบั ไมโครคอนโทรลเลอรเบือ้ งตน
เอกสารประกอบการสอนวชิ าไมโครคอนโทรลเลอรเ บ้อื งตน 15 รปู ที่ 1.16 ไมโครคอนโทรลเลอร Atmega48 (ท่ีมา www.Chinaimportexport.Wikispaces.com) x มหี นว ยความจาํ สําหรับเก็บโปรแกรมแบบแฟลช (ROM) ขนาด 4 กโิ ลไบต สามารถเขียน-ลบได ประมาณ 10,000 ครง้ั x มีหนวยความจาํ ขอ มูล (RAM) ขนาด 512 ไบต x มหี นวยความจาํ ขอ มลู อีอีพรอม (EEPROM) ขนาด 256 ไบต สามรถเขียน-ลบไดประมาณ 100,000 ครั้ง x มพี อรตอินพุตเอาตพ ุตใหใ ชงานจาํ นวน 23 ขา (PB0 ถึง PB7, PC0 ถึง PC6, PD0 ถงึ PD7) x มีความเรว็ ในการประมวนผลสงู สดุ 20 ลา นคาํ ส่ังตอ 1 วินาทที ีค่ วามถ่ี 20 MHz x มีโมดลู แปลงสัญญาณแอนะล็อกเปนดจิ ติ อล (Analog-to-Digital Converter) ขนาด 10 บติ จาํ นวน 6 ชอง สําหรับตัวถังแบบ PDIP และ 8 ชอ งสําหรับตวั ถงั แบบ TQFP และ MLF x มีโมดูลสรางสัญญาณ Pulse Width Modulator (PWM) 3 ชุด 6 ชองสัญญาณ x มี Timer/Counters ขนาด 8 บติ 2 ตัว และ 16 บติ 1 ตวั ภาษาท่ีใชเขียนโปรแกรมไมโครคอนโทรลเลอรมีหลายภาษา เชน ภาษาเคร่ือง, Assembly, BASIC, C เปนตน แตละภาษาก็มีขอดีขอเสียแตกตางกันไป ภาษาทีเปนท่ีนิยมคือภาษา C เนื่องจากเขียนงายแกไข เปล่ียนแปลงไดงา ย โปรแกรมเขียนภาษา C สําหรับไมโครคอนโทรลเลอร AVR เบอร ATmega48 นั้นนิยมใช โปรแกรม MikroC for AVR เน่ืองจาเปน โปรแกรมท่ีใชง านงา ยและมไี ลบรารีใหม าพรอมดวย หนว ยท่ี 1 ความรูเกี่ยวกับไมโครคอนโทรลเลอรเบ้อื งตน
เอกสารประกอบการสอนวิชาไมโครคอนโทรลเลอรเบือ้ งตน 16 1.4 บอรดไมโครคอนโทรลเลอร Arduino Arduino เปน ภาษาอติ าลี โดยเปนชอื่ โครงการพฒั นาไมโครคอนโทรลเลอรตระกูล AVR ในรูปแบบ Open Source คือวิธีการในการออกแบบ พัฒนา และแจกจายสําหรับตนฉบับของสินคาหรือความรู โดยเฉพาะซอฟตแ วร โดยโอเพนซอรซ ถกู พิจารณาวาเปน ทง้ั รปู แบบหนึ่งในการออกแบบ และแผนการในการ ดําเนนิ การ โอเพนซอรซเปด โอกาสใหบ ุคคลอนื่ นําเอาระบบนั้นไปพัฒนาไดตอไป การพัฒนามาจากโครงการ Open Source เดิมของ AVR ที่ช่ือ Wiring โดยโครงการ Wiring ใชไมโครคอนโทรลเลอร AVR เบอร ATmega128 ซ่ึงมีขอจํากัดหลายดาน เชนเปนชิปท่ีมีตัวถังแบบ SMD ทําใหนํามาใชงานยากเพราะตัว ไมโครคอนโทรลเลอรมขี นาดเล็กเกนิ ไป ทําใหไ มสะดวกในการตอใชงานจริง มีขาอินพุทและเอาทพุทจํานวน มากเกินไป ตัวบอรด มีขนาดใหญเ กนิ ไป ไมเหมาะสมสําหรับผูท่ีเริ่มตนเรียนรูดานไมโครคอนโทรลเลอร ดวย เหตุผลขางตนจึงทําใหไมไดรับความนิยม ระยะตอมาทีมงาน Arduino จึงไดนําโครงการ Wiring มาพัฒนา ใหมโดยใชไมโครคอนโทรลเลอร AVR ขนาดเล็ก คือ ATMega8 และ ATMega168 ทําใหไดรับความนิยม จนถึงปจจุบนั นี้ ตัวอยางรายละเอยี ดรุน ตางๆมีดงั นี้ 1.4.1 Arduino Uno R3 คําวา Uno เปนภาษาอิตาลี ซ่ึงแปลวาหน่ึง เปนบอรด Arduino รุนแรกท่ีผลิตออกมา มีขนาด ประมาณ 68.6x53.4 mm. เปนบอรดมาตรฐานที่นิยมใชงานมากท่ีสุด เน่ืองจากเปนขนาดท่ีเหมาะสําหรับ การเรม่ิ ตน เรียนรู Arduino และมี Shields ใหเลือกใชงานไดมากกวาบอรด Arduino รุนอ่ืนๆ ท่ีออกแบบมา เฉพาะมากกวา โดยบอรด Arduino Uno ไดมกี ารพัฒนาเรื่อยมา ตั้งแต R2 R3 และรุนยอยที่เปลี่ยนชิปไอซี เปนแบบ SMD เปน บอรด Arduino ทไ่ี ดรบั ความนิยมมากท่ีสุด เน่ืองจากราคาไมแพง และสวนใหญโปรเจค และ Library ตา งๆ ท่พี ฒั นาขน้ึ มา Support จะอางองิ กบั บอรดนี้เปน หลกั และขอ ดีอีกอยางคือกรณีท่ี MCU เสยี ผใู ชง านสามารถซื้อมาเปลี่ยนเองไดง าย Arduino Uno R3 มี MCU ทเ่ี ปน Package DIP ขอ มลู จําเพาะ ชปิ ไอซไี มโครคอนโทรเลอร ATmega328 ใชแ รงดนั ไฟฟา 5V รองรบั การจา ยแรงดันไฟฟา (ทแี่ นะนํา) 7 – 12 V รองรบั การจา ยแรงดันไฟฟา (ท่จี าํ กัด) 6 – 20 V พอรต Digital I/O 14 พอรต (มี 6 พอรต PWM output) พอรต Analog Input 6 พอรต กระแสไฟทีจ่ า ยไดในแตล ะพอรต 40 mA กระแสไฟทจ่ี ายไดใ นพอรต 3.3V 50 mA หนว ยท่ี 1 ความรเู ก่ยี วกับไมโครคอนโทรลเลอรเบ้ืองตน
เอกสารประกอบการสอนวิชาไมโครคอนโทรลเลอรเ บื้องตน 17 พ้ืนทโ่ี ปรแกรมภายใน 32 KB พนื้ ทโ่ี ปรแกรม , 500B ใชโ ดย Boot Loader พืน้ ที่แรม 2 KB พน้ื ที่หนว ยความจําถาวร (EEPROM) 1 KB ความถี่คริสตลั 16 MHz ขนาด 68.6 x 53.4 mm นา้ํ หนัก 25 กรัม รปู ที่ 1.17 ไมโครคอนโทรลเลอร Arduino Uno R3 (ท่มี า www.Ce.kmitl.ac.th/download.php?DOWNLOAD_ID=4307&database=subject) หมายเลขตางๆ ตามรูปที่ 1.17 มีความหมายดังน้ี 1. USB Port: ใชส ําหรบั ตอกบั Computer เพือ่ อับโหลดโปรแกรมเขา MCU และจายไฟใหก ับบอรด 2. Reset Button: เปนปมุ Reset ใชก ดเมื่อตองการให MCU เร่ิมการทํางานใหม 3. ICSP Port ของ ATmega16U2: เปน พอรต ท่ีใชโ ปรแกรม VisualComport บน ATmega16U2 4. I/O Port: Digital I/O ตง้ั แตข า D0 ถงึ D13 นอกจากน้ี บาง Pin จะทําหนา ที่อื่นๆ เพม่ิ เติมดว ย เชน Pin0,1 เปนขา Tx,Rx / Serial, Pin3,5,6,9,10 และ 11 เปนขา PWM 5. ICSP Port: ATmega328 เปน พอรตท่ใี ชโ ปรแกรม Bootloader 6. MCU: ATmega328 เปน MCU ท่ีใชบ นบอรด Arduino หนวยที่ 1 ความรเู กยี่ วกบั ไมโครคอนโทรลเลอรเบ้ืองตน
เอกสารประกอบการสอนวิชาไมโครคอนโทรลเลอรเบื้องตน 18 7. I/O Port: นอกจากจะเปน Digital I/O แลว ยังเปล่ยี นเปน ชองรับสญั ญาณแอนะลอ็ ก ตั้งแตขา A0-A5 8. Power Port: ไฟเลย้ี งของบอรดเม่ือตอ งการจา ยไฟใหกับวงจรภายนอก ประกอบดว ยขาไฟเลี้ยง +3.3 V, +5V, GND, Vin 9. Power Jack: รบั ไฟจาก Adapter โดยท่ีแรงดันอยูระหวา ง 7-12 V 10. MCU ของ ATmega16U2 เปน MCU ท่ีทําหนา ที่เปน USB to Serial โดย ATmega328 จะ ตดิ ตอ กบั Computer ผาน ATmega16U2 1.4.2 Arduino Uno SMD เปนบอรดที่มีคุณสมบัติและการทํางานเหมือนกับบอรด Arduino Uno R3 ทุกประการ แตจะ แตกตา งกนั ท่ี Package ของ MCU ซงึ่ บอรดนีจ้ ะมี MCU ท่เี ปน Package SMD รูปท่ี 1.18 ไมโครคอนโทรลเลอร Arduino Uno SMD (ทม่ี า www.Thaieasyelec.com) 1.4.3 Arduino Mega 2560 R3 บอรด Arduino Mega 2560 จะเหมอื นกับ Arduino Mega ADK ตางกนั ตรงท่บี นบอรดไมมี USB Host มาให การโปรแกรมยังตองทําผานโปรโตคอล UART อยูบนบอรดใชชิปไอซีไมโครคอนโทรเลอรเบอร ATmega2560 เปนบอรด Arduino ทอ่ี อกแบบมาสําหรบั งานทีต่ อ งใช IO มากกวา Arduino Uno R3 เชน งานท่ีตองการรับสัญญาณจาก Sensor หรือควบคุมมอเตอร Servo หลายๆตัว ทําให Pin IO ของบอรด Arduino Uno R3 ไมสามารถรองรับได ท้ังนี้บอรด Mega 2560 R3 ยังมีความหนวยความจําแบบ Flash มากกวา Arduino Uno R3 ทําใหสามารถเขียนโคดโปรแกรมเขาไปไดมากกวา ในความเร็วของ MCU ที่ เทากนั หนวยท่ี 1 ความรเู กีย่ วกบั ไมโครคอนโทรลเลอรเ บือ้ งตน
เอกสารประกอบการสอนวชิ าไมโครคอนโทรลเลอรเบอื้ งตน 19 รูปท่ี 1.19 ไมโครคอนโทรลเลอร Arduino Mega 2560 R3 (ท่ีมา www.Thaieasyelec.com) ขอ มูลจําเพาะ ชิปไอซไี มโครคอนโทรเลอร ATmega2560 ใชแ รงดนั ไฟฟา 5V รองรบั การจา ยแรงดนั ไฟฟา (ท่ีแนะนํา) 7 – 12 V รองรับการจายแรงดันไฟฟา (ทจ่ี ํากัด) 6 – 20 V พอรต Digital I/O 54 พอรต (มี 15 พอรต PWM output) พอรต Analog Input 16 พอรต กระแสไฟฟารวมท่จี า ยไดใ นทกุ พอรต 40 mA กระแสไปที่จายไดใ นพอรต 3.3V 50 mA พ้ืนที่โปรแกรมภายใน 256 KB แต 8 KB ถกู ใชโ ดย Boot Loader พื้นท่แี รม 8 KB พื้นทหี่ นว ยความจําถาวร (EEPROM) 4 KB ความถี่ครสิ ตัล 16 MHz 1.4.4 Arduino Mega ADK บอรด Arduino Mega ADK ใชช ิปไมโครคอนโทรเลอรเบอร ATmaega2560 มีชิปไอซี USB Host เบอร MAX3421e มาใหบ นบอรด ใชส ําหรบั เชอ่ื มตอกับโทรศัพทมือถือแอนดรอยผาน OTG มีพอรตดิจิตอล อินพุตเอาตพุตจํานวน 54 พอรต มีอนาล็อกอินพุตมาให 16 พอรต ทํางานท่ีความถ่ี 16 MHz บอรด Arduino Mega ADK จะแตกตา งกับบอรด Arduino Duo ตรงทีช่ ิปบนบอรด น้ันฉลาดไมเ ทา และใชความถี่ ตาํ่ กวา ดังนัน้ จงึ ไมเ หมาะจะนาํ ไปใชก ับงานคํานวณ แตเหมาะสําหรับงานที่ใชการเช่ือมตอกับโทรศัพทมือถือ แอนดรอยมากกวา หนว ยท่ี 1 ความรเู กีย่ วกบั ไมโครคอนโทรลเลอรเบ้ืองตน
เอกสารประกอบการสอนวชิ าไมโครคอนโทรลเลอรเ บื้องตน 20 รูปท่ี 1.20 ไมโครคอนโทรลเลอร Arduino Mega 2560 R3 (ทม่ี า www.Thaieasyelec.com) ขอมลู จาํ เพาะ ชิปไอซไี มโครคอนโทรเลอร ATmega2560 ใชแรงดันไฟฟา 5V รองรับการจา ยแรงดันไฟฟา (ทแี่ นะนาํ ) 7 – 12 V รองรับการจา ยแรงดนั ไฟฟา (ทจี่ าํ กดั ) 6 – 20 V พอรต Digital I/O 54 พอรต (มี 15 พอรต PWM output) พอรต Analog Input 16 พอรต กระแสไฟฟารวมท่ีจา ยไดในทุกพอรต 40 mA กระแสไปท่จี า ยไดใ นพอรต 3.3V 50 mA พืน้ ทโี่ ปรแกรมภายใน 256 KB แต 8 KB ถูกใชโดย Boot Loader พน้ื ทแ่ี รม 8 KB พน้ื ทห่ี นว ยความจําถาวร (EEPROM) 4 KB ความถีค่ ริสตลั 16 MHz ขนาด 101.52x53.3 mm นํ้าหนกั 36 กรมั 1.4.5 Arduino Leonardo บอรด Arduino Leonard เปนบอรด ท่เี ลือกใชชปิ ไอซเี บอร Atmega32u4 ที่รองรับการเชื่อมตอกับ พอรต USB ไดโดยตรง ทําใหบอรดสามารถเขียนโปรแกรมเพื่อจําลองตัวเองใหเปนเมาส หรือคียบอรดได ทํางานที่แรงดัน 5V ทําใหไมมีปญหากับเซ็นเซอร หรือ Shields ท่ีใชงานกับ Arduino Uno การทํางานจะ คลา ยกับบอรด Arduino Uno R3 แตมีการเปลีย่ น MCU ตวั ใหมเปน ATmega32U4 ซึ่งมีโมดูลพอรต USB หนว ยที่ 1 ความรูเ กย่ี วกับไมโครคอนโทรลเลอรเ บื้องตน เรียบเรยี งโดยครทู นั พงษ ภรู ักษ
เอกสารประกอบการสอนวชิ าไมโครคอนโทรลเลอรเบือ้ งตน 21 มาดวยบนชิป (แตกตางจากบอรด Arduino Uno R3 หรือ Arduino Mega 2560 ที่ตองใชชิป ATmega16U2 รว มกบั ATmega328 ในการเชอ่ื มตอกบั พอรต USB) รปู ท่ี 1.21 ไมโครคอนโทรลเลอร Arduino Leonardo (ท่ีมา www.Thaieasyelec.com) ขอ มลู จําเพาะ ชิปไอซไี มโครคอนโทรเลอร Atmega32u4 ใชแ รงดนั ไฟฟา 5V รองรับการจา ยแรงดันไฟฟา (ท่แี นะนาํ ) 7 – 12 V รองรบั การจายแรงดันไฟฟา (ทีจ่ ํากดั ) 6 – 20 V พอรต Digital I/O 20 พอรต (มี 7 พอรต PWM output) พอรต Analog Input 12 พอรต กระแสไฟฟารวมที่จายไดในทกุ พอรต 40 mA กระแสไปที่จา ยไดในพอรต 3.3V 50 mA พื้นทโ่ี ปรแกรมภายใน 32 KB แต 4 KB ถกู ใชโดย Boot Loader พนื้ ทแ่ี รม 2.5 KB พนื้ ทีห่ นวยความจาํ ถาวร (EEPROM) 1 KB ความถี่คริสตัล 16 MHz ขนาด 68.6x53.3 mm น้ําหนัก 20 กรมั หนว ยที่ 1 ความรูเก่ียวกับไมโครคอนโทรลเลอรเบ้อื งตน
เอกสารประกอบการสอนวชิ าไมโครคอนโทรลเลอรเ บือ้ งตน 22 ขอ ควรระวัง: เน่อื งจาก MCU เปน คนละเบอรก ับ Arduino Uno R3 อาจะทาํ ใหบอรด Shield บางตัวหรือ Library ใชรวมกันกับบอรด Arduino Leonardo ไมไ ด ผูใชง านตอ งตรวจสอบกอนใชงาน 1.4.6 Arduino Mini 05 เปนบอรด Arduino ขนาดเลก็ ที่ใช MCU เบอร Atmega328 รูปที่ 1.22 ไมโครคอนโทรลเลอร Arduino Mini (ที่มา www.Thaieasyelec.com) ขอ แตกตางของบอรด Arduino Mini 05 จะไมมีพอรต USB มาให ผูใชงานตองตอกับบอรด USB to Serial Converter เพ่มิ เมื่อตอ งการโปรแกรมบอรด 1.4.7 Arduino Pro Mini 328 3.3V เปนบอรด Arduino ขนาดเล็ก ที่ใช MCU เบอร ATmega328 ซ่ึงจะคลายกับบอรด Arduino Mini 05 แตบนบอรดจะมี Regulator 3.3 V ชดุ เดียวเทา นัน้ ระดบั แรงดนั ไฟที่ขา I/O คือ 3.3V รปู ท่ี 1.23 ไมโครคอนโทรลเลอร Arduino Pro Mini 328 3.3V (ที่มา www.Thaieasyelec.com) หนว ยที่ 1 ความรเู กย่ี วกับไมโครคอนโทรลเลอรเ บ้ืองตน
เอกสารประกอบการสอนวชิ าไมโครคอนโทรลเลอรเบ้ืองตน 23 1.4.8 Arduino Pro Mini 328 5V เปน บอรด Arduino ขนาดเล็ก ท่ีใช MCU เบอร ATmega328 เชนเดียวกับบอรด Arduino Mini 05 แตบ นบอรด จะมี Regulator 5V ชุดเดียวเทาน้ัน ระดบั แรงดนั ไฟทข่ี า I/O คือ 5V รูปที่ 1.24 ไมโครคอนโทรลเลอร Arduino Pro Mini 328 5V (ท่มี า www.Thaieasyelec.com) 1.4.9 Arduino Ethernet With PoE Module เปน บอรด Arduino ท่ีใช MCU เบอรเดียวกับ Arduino Uno SMD ในบอรดมีชิป Ethernet และ ชองสําหรับเสียบ SD Card รวมทั้งโมดูล POE ทําใหบอรดน้ีสามารถใชแหลงจายไฟจากสาย LAN ได โดยตรง โดยไมตองตอ Adapter เพิ่ม แตบอรด Arduino Ethernet With PoE Module น้ีจะไมมี พอรต USB ทาํ ใหเวลาโปรแกรมตองตอบอรด USB to Serial Converter เพิ่มเติม รูปท่ี 1.25 ไมโครคอนโทรลเลอร Arduino Ethernet with PoE Module (ท่มี า www.Thaieasyelec.com) หนว ยท่ี 1 ความรูเกยี่ วกบั ไมโครคอนโทรลเลอรเบ้อื งตน
เอกสารประกอบการสอนวิชาไมโครคอนโทรลเลอรเ บอ้ื งตน 24 1.4.10 Arduino Ethernet Without PoE Module บอรดน้ีจะตัดโมดูล POE ออกไป ตองใชไฟจากพอรต Power Jack เทาน้ัน คุณสมบัติอื่นๆจะ เหมือนกบั บอรด Arduino Ethernet With PoE Module รูปท่ี 1.26 ไมโครคอนโทรลเลอร Arduino Ethernet without PoE module (ท่มี า www.Thaieasyelec.com) 1.4.11 Arduino Due Duo เปนภาษาอิตาลีแปลวาสอง เปนรุนท่ีเพ่ิมพอรตใหมากขึ้นเปน 54 พอรตดิจิตอลอินพุต เอาตพุต และ 12 พอรตแอนะล็อกอินพุต 2 พอรตแอนะล็อกเอาตพุต เพิ่มพ้ืนท่ีโปรแกรมเปน 512 KB สามารถใชงานพื้นที่ไดเต็มไมมี Bootloader เน่ืองจากสามารถใชกับพอรต USB ไดโดยตรง มีขนาด บอรด 101.52x53.3 mm สามารถใช Shields ของ Arduino Uno ได แตบางตัวจําเปนตองแกขาให ถูกตอง จากรูปที่ 1.27 จะเห็นไดวาบอรดไดเปลี่ยนมาใชชิปไอซีแบบ SMD จึงไมนิยมนํามาใชในแบบ Standalone แตนิยมนํามาใชในงานที่จําเปนตองพื้นที่โปรแกรมมากขึ้น ทํางานท่ีซับซอนมากย่ิงขึ้น บอรด Arduino Duo ใชชิปไอซีเบอร AT91SAM3X8E ซึ่งเปนชิปไอซีที่ใชเทคโนโลยี ARM Core สถาปตยกรรม 32 บติ เรงความถี่คริสตอลข้ึนไปสูงถึง 84 MHz จึงทําใหสามารถทํางานดานการคํานวน หรือการประมวลผลอัลกอริทึมไดเร็วกวา Arduino Uno มาก เน่ืองจากชิปไอซีทํางานที่แรงดัน 3.3 V ดงั นั้นการนาํ ไปใชงานกบั เซน็ เซอรควรระวังไมใหแรงดัน 5 V ไหลเขาบอรด ควรใชวงจรแบงแรงดันเพ่ือ ชวยใหลอจิกลดแรงดนั ลงมาใหเหมาะสม ขอ มลู จําเพาะ ชปิ ไอซไี มโครคอนโทรเลอร AT91SAM3X8E ใชแ รงดนั ไฟฟา 3.3 V รองรับการจายแรงดนั ไฟฟา (ท่ีแนะนาํ ) 7 – 12 V หนว ยท่ี 1 ความรูเ ก่ียวกับไมโครคอนโทรลเลอรเบือ้ งตน
เอกสารประกอบการสอนวิชาไมโครคอนโทรลเลอรเ บื้องตน 25 รองรับการจายแรงดนั ไฟฟา (ท่จี าํ กดั ) 6 – 16 V พอรต Digital I/O 54 พอรต (มี 12 พอรต PWM Output) พอรต Analog Input 2 พอรต กระแสไฟฟารวมทีจ่ า ยไดใ นทกุ พอรต 130 mA กระแสไฟท่จี า ยไดในพอรต 3.3V 800 mA กระแสไปทีจ่ ายไดในพอรต 5V 800 mA พื้นท่ีโปรแกรมภายใน 512 KB พนื้ ที่โปรแกรม พนื้ ทแ่ี รม 2 KB พนื้ ท่หี นวยความจําถาวร (EEPROM) 96 KB ความถ่คี รสิ ตัล 84 MHz ขนาด 101.52x53.3 mm นา้ํ หนัก 36 กรมั เปนบอรด Arduino ท่ีเปลี่ยนชิป MCU ใหม ซ่ึงจากเดิมเปนตระกูล AVR เปล่ียนเปนเบอร AT91SAM3X8E (ตระกูล ARM Cortex-M3) แทน ทําใหการประมวลผลเร็วขึ้น แตยังคงรูปแบบโคด โปรแกรมของ Arduino ท่ีงายอยู มีขอควรระวังคือเน่ืองจาก MCU เปนคนละเบอรกับ Arduino Uno R3 อาจะทําใหบอรด Shield บางตัวหรือ Library ใชรวมกันกับบอรด Arduino Leonardo ไมได ผูใชงานจําเปน ตอ งตรวจสอบกอ นใชงาน รปู ที่ 1.27 ไมโครคอนโทรลเลอร Arduino Due (ทีม่ า www.Thaieasyelec.com) หนว ยที่ 1 ความรเู ก่ยี วกบั ไมโครคอนโทรลเลอรเบื้องตน
เอกสารประกอบการสอนวชิ าไมโครคอนโทรลเลอรเบ้อื งตน 26 ตารางที่ 1.1 เปรยี บเทยี บคณุ สมบตั ขิ องบอรด Arduino จากตารางแสดงใหเห็นวาบอรด Arduino Uno R3 เปนรุนท่ีไดรับความนิยมมากท่ีสุด ทําให Library และบอรด Shield สวนใหญจะรองรับกับบอรดรุน Arduino Uno R3 หนวยที่ 1 ความรเู กี่ยวกับไมโครคอนโทรลเลอรเ บ้ืองตน
เอกสารประกอบการสอนวิชาไมโครคอนโทรลเลอรเ บื้องตน 27 สรปุ เน้อื หาสาระสาํ คญั Arduino เปนภาษาอติ าลี โดยเปนช่ือโครงการพัฒนาไมโครคอนโทรลเลอรตระกูล AVR ในรูปแบบ Open Source คือวิธีการในการออกแบบ พัฒนา และแจกจายสําหรับตนฉบับของสินคาหรือความรู โดยเฉพาะซอฟตแ วร โดยโอเพนซอรซ ถูกพิจารณาวาเปนทั้งรูปแบบหน่งึ ในการออกแบบ โดยโอเพนซอรซเปด โอกาสใหบุคคลอ่ืนนําเอาระบบนั้นไปพัฒนาไดตอไป โดยพัฒนามาจากโครงการ Open Source เดิมของ AVR ท่ีช่ือ Wiring โดยโครงการ Wiring ใชไมโครคอนโทรลเลอร AVR เบอร ATmega128 ซ่ึงมีขอจํากัด หลายดา น เชน เปนชิปทมี่ ตี ัวถังแบบ SMD ทําใหนํามาใชงานยากเพราะตัวไมโครคอนโทรลเลอรมีขนาดเล็ก เกนิ ไปทําใหไมส ะดวกในการตอใชงานจริง มีขาอินพุทและเอาทพุทจํานวนมากเกินไป ตัวบอรดมีขนาดใหญ เกินไป ไมเหมาะสมสําหรับผูท่ีเร่ิมตนเรียนรูดานไมโครคอนโทรลเลอร ดวยเหตุผลขางตนจึงทําใหไมไดรับ ความนยิ ม ระยะตอ มาทมี งาน Arduino จึงไดนาํ โครงการ Wiring มาพัฒนาใหมโ ดยใชไมโครคอนโทรลเลอร AVR ขนาดเลก็ คอื Mega8 และ Mega168 ทําใหไ ดรบั ความนยิ มจนถึงปจ จุบันนี้ หนว ยที่ 1 ความรเู กี่ยวกับไมโครคอนโทรลเลอรเบอื้ งตน
Search
Read the Text Version
- 1 - 23
Pages: