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 Unit_1_Basic Microcontroler

Unit_1_Basic Microcontroler

Published by เทอดศักดิ์ เงินมูล, 2021-09-11 08:19:27

Description: Unit_1_Basic Microcontroler

Search

Read the Text Version

เอกสารประกอบการสอนวชิ าไมโครคอนโทรลเลอรเบอื้ งตน 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 ความรเู กี่ยวกับไมโครคอนโทรลเลอรเบอื้ งตน


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