ข้อมูล Arduino Pro Mini ภาษาไทย
Arduino Pro Mini พัฒนาขึ้นสำหรับการใช้งานที่ต้องการพื้นที่จำกัด หรือโปรเจคที่ต้องการติดตั้งถาวร Arduino Pro Mini มีขนาดเล็ก มีทั้งรุ่น 3.3V และ 5V ใช้ชิฟ ATmega328Arduino Pro Mini สามารถจ่ายไฟได้ด้วยสาย FTDI หรือนำ breakout board ไปเชื่อมกับหัวต่อ 6 pin หรือจะเป็นการจ่ายไฟที่กำหนดกำลังไฟไว้ที่ 3.3V หรือ 5V (ขึ้นอยู่กับโมเดล)สำหรับขั้วต่อ Vcc ได้เช่นเดียวกัน เนื่องจากมีตัวควบคุมแรงดันไฟฟ้า on board จึงทำให้สามารถรับแรงดันไฟฟ้าได้สูงถึง 12VDC ถ้าจะส่งพลังงานไปที่ Board โดยไม่กำหนดค่าแรงดันไฟฟ้า ต้องแน่ใจก่อนว่าต่อเข้ากับขั้ว “RAW” ที่ไม่ได้มีแรงดันไฟฟ้า VCC แล้วPower pin มีดังต่อไปนี้:
- RAW สำหรับจ่ายแรงดันไฟฟ้าแบบดิบไปที่ Board
- VCC กำหนดกำลังไฟสำหรับจ่ายไว้ที่ 3.3V หรือ 5V
- GND ย่อมาจาก Ground pins
หน่วยความจำ
ATmega328 มีหน่วยความจำแฟลชจำนวน 32 KB สำหรับเก็บโค้ดไว้ (ซึ่ง 0.5KB ใช้สำหรับตัว bootloader) มันมี SRAM จำนวน 2 KB และ EEPROM 1 KB ซึ่งสามารถใช้อ่านและเขียน EEPROM library ได้
Input และ Output
แต่ละ Pin จาก Digital pins ทั้ง 14 บน Pro Mini สามารถใช้เป็นตัว Input หรือ Output ก็ได้ การใช้ฟังก์ชั่นของ pinMode, digitalWrite และ digitalRead พวกมันต้องใช้กำลังไฟที่ 3.3V หรือ 5Vในการทำงาน โดยแต่ละ Pin จะสามารถจ่ายหรือรับกระแสได้สูงสุด 40mA และมี Pull-up Resistor ภายใน 20-50 kOhms(โดยปกติไม่ได้เชื่อมต่อไว้) นอกจากนี้ Pins บางตัวยังมีฟังก์ชั่นพิเศษอย่าง:
- Serial: 0 (RX) และ 1 (TX) ซึ่งใช้เพื่อรับ (RX) และส่ง (TX) ผ่าน TTL Serial Data โดย Pins เหล่านี้จะเชื่อมต่อกับPins TX-0 และ RX-1 ของหัวต่อ 6 Pin
- การอินเตอร์รัพท์ภายนอก (External Interrupts) : 2 และ 3 โดย Pins เหล่านี้สามารถตั้งค่าให้ทำการอินเตอร์รัพท์ได้เมื่อมีกำลังที่ต่ำ เพิ่มสูงขึ้นหรือกำลังหลุดขอบ หรือค่ามีการเปลี่ยนแปลง ดูรายละเอียดฟังก์ชั่น attachInterrupt ในนี้
- PWM(Pulse Width Modulation): 3, 5, 6, 9, 10, และ 11 ทำให้เกิดการส่งสัญญาณ 8-bit PWM output พร้อมกับฟังก์ชั่น analogWrite
- SPI (Serial Peripheral Interface) : 10(SS), 11(MOSI), 12(MISO), 13(SCK) Pins เหล่านี้ทำหน้าที่สนับสนุนการสื่อสารของ SPI ซึ่งแม้จะทำผ่านฮาร์ดแวร์พื้นฐาน แต่ตอนนี้มันก็ยังไม่สามารถสื่อสารผ่านภาษา Arduino ได้
- LED (Light-Emitting Diode): 13 มันมี Built-in LED เชื่อมอยู่กับ Digital pin 13 เมื่อ Pin มีค่า HIGH ไฟ LED จะเปิดขึ้นมา และเมื่อ Pin มีค่า LOW ไฟก็จะดับ
Arduino Pro Mini มี Analog Input 8 ช่อง แต่ละช่องจะมี Resolution 10 bits (ยกตัวอย่างเช่น มีค่าต่างกัน 1024) สี่ช่องจากทั้งหมดจะอยู่ที่หัวต่อบนขอบ Board อีกสองช่อง (ช่อง Input ที่ 4 และ 5) จะอยู่บนรูภายใน Board โดย Analog Input จะทำหน้าที่วัดค่าจาก Ground ไปจนถึง VCC
นอกจากนี้บาง Pins ยังมีฟังก์ชั่นพิเศษอีกด้วย:
- I2C: A4 (SDA) และ A5 (SCL) ทำหน้าที่สนับสนุนการสื่อสารของ I2C (TWI) โดยใช้ Wire library
นอกจากนี้ยังมีอีก Pin ที่อยู่บน Board ได้แก่:
- รีเซ็ต (Reset) จะทำให้ Pin เส้นนี้มีค่า LOW ไว้เพื่อรีเซ็ต Microcontroller ซึ่งโดยทั่วไปแล้วใช้เพื่อเพิ่มปุ่มรีเซ็ตให้กับ Shield เพื่อบล๊อคตัวที่อยู่บน Board ไว้
การติดต่อสื่อสาร
Arduino Pro Mini มีตัวช่วยในการสื่อสารอยู่หลายตัว โดยใช้สื่อสารกับคอมพิวเตอร์ Arduino ตัวอื่น หรือ Microcontroller ตัวอื่น โดย ATmega328 จะเป็นตัวสร้างการสื่อสารแบบอนุกรม UART TTL ซึ่งสามารถพบได้บน Digital pins 0 (RX) และ 1 (TX) ซอฟท์แวร์ของ Arduino จะประกอบด้วย Serial Monitor ซึ่งทำให้สามารถนำข้อมูลตัวหนังสือง่ายๆ ส่งและรับจาก Arduino Board ผ่านสายต่อ USB ได้
SoftwareSerial library ทำให้สามารถสื่อสารแบบอนุกรมบน Digital pins ของ Pro Mini ใดก็ได้ และ ATmega328 เองก็ยังช่วยสนับสนุนการสื่อสารทั้งแบบ I2C (TWI) และ SPI ซอฟท์แวร์ Arduino ประกอบด้วย Wire library เพื่อให้สามารถใช้งาน I2C bus ได้ง่ายขึ้น สามารถดูรายละเอียดข้อมูลอ้างอิงได้ในนี้ โดยในการใช้การสื่อสารแบบ SPI ขอให้ดูที เอกสารที่รวบรวมข้อมูล คุณสมบัติต่างๆ ของของ ATmega328
การเขียนโปรแกรม
ATmega328 บน Arduino Pro Mini จะมาพร้อมกับ bootloader ที่จะทำให้คุณสามารถอัพโหลดโค้ดใหม่ๆใส่มันได้โดยไม่ต้องใช้ฮาร์ดแวร์ภายนอกสำหรับเขียนโปรแกรม มันสื่อสารโดยใช้โปรโตคอลดั้งเดิมของ STK500 ข้อมูลอ้างอิง และ C header files
รีเซ็ตอัตโนมัติ (รีเซ็คโดยซอฟท์แวร์)
แทนที่จะต้องใช้ปุ่มรีเซ็ตของจริงก่อนการอัพโหลด Arduino Pro Mini ได้รับการออกแบบให้สามารถรีเซ็ตได้ด้วยการเปิดซอฟท์แวร์บนคอมพิวเตอร์ที่เชื่อมต่อไว้ หนึ่งใน Pins บนหัวต่อ 6 Pin ที่เชื่อมต่อกับสายรีเซ็ตของ ATmega328 ผ่านตัวเก็บประจุ 100 nF โดย Pin นี้จะต่อกับเส้นที่ควบคุมกระแสการทำงานของฮาร์ดแวร์ซึ่งได้จากการต่อสาย USB-to-serial convertor เข้ากับหัวต่อ : เมื่อ RTS มีการใช้สาย FTDI และเมื่อ DTR ใช้ Sparkfun breakout board เมื่อสายนี้ถูกประเมินแล้ว (ว่ามีค่าต่ำ) สายรีเซ็ตจะดับไปซึ่งนานพอที่จะรีเซิตชิปใหม่ ส่วนซอฟท์แวร์ Arduino นั้น จะใช้ความสามารถนี้ในการทำให้คุณสามารถอัพโหลดโค้ดโดยง่าย เพียงแค่กดปุ่มอัพโหลดในระบบของ Arduino นี่จึงแปลว่า Bootloader สามารถมี Timeout ที่สั้นขึ้นได้ เนื่องจากการที่สายรีเซ็ตมีค่า LOW ซึ่งจะให้มีการประสานงานในการอัพโหลดที่ดี
การติดตั้งนี้มีผลกระทบอื่นๆตามมาด้วย เมื่อ Pro Mini ต่อเข้ากับคอมพิวเตอร์ที่ใช้ระบบปฏิบัติการทั้ง Linux, Mac หรือ OS X มันจะมีคำสั่งจากซอฟท์แวร์ให้รีเซ็ตทุกครั้งที่มีการเชื่อมต่อ (ผ่านสาย USB) โดยหลังจากนั้นไม่ถึงวินาที Bootloader จะเปิดทำงานขึ้นบน Pro ในขณะที่ได้รับการโปรแกรมไว้ให้ไม่ต้องสนใจข้อมูลที่ไม่ถูกต้อง (อย่างเช่น อะไรก็ตามที่ไม่ใช่การอัพโหลดโค้ดใหม่) มันจะตัดข้อมูลไม่กี่ไบต์แรกที่ส่งไปยัง Board ออกหลังจากการเชื่อมต่อเกิดขึ้น ถ้าหาก Sketch ที่เปิดทำงานบน Board รับการตั้งค่าเพียงครั้งเดียวหรือข้อมูลอื่นเมื่อเริ่มทำงานครั้งแรก ต้องมั่นใจว่าเปิดซอฟท์แวร์ที่ใช้สื่อสารหลังจากนั้นวินาทีนึงหลังการเชื่อต่อและหลังการส่งข้อมูล
ตารางสรุปคุณสมบัติ Arduino Pro Mini
Microcontroller |
ATmega328 * |
Board Power Supply |
3.35 -12 V (3.3V model) or 5 - 12 V (5V model) |
Circuit Operating Voltage |
3.3V or 5V (depending on model) |
Digital I/O Pins |
14 |
PWM Pins |
6 |
UART |
1 |
SPI |
1 |
I2C |
1 |
Analog Input Pins |
6 |
External Interrupts |
2 |
DC Current per I/O Pin |
40 mA |
Flash Memory |
32KB of which 2 KB used by bootloader * |
SRAM |
2 KB * |
EEPROM |
1 KB * |
Clock Speed |
8 MHz (3.3V versions) or 16 MHz (5V versions) |
สินค้า Arduino Pro Mini 328 5V