WEEK 1 Arduino – Basic I/O (Digital Input/Output, Shields, Sensors)
Arduino คืออะไร? ทำไม Arduino
ถึงเป็นที่นิยมมากในปัจจุบัน
Arduino คืออะไร: Arduino
หรือที่อ่านว่า
อา-ดู-อิ-โน่ หรือ อาดุยโน่ เป็นบอร์ดไมโครคอนโทรเลอร์ในตระกูล AVR ซึ่งมีการพัฒนาออกมาในรูปแบบของ
Open Source คือมีการเปิดเผยหรือเผยแพร่ข้อมูลต่างๆั้งในส่วนที่เป็น Hardware
และ
Software โดยตัวของบอร์ด Arduino เองนั้นถูกออกแบบมาให้สำหรับผู้ที่เริ่มต้นที่ต้องการจะศึกษา เพราะความง่ายของการพัฒนาโปรแกรมหรือโปรเจคต่างๆที่มีการใช้ Arduino นั้นจะช่วยให้สามารถต่อยอดไปในเรื่องต่างๆได้อย่างง่ายดาย
จุดเด่นที่บอร์ด Arduino นั้นได้รับความนิยม
หลังจากที่เราหมดข้อสงสัยกับคำถามที่ว่า Arduino
คืออะไร
กันแล้วนั้น มาดูในส่วนที่ว่าทำไมArduino ถึงเป็นที่นิยมมากในปัจจุบัน
เหตุผลอะไรกันที่ทำให้ Arduino นั้นมีผู้ใช้งานอย่างมากมายมหาศาล
โครงสร้างของโปรแกรมที่ไม่ได้ซับซ้อน
มีรูปแบบคำสั่งที่ง่ายและไลบารี่ต่างๆพร้อมใช้งาน
มี Arduino Community ที่ช่วยกันพัฒนาสิ่ต่างๆออกมาอย่างต่อเนื่อง
มี Hardware หรือโมดูลต่างๆที่สามารถนำมาใช้ในการพัฒนาได้มากมาย
ราคาถูกไม่แพงมากจนเกินไป สามารถหาซื้อได้ทั่วๆไป
Cross Platform มี IDE ที่สามารถพัฒนาได้ในทุกระบบปฏิบัติการ
โครงสร้าง Pin บนบร์อด Arduino UNO R3
โครงสร้างบร์อด Arduino
UNO R3 ซึ่งบร์อดนี้เป็นอีกหนึ่งบร์อดที่ได้รับความนิยมมากๆ ซึ่งโครงสร้าง PIN
หรือพร์อตต่างๆนั้นจะมีดังนี้
USB Port: พร์อตนี้จะใช้เชื่อมต่อระหว่าง Computer และตัวบร์อดเข้าด้วยกัน
เพื่อทำการอัพโหลด Code ที่เราเขียนเข้าไปในตัว MCU ในบร์อดและจ่ายไฟให้กับบอร์ด
Reset Button: เป็นปุ่มสำหรับกดรัเซ็ตตัวบร์อดหรือการทำงานของตัว
MCU เอง
ICSP Port ของ Atmega16U2 เป็นพร์อตสำหรับการเขียนโปรแกรมที่ใช้เชื่อมต่อกับตัวของ
Visual Com port ใน Atmega16U2
I/O Port Digital: พินต่างๆที่มีการรับ Digital I/O โดยมีตั้งแต่ขา
D0 ถึง D13 และบาง Pin จะทำหน้าที่อื่นๆอีกด้วยเช่น เช่น Pin 0,1 เป็นขาที่ทำหน้าที่ในส่วนของการรับส่ง
Tx,Rx Serial และ Pin 3,5,6,9,10 และ 11 เป็นขา PWM
ICSP Port: Atmega328 เป็นพอร์ตที่เชื่อมต่อกับโปรแกรม Bootloader
Atmega328 : ตัวชิบคอนโทรลเลอร์ซึ่งตัวบร์อด Arduino
UNO R3 นี้จะเป็น Atmega328
I/O Port Analog: Pin ต่างๆที่รับสัญญาณอนาล็อก ตั้งแต่ขา A0-A5
(A มาจากคำว่า
Analog)
Power Port: ภาคจ่ายไฟหรือ Pin สำหรับการต่อไฟเลี้ยงให้กับโมดูลหรืออุปกรณ์ต่างๆที่เชื่อมต่อกับบร์อดโดยมีแรงดันไปไฟที่
+3.3 V, +5V, GND, Vin
Power Jack: รับไฟจาก Adapter ซึ่งที่แรงดันอยู่ระหว่าง
7-12 V
Atmega16U2 ชิบคอนโทรลเลอร์เป็น MCU ที่ทำหน้าที่เป็น
USB to Serial ซึ่ง Atmega328 จะเชื่อมต่อกับ Computer ผ่าน Atmega16U2
อุปกรณ์ที่ใช้
- บอร์ด Arduino
- MAX721 Display
- HDC1080 High Accuracy Humidity-Temperature Sensor Module
- สายไฟ
จุุดประสงค์
เพื่อแสดงข้อความ "Arduno" ผ่าน MAX721 Display
ขั้นตอนการทำ
1.เขียนโค้ชใส่ Arduino ตามโค้ชตัวอย่างที่ให้นี้
#include <SPI.h>#include "LedMatrix.h"#define NUMBER_OF_DEVICES 1#define CS_PIN D8LedMatrixledMatrix = LedMatrix(NUMBER_OF_DEVICES, CS_PIN);void setup(){ Serial.begin(115200); // For debugging outputledMatrix.init();ledMatrix.setIntensity(4); // range is 0-15ledMatrix.clear(); ledMatrix.commit();}void loop(){// ledMatrix.clear();// ledMatrix.commit();// commit send buffer to the displays// delay(1000);Send2MAX7129(7, 16, 0);Send2MAX7129(6, 17, 0);Send2MAX7129(5, 18, 0);Send2MAX7129(4, 19, 0);Send2MAX7129(3, 20, 0);Send2MAX7129(2, 21, 0);Send2MAX7129(1, 22, 0); delay(1000); }//===================================================void Send2MAX7129(byte SegPosition, byte Value, bool dotDigit){ const static byte charTable [] = { B01111110, B00110000, B01101101, B01111001, B00110011, B01011011, B01011111, B01110000, B01111111, B01111011, B01110111, B00011111, B00001101, B00111101, B01001111, B01000111, B01110111, B00000101, B00111101, B00011100, B00010000, B00010101, B00011101 };Value = charTable[Value];if (dotDigit == 1) Value |= 0x80;digitalWrite(CS_PIN, LOW);SPI.transfer (SegPosition);SPI.transfer (Value);digitalWrite (CS_PIN, HIGH); Serial.print(Value); }//=================================================== //##SegPosition >> 87654321##SegData >> tabcdefg//===================================================void SendData2MAX7129(byte SegPosition, byte SegData){digitalWrite(CS_PIN, LOW);SPI.transfer (SegPosition);SPI.transfer (SegData);digitalWrite (CS_PIN, HIGH);}
ผลลัพธ์
ที่มา
https://www.elecexpert.com/article/what-is-arduino
ความคิดเห็น
แสดงความคิดเห็น