วันพฤหัสบดีที่ 28 มิถุนายน พ.ศ. 2561

โครงสร้างไมโครคอนโทรลเลอร์ ตระกูล PIC

โครงสร้างไมโครคอนโทรลเลอร์ ตระกูล PIC

โครงสร้างไมโครคอนโทรลเลอร์
โครงสร้างไมโครคอนโทรลเลอร์ในตระกูล PIC นั้นมีหลายลักษณะ มีทั้งไอซีแบบ 8 ขา(DIP 8 Pins), 14 ขา(DIP 14 Pins), 18 ขา(DIP 18 Pins), 28 ขา(DIP 28 Pins), 40 ขา(DIP 40 Pins) เป็นต้น มีให้ลือกมากมายว่า จะใช้ขนาดหน่วยความจำโปรแกรมขนาดเท่าใดให้เหมาะสมกับงานที่ออกแบบ


                                               รูปที่1.โครงสร้างของไมโครคอนโทรลเลอร์

หน่วยประมวลผลกลาง(Central Processing Unit : CPU) หน่วยประมวลผลกลางจะประกอบไปด้วยวงจรต่างๆหลากหลาย ที่จำเป็นสำหรับประมวลผล และการคำนวณ เช่น วงจรถอดรหัสคำสั่ง, วงจรควบคุมสัญญาณนาฬิกา, วงจรควบคุมการทำงาน, วงจรตั้งเวลา และรวมทั้งหน่วยคำนวณทางลอจิกและคณิตศาตร์ (ALU) เป็นต้น
หน่วยความจำ(Memory Unit)
ในการเขียนโปรแกรมด้วยภาษาซีให้กับไมโครคอนโทรลเลอร์ต้องคำนึงถึงขนาดของหน่วยความจำของไมโครคอนโทรลเลอร์ด้วย เพราะหากเขียนให้โปรแกรมที่มีขนาดความจุมากกว่าขนาดของหน่วยความจำโปรแกรมไมโครคอนโทรลเลอร์ ก็ไม่สามารถบรรจุโปรแกรมลงได้ครบสมบูรณ์ ทั้งนี้ต้องระมัดระวังในการใช้หน่วยความจำแบบอื่นในไมโครคอนโทรลเลอร์ด้วย
ในไมโครคอนโทรลเลอร์ สามารถแบ่งหน่วยความจำได้ 3 แบบคือ
1.หน่วยความจำแบบแฟลช(Flash Program Memory) โดยปกติไมโครคอนโทรลเลอร์หลายๆยี่ห้อถูกออกแบบให้มีคุณสมบัติในการโปรแกรมและการลบโปรแกรมได้มากกว่า 100,000 ครั้งและการทำงานมีความเร็วสูงเหมาะใช้ในการพัฒนางานที่มีขนาดใหญ่ หน่วยความจำนี้มีขนาด1KB - 32KB
2.หน่วยความจำข้อมูล(Data Memory RAM) หนวยความจำนี้เป็นหน่วยความจำชั่วคราว ใช้เก็บข้อมูลขณะประมวลผล เมื่อหยุดจ่ายไฟเลี้ยง ข้อมูลก็หายไป มีความจุตั้งแต่ 64-1536 Bytes
3.หน่วยความจำข้อมูลอีอีพรอม(EEPROM Data Memory) เป็นหน่วยความจำที่สามารถเขียนและและลบโปรแกรมได้ด้วยกระแสไฟฟ้าในหน่วยความจำรอม มีความจุขนาดถึง 256 Bytes
พอร์ตอินพุตและเอาท์พุต(I/O Port) ไมโครคอนโทรลเลอร์ทุกตัวต้องมีขาต่อใช้งาน และสามารถเป็นได้ทั้งขาสัญญาณออกและขาสัญญาณเข้า จึงจะสามารถติดต่อกับอุปกรณ์ภายนอก หรือนำไปใช้งานอื่นได้ เช่น จอแสดงผล, ปุ่มกด, เซ็นเซอร์ เป็นต้น ในการใช้งานจะแบ่งพอร์ตออกเป็นพอร์ตละกี่บิตก็แล้วแต่ ส่วนใหญ่ตามมาตรฐานพอร์ตหนึ่งจะมี 8 บิต(ขาต่อใช้งาน 8 ขา) ส่วนจะมีกี่พอร์ตก็ตามแต่เบอร์ใช้งานที่ถูกออกแบบมา เช่น ไมโครคอนโทรลเลอร์เบอร์ PIC16F877 ก็จะมีพอร์ตใช้งานอยู่ 5 พอร์ต คือ
1.PORTA พอร์ตA มี 6 pins
2.PORTB พอร์ตB มี 8 pins
3.PORTC พอร์ตC มี 8 pins
4.PORTD พอร์ตD มี 8 pins
5.PORTE พอร์ตE มี 3 pins


สำหรับหน้าที่การใช้งานของขา อินพุต/เอาท์พุตในพอร์ตต่างๆนี้

ขอยกตัวอย่างจากไมโครคอนโทรลเลอร์เบอร์ PIC16F877 เนื่องจากเบอร์อื่นๆก็มีขาใช้งานที่คล้ายคลึงกัน เพียงแต่จำนวนและขนาดหรือสเป็คอาจแตกต่างกันเท่านั้นเอง

พอร์ตA(PORTA) มีจำนวน 6 ขา คือ RA0-RA5 เป็นขาสัญญาณ I/O แบบดิจิตอลและขาต่อสัญญาณอินพุตอะนาล็อกได้ด้วย ซึ่งก็คือ เป็นขาต่อสัญญาณ ADC(Analog to Digital Converter ) เข้านั่นเอง
RA0/AN0 - ขาสัญญาณติดต่อ I/O Port
- ขาสัญญาณอินพุตสำหรับ ADC ช่อง0
RA1/AN1 - ขาสัญญาณติดต่อ I/O Port
- ขาสัญญาณอินพุตสำหรับ ADC ช่อง1
RA2/AN2 - ขาสัญญาณติดต่อ I/O Port
- ขาสัญญาณอินพุตสำหรับ ADC ช่อง2
RA3/AN3 - ขาสัญญาณติดต่อ I/O Port
- ขาสัญญาณอินพุตสำหรับ ADC ช่อง3
RA4/TOCK1/C1OUT - ขาสัญญาณนาฬิกาอินพุต Timer0
- ขาสัญญาณเอาท์พุตสำหรับเปรียบเทียบ ADC ช่อง1
RA5/AN4/SS - ขาสัญญาณอินพุตสำหรับ ADC ช่อง4
- ขาสัญญาณ slave select สื่อสาร Serial Port แบบ Synchronize
- ขาสัญญาณเอาท์พุตสำหรับเปรียบเทียบ ADC ช่อง2
พอร์ตB(PORTB)มีจำนวน 8 ขา คือ RB0-RB7 เป็นขาสัญญาณ I/O แบบดิจิตอลที่มีวงจรพูลอัพ(R-Pull-up) บางขาสามารถใช้เป็นขาอินพุตในการ Interrupt จากภายนอกได้ด้วย
RB0/INT - ขาสัญญาณติดต่อ I/O Port
- ขาสัญญาณอินพุตสำหรับรับสัญญาณ Interrupt จากภายนอก
RB1 - ขาสัญญาณติดต่อ I/O Port
RB2 - ขาสัญญาณติดต่อ I/O Port
RB3/LVP - ขาสัญญาณติดต่อ I/O Port
- ขาสัญญาณอินพุตรับแรงดันโปรแกรมต่ำ(5V) ถ้ามีการ Enable
RB4-RB7 - ขาสัญญาณติดต่อ I/O Port
- ภายในมีวงจรพูลอัพและ Interrupt Logic หากมีการ Enable จะสามารถอินเตอร์รัพท์แบบนี้ได้
พอร์ตC(PORTC)มีจำนวน 8 ขา คือ RC0-RC7 เป็นขาสัญญาณ I/O แบบดิจิตอล และ timer, I2C, PWM
RC0/T1OSO/TICK1 - ขาสัญญาณติดต่อ I/O Port
- ขาสัญญาณเอาท์พุตวงจรออสซิลเลเตอร์ของ Timer1
- ขาสัญญาณอินพุตของสัญญาณ Clock Timer1
RC1/T1OSI/CCP2 - ขาสัญญาณติดต่อ I/O Port
- ขาสัญญาณอินพุตวงจรออสซิลเลเตอร์ของ Timer1
- ขาสัญญาณเอาท์พุตวงจร PWM
- ขาสัญญาณเอาท์พุตวงจรเปรียบเทียบสัญญาณโมดูล CCP2
RC2/CCP1 - ขาสัญญาณติดต่อ I/O Port
- ขาสัญญาณเอาท์พุตวงจร PWM
- ขาสัญญาณเอาท์พุตวงจรเปรียบเทียบสัญญาณโมดูล CCP1
RC3/SCK/SCL - ขาสัญญาณติดต่อ I/O Port
- ขาสัญญาณ Clock ของวงจร SPI(SCK)
- ขาสัญญาณ Clock ของวงจร I2C(SCL)
RC4/SDI/SDA - ขาสัญญาณติดต่อ I/O Port
- ขาสัญญาณอินพุต Serial Data ของระบบ SPI(SDI)
- ขาสัญญาณ Data ของวงจร I2C(SDA)
RC5/SDO - ขาสัญญาณติดต่อ I/O Port
- ขาสัญญาณเอาท์พุต Serial Data ของระบบ SPI(SDO)
RC6/TxD/CK - ขาสัญญาณติดต่อ I/O Port
- ขาสัญญาณส่ง Data/Serial Port(TxD)
- ขาสัญญาณ Clock/Synchronize(CK)
RC7/RxD/DT - ขาสัญญาณติดต่อ I/O Port
- ขาสัญญาณส่ง Data/Serial Port(RxD)
- ขาสัญญาณ Data/Synchronize(DT)

พอร์ตD(PORTD)มีจำนวน 8 ขา คือ RD0-RD7 เป็นขาสัญญาณ I/O แบบดิจิตอล และยังทำหน้าที่ขยายพอร์ตแบบขนานด้วย(PSP:Parallel Slave Port)
RD0/PSP0 - ขาสัญญาณติดต่อ I/O Port
- ขาขยายสัญญาณพอร์ตแบบขนานบิต 0
RD1/PSP1 - ขาสัญญาณติดต่อ I/O Port
- ขาขยายสัญญาณพอร์ตแบบขนานบิต 1
RD2/PSP2 - ขาสัญญาณติดต่อ I/O Port
- ขาขยายสัญญาณพอร์ตแบบขนานบิต 2
RD3/PSP3 - ขาสัญญาณติดต่อ I/O Port
- ขาขยายสัญญาณพอร์ตแบบขนานบิต 3
RD4/PSP4 - ขาสัญญาณติดต่อ I/O Port
- ขาขยายสัญญาณพอร์ตแบบขนานบิต 4
RD5/PSP5 - ขาสัญญาณติดต่อ I/O Port
- ขาขยายสัญญาณพอร์ตแบบขนานบิต 5
RD6/PSP6 - ขาสัญญาณติดต่อ I/O Port
- ขาขยายสัญญาณพอร์ตแบบขนานบิต 6
RD7/PSP7 - ขาสัญญาณติดต่อ I/O Port
- ขาขยายสัญญาณพอร์ตแบบขนานบิต 7
พอร์ตE(PORTE)มีจำนวน 3 ขา คือ RE0-RE2 เป็นขาสัญญาณ I/O แบบดิจิตอลและขาอินพุตของสัญญาณ ADC(Analog to Digital Converter)ด้วย
RE0/AN5/RD - ขาสัญญาณติดต่อ I/O Port
- ขาขยายสัญญาณพอร์ตแบบขนานควบคุมการอ่าน(RD:Read)
- ขาสัญญาณอินพุต ADC ช่อง5
RE1/AN6/WR - ขาสัญญาณติดต่อ I/O Port
- ขาขยายสัญญาณพอร์ตแบบขนานควบคุมการเขียน(WR:Write)
- ขาสัญญาณอินพุต ADC ช่อง6
RE2/AN7/CS - ขาสัญญาณติดต่อ I/O Port
- ขาขยายสัญญาณพอร์ตแบบขนานควบคุมการเลือกอุปกรณ์(CS:Chip Select)
- ขาสัญญาณอินพุต ADC ช่อง7
***ในการใช้งานพอร์ตนั้นจะต้องกำหนดสถานะให้เป็น อินพุต/เอาท์พุต ที่รีจิสเตอร์ TRISTATE เสียก่อน***
ส่วนขาใช้งานที่เหลือ นอกจากพอร์ตใช้งานแล้ว ได้แก่
MCLR/VPP - ขาสัญญาณ Reset (Master Clear Input)
- ขารับแรงดันโปรแกรม(Programming Voltage)
OSC1/CLKIN - ขารับสัญญาณ clock / สำหรับต่อคริสตัล
OSC2/CLKOUT - ขารับสัญญาณ clock / สำหรับต่อคริสตัล
VDD - ขารับแรงดันไฟเลี้ยง +5V
VSS - ขาต่อกราวด์

โครงสร้างของบอร์ด Arduino Uno R3

1.โครงสร้างของบอร์ด Arduino Uno R3
             Arduino Uno เป็นบอร์ดไมโครคอนโทรลเลอร์ที่ใช้ ATmega328 (แผ่นข้อมูล) มีอินพุต / เอาต์พุต 14 อินพุต (6 สามารถใช้เป็นเอาท์พุทPWM), 6 อินพุตแบบอนาล็อกตัวเรโซเนเตอร์เซรามิก 16 MHz, การเชื่อมต่อ USB, แจ็คไฟส่วนหัว ICSP และปุ่มรีเซ็ต มันมีทุกอย่างที่จำเป็นในการสนับสนุนไมโครคอนโทรลเลอร์เพียงเชื่อมต่อกับคอมพิวเตอร์ด้วยสายเคเบิล USB หรือใช้อะแดปเตอร์หรือแบตเตอรี่ AC-to-DC เพื่อเริ่มต้นใช้งานUno แตกต่างจากบอร์ดก่อนหน้าทั้งหมดเนื่องจากไม่ได้ใช้ชิปควบคุม USB แบบอนุกรมของ FTDI แต่มีคุณลักษณะของ Atmega16U2 (Atmega8U2 ถึงเวอร์ชั่น R2) ซึ่งได้รับการตั้งโปรแกรมเป็นตัวแปลงสัญญาณแบบ USB-to-serialRevision 2 ของบอร์ด Uno มีตัวต้านทานดึงสายHWB 8U2 ไปยังพื้นทำให้ง่ายต่อการใส่ลงในโหมด DFURevision 3 ของบอร์ดมีคุณสมบัติใหม่ดังต่อไปนี้:1.0 pinout: เพิ่มหมุด SDA และ SCLที่อยู่ใกล้กับหมุด AREF และอีก 2 หมุดใหม่ที่วางอยู่ใกล้กับขา RESET IOREF ที่อนุญาตให้โล่ปรับให้เข้ากับแรงดันไฟฟ้าที่จัดหามาจากบอร์ด ในอนาคตโล่จะเข้ากันได้กับทั้งบอร์ดที่ใช้ AVR ซึ่งทำงานร่วมกับ 5และด้วย Arduino Due ที่ทำงานกับ 3.3ที่สองคือขาที่ไม่ได้เชื่อมต่อซึ่งสงวนไว้สำหรับวัตถุประสงค์ในอนาคตวงจร RESET ที่แข็งแกร่งขึ้นAtmega 16U2 เปลี่ยน 8U2"Uno" หมายถึงภาษาอิตาลีและมีชื่อว่า Arduino1.0 Uno และเวอร์ชัน 1.0 จะเป็นเวอร์ชันอ้างอิงของ Arduino ก้าวไปข้างหน้า Uno เป็นชุดบอร์ด USB Arduino รุ่นล่าสุดและเป็นโมเดลอ้างอิงสำหรับแพลตฟอร์ม Arduino; สำหรับการเปรียบเทียบกับรุ่นก่อนหน้าดูดัชนีของบอร์ด Arduino
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


การ Interrupts ของไมโครคอนโทรลเลอร์ คือ อะไร?

การ Interrupts ของไมโครคอนโทรลเลอร์ คือ อะไร?

การ interrupt ของไมโครคอนโทรลเลอร์ คือว่าจะต้องให้เวลาจริง (คาดเดาได้ แต่ไม่จำเป็นต้องเร็ว) การตอบสนองต่อเหตุการณ์ที่เกิดขึ้นในระบบฝังตัวที่พวกเขาจะควบคุม เมื่อมีเหตุการณ์บางอย่างเกิดขึ้นซึ่งเป็นระบบการขัดจังหวะสามารถส่งสัญญาณการประมวลผลในการระงับการประมวลผลลำดับการเรียนการสอนในปัจจุบันและที่จะเริ่มต้นประจำบริการขัดจังหวะ (ISR หรือ “ขัดขวางการจัดการ”) ซึ่งจะดำเนินการประมวลผลใด ๆ ต้องอยู่บนพื้นฐานของแหล่งที่มาของการขัดจังหวะก่อน กลับไปที่การเรียนการสอนตามลำดับเดิม แหล่งที่มาขัดจังหวะเป็นไปได้ขึ้นอยู่กับอุปกรณ์และมักจะมีเหตุการณ์เช่นล้นจับเวลาภายในเสร็จสิ้นการอนาล็อกเพื่อแปลงเป็นดิจิตอลมีการเปลี่ยนแปลงระดับตรรกะกับการป้อนข้อมูลเช่นจากปุ่มที่กำลังกดและข้อมูลที่ได้รับการเชื่อมโยงการสื่อสาร ที่ใช้พลังงานเป็นสิ่งสำคัญในอุปกรณ์ batteried ขัดจังหวะอาจตื่นไมโครคอนโทรลเลอร์จากการนอนหลับที่ใช้พลังงานต่ำที่โปรเซสเซอร์จะหยุดจนต้องทำบางสิ่งบางอย่างจากเหตุการณ์ที่ต่อพ่วง
ในปี 2002 ประมาณ 55% ของซีพียูทั้งหมดที่ขายในโลกที่มีไมโครคอนโทรลเลอร์ 8 บิตและไมโครโปรเซสเซอร์. มากกว่าสองพันล้าน 8-bit Microcontrollers ถูกขายในปี 1997 และเป็นไปตาม Semico กว่าสี่พันล้าน 8 บิตไมโครคอนโทรลเลอร์ถูกขายในปี 2006  เมื่อเร็ว ๆ นี้ได้อ้าง Semico ตลาด MCU ขยายตัว 36.5% ในปี 2010 และ 12% ในปี 2011  บ้านโดยทั่วไปในประเทศพัฒนาแล้วมีแนวโน้มที่จะมีเพียงสี่ไมโครวัตถุประสงค์ทั่วไป แต่รอบสามโหลไมโครคอนโทรลเลอร์ ทั่วไปรถยนต์ช่วงกลางเดือนมีเป็นจำนวนมากถึง 30 หรือมากกว่าไมโครคอนโทรลเลอร์ พวกเขายังสามารถพบได้ในอุปกรณ์ไฟฟ้าหลายอย่างเช่นเครื่องซักผ้า, เตาอบไมโครเวฟและโทรศัพท์
ในอดีตส่วน 8 บิตได้ครอบงำตลาด MCU16 บิตไมโครคอนโทรลเลอร์กลายเป็นหมวดหมู่ MCU ปริมาณที่ใหญ่ที่สุดในปี 2011 แซงอุปกรณ์ 8 บิตเป็นครั้งแรกในปีนั้น IC ข้อมูลเชิงลึกเชื่อว่าการแต่งหน้าของ ตลาด MCU จะได้รับการเปลี่ยนแปลงอย่างมีนัยสำคัญในอีกห้าปีที่ผ่านมากับอุปกรณ์ 32 บิตอย่างต่อเนื่องโลภหุ้นใหญ่ของยอดขายและปริมาณหน่วย โดยปี 2017 MCUs 32 บิตที่คาดว่าจะบัญชีสำหรับ 55% ของยอดขายไมโครคอนโทรลเลอร์ ในแง่ของปริมาณหน่วย MCUs 32 บิตที่คาดว่าการบัญชีสำหรับ 38% ของการจัดส่งไมโครคอนโทรลเลอร์ในปี 2017 ในขณะที่อุปกรณ์ 16 บิตจะเป็นตัวแทนของ 34% ของทั้งหมดและ ออกแบบ 8 บิตที่คาดว่าจะเป็น 28% ของหน่วยขายในปีนั้น ตลาด MCU แบบ 32 บิตที่คาดว่าจะเติบโตขึ้นอย่างรวดเร็วเนื่องจากความต้องการที่เพิ่มขึ้นสำหรับระดับที่สูงขึ้นของความแม่นยำในระบบฝังตัวในการประมวลผลและการเจริญเติบโตในการเชื่อมต่อการใช้อินเทอร์เน็ตที่ในอีกไม่กี่ปีข้างหน้าที่ซับซ้อน MCUs 32 บิตที่คาดว่าจะบัญชีกว่า 25% ของพลังการประมวลผลในยานพาหนะ
ในปี 2012 ยอดขายทั่วโลกของไมโครคอนโทรลเลอร์ 8 บิตประมาณ $ 4000000000 เพราะพวกเขามีประโยชน์เพื่อให้หลาย บริษัท จำเป็นต้องให้พวกเขาสามารถที่จะคืบหน้าในเทคโนโลยีที่ดีกว่า ในปี 2012, 4 บิตไมโครคอนโทรลเลอร์ยังเห็นยอดขายที่สำคัญ
ไมโครคอนโทรลเลอร์มักจะมีจากหลายหลายสิบอเนกประสงค์ขาอินพุต / เอาต์พุต (GPIO) หมุด GPIO ซอฟต์แวร์กำหนดให้ทั้งอินพุทหรือรัฐเอาท์พุท เมื่อหมุด GPIO มีการกำหนดให้เป็นรัฐอินพุตพวกเขามักจะใช้ในการอ่านเซ็นเซอร์หรือสัญญาณภายนอก การกำหนดค่าให้รัฐเอาท์พุท, ขา GPIO สามารถขับรถอุปกรณ์ภายนอกเช่นไฟ LED หรือมอเตอร์มักจะโดยอ้อมผ่านพลังงานไฟฟ้าภายนอก
ระบบฝังตัวหลายคนต้องอ่านเซ็นเซอร์ที่ผลิตสัญญาณอนาล็อก นี่คือวัตถุประสงค์ของการแปลงสัญญาณอนาล็อกเป็นดิจิตอล (ADC) ตั้งแต่โปรเซสเซอร์ถูกสร้างขึ้นเพื่อตีความและข้อมูลดิจิตอลกระบวนการเช่น 1s และ 0s พวกเขาจะไม่สามารถที่จะทำอะไรกับสัญญาณอนาล็อกที่อาจถูกส่งไปได้โดยอุปกรณ์ ดังนั้นอนาล็อกเพื่อแปลงดิจิตอลจะใช้ในการแปลงข้อมูลที่เข้ามาในรูปแบบการประมวลผลที่สามารถรับรู้ คุณสมบัติทั่วไปน้อยลงในไมโครคอนโทรลเลอร์บางแปลงดิจิตอลเป็นอะนาล็อก (DAC) ที่ช่วยให้การประมวลผลสัญญาณอนาล็อกเอาท์พุทหรือระดับแรงดันไฟฟ้า 
นอกจากนี้ในการแปลงไมโครโปรเซสเซอร์ฝังอยู่จำนวนมากรวมถึงความหลากหลายของตัวนับได้เป็นอย่างดี หนึ่งในประเภทที่พบมากที่สุดของตัวนับเป็นจับเวลาช่วง programmable (PIT) หลุมอาจนับลงจากค่าบางอย่างให้เป็นศูนย์หรือเพิ่มขึ้นถึงขีดความสามารถของการลงทะเบียนนับล้นที่จะเป็นศูนย์ เมื่อมันถึงศูนย์ก็จะส่งขัดจังหวะการประมวลผลแสดงให้เห็นว่า บริษัท ได้เสร็จสิ้นการนับ นี้จะเป็นประโยชน์สำหรับอุปกรณ์เช่นอุณหภูมิซึ่งเป็นระยะทดสอบอุณหภูมิรอบตัวพวกเขาเพื่อดูว่าพวกเขาจำเป็นต้องเปิดเครื่องปรับอากาศในเครื่องทำความร้อนใน ฯลฯ
ทุ่มเท Pulse Width Modulation (PWM) บล็อกทำให้มันเป็นไปได้สำหรับ CPU ในการควบคุมแปลงไฟโหลดทาน, มอเตอร์ ฯลฯ โดยไม่ต้องใช้จำนวนมากของทรัพยากรของ CPU ในลูปจับเวลาแน่น
ยูนิเวอร์แซ Asynchronous Receiver / เครื่องส่งสัญญาณ (UART) บล็อกทำให้มันเป็นไปได้ที่จะได้รับและส่งข้อมูลผ่านสายอนุกรมกับภาระน้อยมากบน CPU ทุ่มเทบนชิปฮาร์ดแวร์ก็มักจะมีความสามารถในการสื่อสารกับอุปกรณ์อื่น ๆ (ชิป) ในรูปแบบดิจิตอลเช่น Inter-วงจรรวม (I²C) แบบ Serial Peripheral Interface (SPI) Universal Serial Bus (USB) และอีเธอร์เน็ต 
อ้างอิง

มารู้จักกับ Arduino แต่ละรุ่น

 มาทำความรู้จักกับ Arduino รุ่นต่างๆกัน

(บทความนี้ เหมาะสำหรับมือใหม่ หัดเล่น)

 

 

Arduino Board (Official from Arduino.cc) มีหลากหลายรุ่นที่น่าสนใจ สินค้าผ่านการทดสอบคุณภาพ 100% ลูกค้าสามารถเลือกใช้บอร์ด Arduino ตามความเหมาะสมกับการใช้งาน ซึ่งมีดังนี้ 

 

1. Arduino Uno R3 เป็นบอร์ด Arduino ที่ได้รับความนิยมมากที่สุด เนื่องจากราคาไม่แพง ส่วนใหญ่โปรเจคและ Library ต่างๆ ที่พัฒนาขึ้นมา Support จะอ้างอิงกับบอร์ดนี้เป็นหลัก และข้อดีอีกอย่างคือ กรณีที่ MCU เสีย ผู้ใช้งานสามารถซื้อมาเปลี่ยนเองได้ง่าย (ดูรายละเอียดสินค้า)

 

 

 

2. Arduino Uno SMD เป็นบอร์ดที่มีคุณสมบัติและการทำงานเหมือนกับบอร์ด Arduino UNO R3 ทุกประการ แต่จะแตกต่างกับที่ Package ของ MCU ซึ่งบอร์ดนี้จะมี MCU ที่เป็น Package SMD (Arduino UNO R3 มี MCU ที่เป็น Package DIP) (ดูรายละเอียดสินค้า)

 

  

3. Arduino Mega 2560 R3 เป็นบอร์ด Arduino ที่ออกแบบมาสำหรับงานที่ต้องใช้ I/O มากกว่า Arduino Uno R3 เช่น งานที่ต้องการรับสัญญาณจาก Sensor หรือควบคุมมอเตอร์ Servo หลายๆ ตัว ทำให้ Pin I/O ของบอร์ด Arduino Uno R3 ไม่สามารถรองรับได้ ทั้งนี้บอร์ด Mega 2560 R3 ยังมีความหน่วยความจำแบบ Flash มากกว่า Arduino Uno R3 ทำให้สามารถเขียนโค้ดโปรแกรมเข้าไปได้มากกว่า ในความเร็วของ MCU ที่เท่ากัน (ดูรายละเอียดสินค้า)

 

  

4. Arduino Mega ADK เป็นบอร์ดที่ออกแบบมาให้บอร์ด Mega 2560 R3 สามารถติดต่อกับอุปกรณ์ Android Deviceผ่านพอร์ต USB Host ของบอร์ดได้ (ดูรายละเอียดสินค้า)

 

 

 

5. Arduino Leonardo การทำงานจะคล้ายกับบอร์ด Arduino Uno R3 แต่มีการเปลี่ยน MCU ตัวใหม่เป็น ATmega32U4 ซึ่งมีโมดูลพอร์ต USB มาด้วยบนชิป (แตกต่างจากบอร์ด Arduino UNO R3 หรือ Arduino Mega 2560 ที่ต้องใช้ชิป ATmega16U2 ร่วมกับ Atmega328 ในการเชื่อมต่อกับพอร์ต USB)  (ดูรายละเอียดสินค้า)                            

 

ข้อควรระวัง: เนื่องจาก MCU เป็นคนละเบอร์กับ Arduino Uno R3 อาจะทำให้บอร์ด Shield บางตัวหรือ Library ใช้ร่วมกันกับบอร์ด Arduino Leonardo ไม่ได้ ผู้ใช้งานจำเป็นต้องตรวจสอบก่อนใช้งาน

 

 

6. Arduino Mini 05 เป็นบอร์ด Arduino ขนาดเล็กที่ใช้ MCU เบอร์ ATmega328 เบอร์เดียวกับบอร์ด Arduino UNO R3 (ดูรายละเอียดสินค้า)

 

ข้อแตกต่าง: บอร์ด Arduino Mini 05 จะไม่มีพอร์ต USB มาให้ ผู้ใช้งานต้องต่อกับบอร์ด USB to Serial Converter เพิ่มเมื่อต้องการโปรแกรมบอร์ด

 

 

7. Arduino Pro Mini 328 3.3V เป็นบอร์ด Arduino ขนาดเล็ก ที่ใช้ MCU เบอร์ ATmega328 ซึ่งจะคล้ายกับบอร์ด Arduino Mini 05 แต่บนบอร์ดจะมี Regulator 3.3 Vชุดเดียวเท่านั้น ระดับแรงดันไฟที่ขา I/O คือ 3.3V (ดูรายละเอียดสินค้า)

 

 

8. Arduino Pro Mini 328 5V เป็นบอร์ด Arduino ขนาดเล็ก ที่ใช้ MCU เบอร์ ATmega328 เช่นเดียวกับบอร์ด Arduino Mini 05 แต่บนบอร์ดจะมี Regulator 5V ชุดเดียวเท่านั้น ระดับแรงดันไฟที่ขา I/O คือ 5V (ดูรายละเอียดสินค้า)

 

 

9. Arduino Ethernet with PoE moduleเป็นบอร์ด Arduino ที่ใช้ MCU เบอร์เดียวกับ Arduino Uno SMD ในบอร์ดมีชิป Ethernet และช่องสำหรับเสียบ SD Card รวมทั้งโมดูล POE ทำให้บอร์ดนี้สามารถใช้แหล่งจ่ายไฟจากสาย LAN ได้โดยตรง โดยไม่ต้องต่อ Adapter เพิ่ม แต่บอร์ด Arduino Ethernet with PoE module นี้จะไม่มีพอร์ต USBทำให้เวลาโปรแกรมต้องต่อบอร์ด USB toSerial Converter เพิ่มเติม (ดูรายละเอียดสินค้า)

 

 

10. Arduino Ethernet without PoEmodule บอร์ดนี้จะตัดโมดูล POE ออกไป ต้องใช้ไฟจากพอร์ต Power Jack เท่านั้น คุณสมบัติอื่นๆ จะเหมือนกับบอร์ด Arduino Ethernet with PoE module (ดูรายละเอียดสินค้า)

 

 

11. Arduino Due เป็นบอร์ด Arduino ที่เปลี่ยนชิป MCU ใหม่ ซึ่งจากเดิมเป็นตระกูล AVR เปลี่ยนเป็นเบอร์ AT91SAM3X8E(ตระกูล ARM Cortex-M3) แทน ทำให้การประมวลผลเร็วขึ้น แต่ยังคงรูปแบบโค้ดโปรแกรมของ Arduino ที่ง่ายอยู่ ข้อควรระวัง: เนื่องจาก MCU เป็นคนละเบอร์กับ Arduino Uno R3 อาจะทำให้บอร์ด Shield บางตัวหรือ Library ใช้ร่วมกันกับบอร์ด Arduino Leonardo ไม่ได้ ผู้ใช้งานจำเป็นต้องตรวจสอบก่อนใช้งาน (ดูรายละเอียดสินค้า)

 

วันจันทร์ที่ 11 มิถุนายน พ.ศ. 2561

Arduino คือ?

Arduino UNO R3

Arduino คืออะไร

         Arduino อ่านว่า (อา-ดู-อิ-โน่ หรือ อาดุยโน่) เป็นบอร์ดไมโครคอนโทรเลอร์ตระกูล AVR ที่มีการพัฒนาแบบ Open Source คือมีการเปิดเผยข้อมูลทั้งด้าน Hardware และ Software ตัว บอร์ด Arduino ถูกออกแบบมาให้ใช้งานได้ง่าย ดังนั้นจึงเหมาะสำหรับผู้เริ่มต้นศึกษา ทั้งนี้ผู้ใช้งานยังสามารถดัดแปลง เพิ่มเติม พัฒนาต่อยอดทั้งตัวบอร์ด หรือโปรแกรมต่อได้อีกด้วย
         ความง่ายของบอร์ด Arduino ในการต่ออุปกรณ์เสริมต่างๆ คือผู้ใช้งานสามารถต่อวงจรอิเล็กทรอนิคส์จากภายนอกแล้วเชื่อมต่อเข้ามาที่ขา I/O ของบอร์ด (ดูตัวอย่างรูปที่ 1) หรือเพื่อความสะดวกสามารถเลือกต่อกับบอร์ดเสริม (Arduino Shieldประเภทต่างๆ (ดูตัวอย่างรูปที่ 2) เช่น Arduino XBee ShieldArduino Music ShieldArduino Relay ShieldArduino Wireless ShieldArduino GPRS Shield เป็นต้น มาเสียบกับบอร์ดบนบอร์ด Arduino แล้วเขียนโปรแกรมพัฒนาต่อได้เลย

Arduino with XBee Shield

จุดเด่นที่ทำให้บอร์ด Arduino เป็นที่นิยม
  • ง่ายต่อการพัฒนา มีรูปแบบคำสั่งพื้นฐาน ไม่ซับซ้อนเหมาะสำหรับผู้เริ่มต้น
  • มี Arduino Community กลุ่มคนที่ร่วมกันพัฒนาที่แข็งแรง 
  • Open Hardware ทำให้ผู้ใช้สามารถนำบอร์ดไปต่อยอดใช้งานได้หลายด้าน
  • ราคาไม่แพง
  • Cross Platform สามารถพัฒนาโปรแกรมบน OS ใดก็ได้ 

รูปแบบการเขียนโปรแกรมบน Arduino

3

1. เขียนโปรแกรมบนคอมพิวเตอร์ ผ่านทางโปรแกรม ArduinoIDE ซึ่งสามารถดาวน์โหลดได้จาก Arduino.cc/en/main/software
2. หลังจากที่เขียนโค้ดโปรแกรมเรียบร้อยแล้ว ให้ผู้ใช้งานเลือกรุ่นบอร์ด Arduino ที่ใช้และหมายเลข Com port 

4

รูปที่ เลือกรุ่นบอร์ด Arduino ที่ต้องการ upload

5
รูปที่ เลือกหมายเลข Comport ของบอร์ด

3. กดปุ่ม Verify เพื่อตรวจสอบความถูกต้องและ Compile โค้ดโปรแกรม จากนั้นกดปุ่ม Upload โค้ด โปรแกรมไปยังบอร์ด Arduino ผ่านทางสาย USB เมื่ออับโหลดเรียบร้อยแล้ว จะแสดงข้อความแถบข้างล่าง “Done uploading” และบอร์ดจะเริ่มทำงานตามที่เขียนโปรแกรมไว้ได้ทันที

6

Layout & Pin out Arduino Board (Model: Arduino UNO R3) 


7


1.USBPort: ใช้สำหรับต่อกับ Computer เพื่ออับโหลดโปรแกรมเข้า MCU และจ่ายไฟให้กับบอร์ด
2.Reset Button: เป็นปุ่ม Reset ใช้กดเมื่อต้องการให้ MCU เริ่มการทำงานใหม่
3.ICSP Port ของ Atmega16U2 เป็นพอร์ตที่ใช้โปรแกรม Visual Com port บน Atmega16U2
4. I/OPort: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
7. I/OPort: นอกจากจะเป็น 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