ชุดคำสั่งเป็นชุดคำสั่งในการเขียนโปรแกรมเพื่อให้ไมโครคอนโทรลเลอร์ทำงานตามโปรแกรมที่ออกแบบไว้ โดยมีคำสั่งต่าง ๆ ดังนี้
1. คำสั่งดิจิตอล อินพุต/เอาต์พุต
มีคำสั่งดังต่อไปนี้
- คำสั่ง pinMode() เป็นการกำหนดพอร์ตเป็นอินพุตหรือเอาต์พุต
- คำสั่ง digitalWrite() เป็นการเขียนข้อมูลออกพอร์ตที่กำหนด
- คำสั่ง digitalRead() เป็นการอ่านข้อมูลเข้าพอร์ตที่กำหนด
2. คำสั่งอนาล็อก อินพุต/เอาต์พุต
มีคำสั่งดังต่อไปนี้
- คำสั่ง analogReference() เป็นการกำหนดค่าแรงดันอ้างอิงที่ใช้สําหรับอนาล็อกอินพุต
- คำสั่ง analogRead() เป็นการอ่านแรงดันไฟฟ้าแบบอนาล็อกและแปลงเป็นจํานวนเต็ม มีค่าระหว่าง 0 ถึง 1023
- คำสั่ง analogWrite() เป็นการใช้ PWM เขียนค่าออกทางพอร์ตที่กำหนด
3. คำสั่งเวลา
มีคำสั่งดังต่อไปนี้
- คำสั่ง millis() เป็นการหน่วงเวลามีหน่วยเป็นมิลลิวินาทีของ Arduino ทันทีที่มีไฟเลี้ยงเข้า Arduino
- คำสั่ง micros() เป็นการหน่วงเวลามีหน่วยเป็นไมโครวินาทีของ Arduino ทันทีที่มีไฟเลี้ยงเข้า Arduino
- คำสั่ง delay() เป็นการหน่วงเวลาตามค่าที่กำหนด มีหน่วยเป็นมิลลิวินาที
- คำสั่ง delayMicroseconds() เป็นการหน่วงเวลาตามค่าที่กำหนด มีหน่วยเป็นไม่วินาที
4. คำสั่งคณิตศาสตร์
มีคำสั่งดังต่อไปนี้
- คำสั่ง min() เป็นการหาค่าต่ำสุด
- คำสั่ง max() เป็นการหาค่ามากสุด
- คำสั่ง abs() เป็นการหาค่าสมบูรณ์ของตัวแปร
- คำสั่ง constrain() เป็นการตรวจสอบและการปรับค่าตัวแปรที่กำหนด
- คำสั่ง map() เป็นการปรับค่าตัวแปรจากเดิมให้อยู่ระหว่างค่าที่กำหนด
- คำสั่ง pow() เป็นการหาค่าของตัวเลขยกกำลัง
- คำสั่ง sqrt() เป็นการหาค่าของรากที่สองของตัวเลข
5. คำสั่งตรีโกณมิติ
มีคำสั่งดังต่อไปนี้
- คำสั่ง sin() เป็นการคำนวณหาค่า sin
- คำสั่ง cos() เป็นการคำนวณหาค่า cos
- คำสั่ง tan() เป็นการคำนวณหาค่า tan
6. คำสั่งสุ่มตัวเลข
มีคำสั่งดังต่อไปนี้
- คำสั่ง randomSeed() เป็นการกำหนดค่าเริ่มต้นของฟังก์ชั่น random
- คำสั่ง random) เป็นการสุ่มค่าตัวเลขระหว่างตัวเลขที่กำหนด
7. คำสั่งบิตและไบต์
มีคำสั่งดังต่อไปนี้
- คำสั่ง LowByte() เป็นตัวแปรของไบต์ต่ําสุด
- คำสั่ง highByte() เป็นตัวแปรของไบต์สูงสุด
- คำสั่ง bitRead() เป็นการอ่านบิตของตัวแปร
- คำสั่ง bitWrite() เป็นการเขียนบิตของตัวแปร
- คำสั่ง bitSet() เป็นการตั้งบิตของตัวแปรเท่ากับ 1
- คำสั่ง bitClear() เป็นการตั้งบิตของตัวแปรเท่ากับ 0
- คำสั่ง bit() เป็นการตั้งค่าบิตตามค่าที่กำหนด
8. คำสั่งอินเตอร์รัพท์ภายนอก
มีคำสั่งดังต่อไปนี้
- คำสั่ง attachInterrupt() เป็นคำสั่งกำหนด และสร้างอินเตอร์รัพย์
- คำสั่ง detachinterrupt() เป็นคำสั่งปิดการรับอินเตอร์รัพย์
9. คำสั่งการอินเตอร์รัพท์
มีคำสั่งดังต่อไปนี้
- คำสั่ง interrupts() เป็นการเปิดการใช้งานอินเตอร์รัพย์
- คำสั่ง nolnterrupts() เป็นการปิดการใช้งานอินเตอร์รัพท์
10. คำสั่งการติดต่อสื่อสาร
มีคำสั่งดังต่อไปนี้
- คำสั่ง Serial.begin() เป็นการกำหนดอัตราการส่งข้อมูล
- คำสั่ง Serial.end() เป็นการปิดใช้งานการสื่อสารแบบอนุกรม
- คำสั่ง Serial.available() เป็นการตรวจสอบการรับข้อมูลจากการสื่อสารแบบอนุกรม
- คำสั่ง Serial.read() เป็นการอ่านข้อมูลจากการสื่อสารแบบอนุกรมที่เข้ามา
- คำสั่ง Serial.peek() เป็นการส่งกลับไบต์ต่อไปของข้อมูลการสื่อสารแบบอนุกรม
- คำสั่ง Serial.ush() เป็นการลบข้อมูลทั้งหมดในบัฟเฟอร์
- คำสั่ง Serial.print() เป็นการพิมพ์ข้อมูลไปยังพอร์ตอนุกรม
- คำสั่ง Serial.println() เป็นการพิมพ์ข้อมูลไปยังพอร์ตอนุกรม และขึ้นบรรทัดใหม่
- คำสั่ง Serial.write() เป็นการส่งข้อมูลไบต์ไปยังพอร์ตอนุกรม
ตัวอย่างการเขียนโปรแกรมภาษาซีสําหรับไมโครคอนโทรลเลอร์ Arduino
const int kPinLed = 13;
void setup()
{
pinMode(kPinLed, OUTPUT);
}
void loop()
{
digitalWrite(kPinLed, HIGH);
delay(500);
digitalWrite(kPinLed, LOW);
delay(500);
}
คำอธิบาย
จากบรรทัด
const int kPinLed = 13;
// เป็นการกำหนดค่าคงที่ ซึ่งกำหนดครั้งเดียวใช้ได้ตลอดทั้งโปรแกรม จากบรรทัด
void setup()
{
pinMode(kPinLed, OUTPUT);
}
// เป็นการกำหนดขาที่เชื่อมต่อวงจรให้เป็นพอร์ตเอาต์พุต
จากบรรทัด
void loop()
{
digitalWrite(kPinLed, HIGH);
delay(500);
digitalWrite(kPinLed, LOW);
delay(500);
}
//อธิบายการทำงานของโปรแกรม เป็นการส่งข้อมูลลอจิก “1” ออกไปยังพอร์ตเอาต์พุตที่กำหนด แล้วหน่วงเวลา 500 มิลลิวินาที จากนั้นส่งข้อมูลลอจิก “0” ออกไปยังพอร์ตเอาต์พุต แล้วทำการหน่วงเวลา 500 มิลลิวินาทีเช่นเดิม ซึ่งโปรแกรมทำงานวนในลูปของ void loop เช่นนี้ตลอดทั้งโปรแกรม