หน่วยที่ 1...

32
หน่วยที่ 1 ความรู้เกี่ยวกับไมโครคอนโทรลเลอร์เบื้องต้น เรียบเรียงโดยครูทันพงษ์ ภู่รักษ์ 1 เอกสารประกอบการสอนวิชาไมโครคอนโทรลเลอร์เบื้องต้น หน่วยที1 ความรู้เกี่ยวกับไมโครคอนโทรลเลอร์เบื้องต้น สาระสาคัญ ไมโครคอนโทรลเลอร์ (อังกฤษ: Microcontroller มักย่อว่า μC, uC หรือ MCU) คือ อุปกรณ์ควบคุม ขนาดเล็ก ซึ่งบรรจุความสามารถที่คล้ายคลึงกับระบบคอมพิวเตอร์ โดยในไมโครคอนโทรลเลอร์ได้รวมเอา ซีพียู , หน่วยความจา และพอร์ต ซึ่งเป็นส่วนประกอบหลักสาคัญของระบบคอมพิวเตอร์เข้าไว้ด้วยกัน โดยทา การบรรจุเข้าไว้ในตัวถังเดียวกัน เนื้อหาสาระการเรียนรู1.1 ความรู้เกี่ยวกับไมโครคอนโทรลเลอร์เบื้องต้น 1.2 หน้าที่ส่วนต่างๆ ของไมโครคอนโทรลเลอร์ 1.3 ไมโครคอนโทรลเลอร์ AVR 1.4 บอร์ดไมโครคอนโทรลเลอร์ Arduino จุดประสงค์การเรียนรูจุดประสงค์ทั่วไป 1. เพื่อให้มีความรู้ความเข้าใจเกี่ยวกับส่วนประกอบและโครงสร้างของไมโครคอนโทรลเลอร์ Arduino 2. เพื่อให้สามารถนาความรู้ไปประยุกต์ในการเลือกใช้ตระกูลและภาษาของไมโครคอนโทรลเลอร์ 3. เพื่อให้ตระหนักถึงความสาคัญของโครงสร้างและส่วนประกอบของไมโครคอนโทรลเลอร์ Arduino

Upload: ngophuc

Post on 29-Aug-2019

212 views

Category:

Documents


0 download

TRANSCRIPT

หนวยท 1 ความรเกยวกบไมโครคอนโทรลเลอรเบองตน เรยบเรยงโดยครทนพงษ ภรกษ

1 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน

หนวยท 1 ความรเกยวกบไมโครคอนโทรลเลอรเบองตน

สาระส าคญ

ไมโครคอนโทรลเลอร (องกฤษ: Microcontroller มกยอวา µC, uC หรอ MCU) คอ อปกรณควบคมขนาดเลก ซงบรรจความสามารถทคลายคลงกบระบบคอมพวเตอร โดยในไมโครคอนโทรลเลอรไดรวมเอาซพย, หนวยความจ า และพอรต ซงเปนสวนประกอบหลกส าคญของระบบคอมพวเตอรเขาไวดวยกน โดยท าการบรรจเขาไวในตวถงเดยวกน

เนอหาสาระการเรยนร 1.1 ความรเกยวกบไมโครคอนโทรลเลอรเบองตน 1.2 หนาทสวนตางๆ ของไมโครคอนโทรลเลอร 1.3 ไมโครคอนโทรลเลอร AVR 1.4 บอรดไมโครคอนโทรลเลอร Arduino

จดประสงคการเรยนร

จดประสงคทวไป 1. เพอใหมความรความเขาใจเกยวกบสวนประกอบและโครงสรางของไมโครคอนโทรลเลอร Arduino 2. เพอใหสามารถน าความรไปประยกตในการเลอกใชตระกลและภาษาของไมโครคอนโทรลเลอร 3. เพอใหตระหนกถงความส าคญของโครงสรางและ สวนประกอบของไมโครคอนโทรลเลอร Arduino

หนวยท 1 ความรเกยวกบไมโครคอนโทรลเลอรเบองตน เรยบเรยงโดยครทนพงษ ภรกษ

2 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน

จดประสงคเชงพฤตกรรม

1. อธบายความรเกยวกบไมโครคอนโทรลเลอรเบองตนได 2. จ าแนกตระกลและหนาทสวนตางๆของไมโครคอนโทรลเลอรได 3. บอกสวนประกอบของไมโครคอนโทรลเลอร AVR ได 4. อธบายโครงสรางภายในไมโครคอนโทรลเลอร AVR ได 5. บอกสวนประกอบและโครงสรางภายในของไมโครคอนโทรลเลอร Arduino ได

หนวยท 1 ความรเกยวกบไมโครคอนโทรลเลอรเบองตน เรยบเรยงโดยครทนพงษ ภรกษ

3 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน

************************************************************************************

เรอง ความรเกยวกบไมโครคอนโทรลเลอรเบองตน ใชเวลา 20 นาท วชา ไมโครคอนโทรลเลอรเบองตน รหสวชา (2127-2107 ) ระดบชน ประกาศนยบตรวชาชพ (ปวช.) สาขาวชา เมคคาทรอนกส ค าชแจง 1. แบบทดสอบมทงหมด 20 ขอ (20 คะแนน) 2. ใหผเรยนเลอกค าตอบทถกทสดแลวกาเครองหมายกากบาท () ลงในกระดาษค าตอบ 1. ไมโครคอนโทรลเลอร (Microcontroller ) มความหมายตรงกบขอใด

2. ขอใดกลาวผด ก. รอมมคณสมบต อานได เขยนไมได ข. หนวยประมวลผลกลาง ปจจบนอยในรปของไอซทเรยกอกไมโครโปรเซสเซอร ค. อปกรณสวตช ถอวาเปนอปกรณอนพต ง. แรมเรยกอกอยางหนงวาหนวยความจ าโปรแกรม

3. ไมโครคอนโทรลเลอรขนาด 8 บต ตระกลใดทมการท างานเปนแบบ RISC ก. ตระกล AVR ข. ตระกล MSC-51 ค. ตระกล PICTURE

ง. ตระกล BASIC STOP 4. ไมโครคอนโทรลเลอรเบอร ATmega48 พอรตอนพตเอาตพตใหใชงานจ านวน ก. 33 ขา ข. 23 ขา ค. 13 ขา ง. 3 ขา

ก. ระบบโทรทศนทมาประยกตใชงานไดหลากหลาย ข. ระบบโทรศพททมาประยกตใชงานไดหลากหลาย ค. ระบบคอมพวเตอรขนาดเลกทมาประยกตใชงานไดหลากหลาย

ง. ระบบเครองเสยงทมาประยกตใชงานไดหลากหลาย

แบบทดสอบกอนเรยน หนวยท 1 เรอง ความรเกยวกบไมโครคอนโทรลเลอรเบองตน

หนวยท 1 ความรเกยวกบไมโครคอนโทรลเลอรเบองตน เรยบเรยงโดยครทนพงษ ภรกษ

4 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน

5. ขอใดไมใชคณสมบตทถกตองของ ATmega48 ก. มหนวยความจ าขอมล (RAM) ข. มหนวยความจ าส าหรบเกบโปรแกรมแบบแฟลช (ROM) ค. มพอรตอนพตเอาตพตใหใชงานจ านวน 23 ขา ง. ม Timer/Counters ขนาด 8 บต 5 ตว และ 16 บต 10 ตว

6. ATmega48 มหนวยความจ าขนาดเทาไร ก. รอมขนาด 8 Kbyte สามารถเขยน-ลบไดประมาณ 10,000 ครง ข. รอมขนาด 2 Kbyte สามารถเขยน-ลบไดประมาณ 10,000 ครง ค. รอมขนาด 4 Kbyte สามารถเขยน-ลบไดประมาณ 10,000 ครง ง. รอมขนาด 4 Kbyte สามารถเขยน-ลบไดประมาณ 100,000 ครง

7. ATmega48 มโมดลสรางสญญาณ Pulse width Modulator (PWM) ทงหมดกแหลง ก. 4 ชด 12 ชองสญญาณ ข. 4 ชด 8 ชองสญญาณ ค. 3 ชด 12 ชองสญญาณ ง. 3 ชด 6 ชองสญญาณ

8. ARDUINO UNO R3 ขาใดมโครงสรางภายในรบสญญาณ I2C (SCA) ก. D0 ข. C7 ค. B5 ง. A5

9. ขา Digital 11 ของ ARDUINO UNO R3 นอกจากจะเปนพอรตดจตอลแลวยงมหนาทเปนขา ก. Capture/Compare/PWM (Pulse Width Modulation) ข. Parallel Mode Operation ค. SPI (SS) ง. In-Circuit Serial Programming

10. ARDUINO UNO R3 พอรตใดทเหมาะส าหรบตอใชงานการสอสารแบบอนกรม ก. PORTB ข. Analog 4 ค. PORTD

ง. Digital 0

หนวยท 1 ความรเกยวกบไมโครคอนโทรลเลอรเบองตน เรยบเรยงโดยครทนพงษ ภรกษ

5 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน

1.1 ความรเกยวกบไมโครคอนโทรลเลอรเบองตน ไมโครคอนโทรลเลอร (องกฤษ: Microcontroller มกยอวา µC, uC หรอ MCU) คอ อปกรณควบคมขนาดเลก ซงบรรจความสามารถทคลายคลงกบระบบคอมพวเตอร โดยในไมโครคอนโทรลเลอรไดรวมเอาซพย หนวยความจ า และพอรต ซงเปนสวนประกอบหลกส าคญของระบบคอมพวเตอรเขาไวดวยกน โดยท าการบรรจเขาไวในตวถงเดยวกน ไมโครคอนโทรลเลอรถาแปลความหมายแบบตรงตวกคอ ระบบคอนโทรลขนาดเลกเรยกอกอยางหนงคอเปนระบบคอมพวเตอรขนาดเลก ทสามารถน ามาประยกตใชงานไดหลากหลาย โดยผานการออกแบบวงจรใหเหมาะกบงานตางๆ และยงสามารถโปรแกรมค าสงเพอควบคมขา Input / Output เพอสงงานใหไปควบคมอปกรณตางๆ ไดอกดวย ซงกนบวาเปนระบบทสามารถน ามาประยคใชงานไดหลากหลาย ทงทางดาน Digital และ Analog ยกตวอยางเชน ระบบสญญาณตอบรบอตโนมต, ระบบบตรคว, ระบบตอกบตรพนกงาน และอนๆ ยงระบบไมโครคอนโทรลเลอร ในยคปจจบนนนสามารถท าการเชอตอกบระบบ Network ของคอมพวเตอรทวไปไดอกดวย ดงนนการสงงานจงไมใชแคหนาแผงวงจร แตอาจจะเปนการสงงานอยคนละซกโลกผานเครอขายอนเตอรเนตกได

รปท 1.1 โครงสรางโดยทวไปของไมโครคอนโทรลเลอร (ทมา www.Chokelive.com/blog/2013/07/Micro-Controller-Application.html)

หนวยท 1 ความรเกยวกบไมโครคอนโทรลเลอรเบองตน

หนวยท 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)

มหนวยความจ าส าหรบเกบโปรแกรมแบบแฟลช (ROM) ขนาด 4 กโลไบต สามารถเขยน-ลบได ประมาณ 10,000 ครง

มหนวยความจ าขอมล (RAM) ขนาด 512 ไบต

มหนวยความจ าขอมลออพรอม (EEPROM) ขนาด 256 ไบต สามรถเขยน-ลบไดประมาณ 100,000 ครง

มพอรตอนพตเอาตพตใหใชงานจ านวน 23 ขา (PB0 ถง PB7, PC0 ถง PC6, PD0 ถง PD7)

มความเรวในการประมวนผลสงสด 20 ลานค าสงตอ 1 วนาททความถ 20 MHz

มโมดลแปลงสญญาณแอนะลอกเปนดจตอล (Analog-to-Digital Converter) ขนาด 10 บต จ านวน 6 ชอง ส าหรบตวถงแบบ PDIP และ 8 ชองส าหรบตวถงแบบ TQFP และ MLF

มโมดลสรางสญญาณ Pulse Width Modulator (PWM) 3 ชด 6 ชองสญญาณ

ม 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

ใชแรงดนไฟฟา 5 V

รองรบการจายแรงดนไฟฟา (ทแนะน า) 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

ใชแรงดนไฟฟา 5 V

รองรบการจายแรงดนไฟฟา (ทแนะน า) 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

ใชแรงดนไฟฟา 5 V

รองรบการจายแรงดนไฟฟา (ทแนะน า) 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

ใชแรงดนไฟฟา 5 V

รองรบการจายแรงดนไฟฟา (ทแนะน า) 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 ความรเกยวกบไมโครคอนโทรลเลอรเบองตน เรยบเรยงโดยครทนพงษ ภรกษ

28 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน

เรอง ความรเกยวกบไมโครคอนโทรลเลอรเบองตน ใชเวลา 20 นาท ********************************************************************************************** ค าชแจง 1. แบบฝกหดมทงหมด 2 ตอน ประกอบดวยตอนท 1 และตอนท 2 (20 คะแนน) 2. แบบฝกหดตอนท 1 เปนค าถามแบบถก-ผด มทงหมด 20 ขอ (10 คะแนน) 3. แบบฝกหดตอนท 2 เปนค าถามแบบปรนย มทงหมด 10 ขอ (10 คะแนน)

ค าชแจง ใหผเรยนกาเครองหมายถก ในขอทคดวาถก และกาเครองหมายผด ในขอทคดวาผด 1. สวนประกอบของไมโครคอนโทรลเลอรคอ หนวยอนพต/เอาตพต หนวยประมวลผลกลาง หนวยความจ า และพอรต 2. Arduino เปนภาษาเยอรมนน 3. ขาพอรตของไมโครคอนโทรลเลอร คอขาทตอกบอปกรณอนพต/เอาตพต 4. ไมโครคอนโทรลเลอรตระกล Arduino มการท างานแบบ RISC 5. Arduino Ethernet With PoE Module เปนบอรด Arduino ทใช MCU เบอรเดยวกบ Arduino Uno SMD 6. ไมโครคอนโทรลเลอร มกยอวา µC, uC หรอ MCU 7. ปจจบนบรษท Microchip Technology เปนผสรางไมโครคอนโทรลเลอรตระกล Arduino 8. Arduino ไมโครคอนโทรลเลอรบอรดแบบส าเรจรป 9. Arduino Uno R3 เปนบอรด Arduino ทไดรบความนยมมากทสด 10. Arduino Pro Mini 328 3.3 V เปนบอรด Arduino ขนาดเลก 11. Arduino Mega 2560 R3 เปนบอรด Arduino ทออกแบบมาส าหรบงานทตองใช I/O มากกวา Arduino Uno R3 12. Arduino Mega ADK เปนบอรดทออกแบบมาใหบอรด Mega 2560 R3 สามารถตดตอกบ อปกรณ Android Device ผานพอรต USB Host ของบอรดได 13. ไมโครคอนโทรลเลอรทนยมใชกน เรมตงแตตวแรกทเปนลกษณะของ CPU ไมถงขนเรยกวา ไมโครคอนโทรลเลอรกคอ ตระกล Z80 14. AVR เปน ไมโครคอนโทรลเลอรรนหลงๆ ทมการพฒนาตอมาจาก MCS-51 โดยบรษท ATMEL

แบบฝกหดหนวยท 1

แบบฝกหดตอนท 1

หนวยท 1 ความรเกยวกบไมโครคอนโทรลเลอรเบองตน เรยบเรยงโดยครทนพงษ ภรกษ

29 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน

15. Raspberry Pi เปน Board ใช Controller ตระกล ARM 16. Arduino Due เปนบอรด Arduino ทเปลยนชป MCU ใหม ซงจากเดมเปนตระกล AVR เปลยนเปนเบอร AT91SAM3X8E (ตระกล ARM Cortex-M3) 17. โมดลมาตอเพมของ Arduino จะเรยกวาเปน Shield 18. หนวยความจ าสามารถแบงออกเปน 2 สวน คอ หนวยความจ าโปรแกรม และหนวยความจ า ขอมล 19. ตระกล MCS-51 เปนตระกลทเกดมากอน Z80 20. AVR มคณสมบตหลกทคอสามารถ Interface ผาน USB ไดโดยตรง

ค าชแจง ใหผเรยนเลอกค าตอบทถกทสดแลวกาเครองหมายกากบาท () ใหครบทกขอ 1. ขอใดเปรยบเสมอนหวใจส าคญของไมโครคอนโทรลเลอร ก. หนวยประมวลผลกลาง ข. หนวยความจ า ค. หนวยอนพต/เอาตพต ง. พอรต 2. สมองกลฝงตว หมายถงอะไร ก. Microprocessor ข. ไมโครคอนโทรลเลอร ค. Microcomputer ง. Embedded System 3. RISC คออะไร ก. มความเรวในการประมวลผล 1 ค าสง ตอ 1 สญญาณนาฬกา ข. มความเรวในการประมวลผล 2 ค าสง ตอ 1 สญญาณนาฬกา ค. มความเรวในการประมวลผล 3 ค าสง ตอ 1 สญญาณนาฬกา ง. มความเรวในการประมวลผล 4 ค าสง ตอ 1 สญญาณนาฬกา 4. ไมโครคอนโทรลเลอรตระกลใด ทออกแบบมาให Arduino โดยเฉพาะ ก. ตระกล MCS-51 ข. ตระกล AVR ค. ตระกล BASIC STAMP ง. ตระกล PIC

แบบฝกหดตอนท 2

หนวยท 1 ความรเกยวกบไมโครคอนโทรลเลอรเบองตน เรยบเรยงโดยครทนพงษ ภรกษ

30 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน

5. หนวยความจ าโปรแกรมแบบใด เหมาะส าหรบงานตนแบบหรอใชในการศกษาเรยนร ก. ROM ข. PROM ค. EPROM ง. EEPROM 6. การเขยนโปรแกรมไมโครคอนโทรลเลอรภาษาใด ถอวาเปนภาษาทเขยนโปรแกรมยากทสด ก. จาวา ข. ภาษาแอสเซมบล ค. ภาษาเบสก ง. ภาษาปาสคาล 7. Arduino Uno R3 มพอรตดจตอลทตออปกรณอนพต/เอาตพตทงหมดกขา ก. 7 ขา ข. 14 ขา ค. 20 ขา ง. 37 ขา 8. Interrupt ของ Arduino Uno R3 อยทพอรตใด ก. Analog 1,2 ข. Digital 2,3 ค. Analog 3,4 ง. Analog 4,5 9. Arduino Uno R3 พอรตใดทรบสญญาณ Analog ได ก. PORTA ข. PORTB ค. PORTD และ PORTE ง. PORTC และ PORTD 10. การออกแบบวงจร Arduino Uno R3 ขอใดกลาวผด ก. ใชไมโครคอนโทรลเลอร Atmega328 ข. มพอรตแบบ Analog และ Digital ค. พอรต A4 และ A5 รบสญญาณ I2C (SDA,SCA) ง. มพอรตสอสารแบบ SPI (D10-12)

หนวยท 1 ความรเกยวกบไมโครคอนโทรลเลอรเบองตน เรยบเรยงโดยครทนพงษ ภรกษ

31 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน

**********************************************************************************

เรอง ความรเกยวกบไมโครคอนโทรลเลอรเบองตน ใชเวลา 20 นาท วชา ไมโครคอนโทรลเลอรเบองตน รห ส ว ช า (2 1 2 7 -21 0 7 ) ระดบชน ประกาศนยบตรวชาชพ (ปวช.) สาขาวชา เมคคาทรอนกส ค าชแจง 1. แบบทดสอบมทงหมด 20 ขอ (20 คะแนน) 2. ใหผเรยนเลอกค าตอบทถกทสดแลวกาเครองหมายกากบาท () ลงในกระดาษค าตอบ 1. ไมโครคอนโทรลเลอร (Microcontroller ) มความหมายตรงกบขอใด

2. ขอใดกลาวผด ก. หนวยประมวลผลกลาง ปจจบนอยในรปของไอซทเรยกอกไมโครโปรเซสเซอร ข. รอมมคณสมบต อานได เขยนไมได ค. แรมเรยกอกอยางหนงวาหนวยความจ าโปรแกรม ง. อปกรณสวตช ถอวาเปนอปกรณอนพต

3. ไมโครคอนโทรลเลอรขนาด 8 บต ตระกลใดทมการท างานเปนแบบ RISC ก. ตระกล MSC-51 ข. ตระกล AVR ค. ตระกล BASIC STOP

ง. ตระกล PICTURE 4. ไมโครคอนโทรลเลอร เบอร ATmega48 พอรตอนพตเอาตพตใหใชงานจ านวน ก. 3 ขา ข. 13 ขา ค. 23 ขา ง. 33 ขา

ก. ระบบโทรศพททมา www.ประยกตใชงานไดหลากหลาย ข. ระบบโทรทศนทมา www.ประยกตใชงานไดหลากหลาย ค. ระบบเครองเสยงทมา www.ประยกตใชงานไดหลากหลาย

ง. ระบบคอมพวเตอรขนาดเลกทมา www.ประยกตใชงานไดหลากหลาย

แบบทดสอบหลงเรยน หนวยท 1 เรอง ความรเกยวกบไมโครคอนโทรลเลอรเบองตน

หนวยท 1 ความรเกยวกบไมโครคอนโทรลเลอรเบองตน เรยบเรยงโดยครทนพงษ ภรกษ

32 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน

5. ขอใดไมใชคณสมบตทถกตองของ ATmega48 ก. มหนวยความจ าส าหรบเกบโปรแกรมแบบแฟลช (ROM) ข. มหนวยความจ าขอมล (RAM) ค. ม Timer/Counters ขนาด 8 บต 5 ตว และ 16 บต 10 ตว ง. มพอรตอนพตเอาตพตใหใชงานจ านวน 23 ขา

6. ATmega48 มหนวยความจ าขนาดเทาไร ก. รอมขนาด 2 Kbyte สามารถเขยน-ลบไดประมาณ 10,000 ครง ข. รอมขนาด 4 Kbyte สามารถเขยน-ลบไดประมาณ 10,000 ครง ค. รอมขนาด 4 Kbyte สามารถเขยน-ลบไดประมาณ 100,000 ครง ง. รอมขนาด 8 Kbyte สามารถเขยน-ลบไดประมาณ 10,000 ครง

7. ATmega48 มโมดลสรางสญญาณ Pulse width Modulator (PWM) ทงหมดกแหลง ก. 3 ชด 6 ชองสญญาณ ข. 3 ชด 12 ชองสญญาณ ค. 4 ชด 8 ชองสญญาณ ง. 4 ชด 12 ชองสญญาณ

8. Arduino UNO R3 ขาใดมโครงสรางภายในรบสญญาณ I2C (SCA) ก. A5 ข. B5 ค. C7 ง. D0

9. ขา Digital 11 ของ Arduino UNO R3 นอกจากจะเปนพอรตดจตอลแลวยงมหนาทเปนขา ก. Parallel Mode Operation ข. Capture/Compare/PWM (Pulse Width Modulation) ค. In-Circuit Serial Programming ง. SPI (SS)

10. Arduino UNO R3 พอรตใดทเหมาะส าหรบตอใชงานการสอสารแบบอนกรม ก. Analog 4 ข. PORTB ค. Digital 0

ง. PORTD