Arduino Basic
มาทำความรู้จักกับ Arduino กันเถอะ!
Arduino คืออะไร
Arduino อ่านว่า (อา-ดู-อิ-โน่ หรือ อาดุยโน่)
เป็นบอร์ดไมโครคอนโทรเลอร์ตระกูล AVR ที่มีการพัฒนาแบบ Open Source
คือมีการเปิดเผยข้อมูลทั้งด้าน Hardware และ Software ตัวบอร์ด Arduino
ถูกออกแบบมาให้ใช้งานได้ง่ายดังนั้นจึงเหมาะสำหรับผู้เริ่มต้นศึกษา
ทั้งนี้ผู้ใช้งานยังสามารถดัดแปลง เพิ่มเติม พัฒนาต่อยอดทั้งตัวบอร์ด
หรือโปรแกรมต่อได้อีกด้วย
ความง่ายของบอร์ด Arduino
ในการต่ออุปกรณ์เสริมต่างๆ คือผู้ใช้งานสามารถต่อวงจรอิเล็กทรอนิคส์
จากภายนอกแล้วเชื่อมต่อเข้ามาที่ขา I/O ของบอร์ด
หรือเพื่อความสะดวกสามารถเลือกต่อกับบอร์ดเสริม (Arduino Shield)
ประเภทต่างๆ (ดูตัวอย่างรูปที่ 2) เช่น Arduino XBee Shield,
Arduino Music Shield, Arduino Relay Shield,
Arduino Wireless Shield, Arduino GPRS Shield เป็นต้น
มาเสียบกับบอร์ดบนบอร์ด Arduino แล้วเขียนโปรแกรมพัฒนาต่อได้เลย
ตัวอย่างบอร์ด Arduino
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
โครงสรางโปรแกรมของArduino
โปรแกรมของ Arduino แบงไดเปนสองสวน คือ
void setup()
void loop()
โดยฟงกชั่น setup() เมื่อโปรแกรมทำงานจะทำคำสั่งของฟงกชั่นนี้
เพียงครั้งเดียวใชในการกำหนดคาเริ่มต้นของการทํางานสวนฟงกชั่น loop()
เปนสวนทํางานโปรแกรมจะทําคําสั่งในฟงกชั่นนี้ตอเนื่องกันตลอดเวลา
โดยปกติใชกําหนดโหมดการทํางานของขาตางๆ
กําหนดการสื่อสารแบบอนุกรม ฯลฯ สวนของ loop() เปนโคดโปรแกรมที่ทํางาน
เชน อานคาอินพุต ประมวลผลสั่งงานเอาตพุต ฯลฯ
โดยสวนกําหนดคาเริ่มตน
เชน ตัวแปรจะตองเขียนที่สวนหัวของโปรแกรมกอนถึงตัวฟงกชั่น
นอกจากนั้นยังตองคํานึงถึงตัวพิมพเล็ก-ใหญของตัวแปรและชื่อฟงกชั่นใหถูกตอง
คำสั่งควบคุมการทำงาน
คำสั่ง if
คำสั่ง if… else
คำสั่ง for
คำสั่ง switch-case
คำสั่ง while
ตัวกระทำทางคณิตศาสตร์
ประกอบดวยตัวกระทํา 5 ตัวคือ
+ (บวก), - (ลบ), * (คูณ), / (หาร) และ % (หารเอาเศษ)
ตัวกระทำเปรียบเทียบ
ใชประกอบกับคําสั่ง if() และ while() เพื่อทดสอบเงื่อนไขหรือเปรียบเทียบ
คาตัวแปรตาง โดยจะเขียนเป็นนิพจนอยูภายในเครื่องหมาย ()
• x == y (x เทากับ y)
• x != y (x ไมเทากับ y)
• x < y (x นอยกวา y)
• x > y (x มากกวา y)
• x <= y (x นอยกวาหรือเทากับ y)
• x >= y (x มากกวาหรือเทากับ y)
ตัวกระทำทางตรรกะ
ใชในการเปรียบเทียบของคําสั่ง if() มี 3 ตัวคือ &&, || และ !
ตัวกระทำระดับบิต
ตัวกระทําระดับจะนําบิตของตัวแปรมาประมวลผล
ใชประโยชนในการแกปญหาดานการเขียนโปรแกรมไดหลากหลาย
ตัวกระทําระดับของภาษา C (ซึ่งรวมถึง Arduino) มี 6 ตัวไดแก
& (bitwise AND), | (OR), ^ (Exclusive OR), ~ (NOT),
<< (เลื่อนบิตไปทางขวา) และ >> (เลื่อนบิตไปทางซาย)
ไวยากรณ์ภาษา C/C++ ของ Arduino
ปิดบรรทัดด้วย ; (เซมิโคลอน - semicolon)
ชุดคำสั่งจะอยู่ใน { } (วงเล็บปกกา - curly brace)
หมายเหตุด้วย // และ /*...*
(// หมายเหตุ บรรทัดเดียว และ /*…*/ หลายบรรทัด)
กำหนดค่าคงที่ให้โปรแกรมด้วย #define
รวมไฟล อื่นๆ เขากับไฟลโปรแกรมหลักด้วย #include
ชนิดและประเภทของตัวแปร
char ใชเก็บขอมูลที่เปนตัวอักษร (character)
ใชเก็บขอมูลที่เปนเลขจํานวนเต็มได 256 คา
int ใชเก็บขอมูลที่เปนเลขจํานวนเต็ม (integer)
ใชเก็บขอมูลที่เปนเลขจํานวนเต็มได 65536 คา
float ใชเก็บขอมูลที่เปนเลขทศนิยมแบบ Single Precision
double ใชเก็บขอมูลที่เปนเลขทศนิยมแบบ Double Precision
สามารถเก็บคาตัวเลขทศนิยมที่มีความละเอียดและถูกตองของ
ทศนิยมมากวาแบบ float ถึง 2 เทา
void ใชเก็บตัวแปรที่ไมมีคา
อ้างอิงจาก
www.thaieasyelec.com
0 ความคิดเห็น:
แสดงความคิดเห็น