โครงสร้างภาษาของ Arduino ใช้ภาษาซี (C/C++) ที่มีรูปแบบการเขียนที่ง่ายและเหมาะสมกับการควบคุมฮาร์ดแวร์ต่างๆ ต่อไปนี้คือโครงสร้างพื้นฐานของโปรแกรม Arduino:
1. การประกาศตัวแปร ตัวแปรจะใช้เก็บค่าหรือข้อมูลต่างๆ ที่เราจะใช้งานในโปรแกรม
ตัวแปรสามารถประกาศได้หลายประเภท เช่น int, float, char, boolean, หรือ long
เช่น int ledPin = 13; // ประกาศตัวแปร ledPin เป็นหมายเลข 13
2. ฟังก์ชัน setup() ใช้สำหรับการตั้งค่าค่าเริ่มต้นของพินและการกำหนดค่าอื่น ๆ ที่ต้องทำครั้งเดียวจะถูกเรียกใช้เพียงครั้งเดียวเมื่อเริ่มโปรแกรม
void setup() {
pinMode(ledPin, OUTPUT); // ตั้งค่า pin 13 เป็น OUTPUT
}
3. ฟังก์ชัน loop() ฟังก์ชันหลักที่จะทำงานซ้ำไปเรื่อย ๆ หลังจาก setup() จบ ใช้สำหรับเขียนโค้ดที่ต้องทำงานอย่างต่อเนื่อง เช่น การควบคุมอุปกรณ์ต่างๆ
void loop() {
digitalWrite(ledPin, HIGH); // เปิดไฟ LED
delay(1000); // รอ 1 วินาที
digitalWrite(ledPin, LOW); // ปิดไฟ LED
delay(1000); // รอ 1 วินาที
}
4. คำสั่ง if, else, else if ใช้สำหรับตัดสินใจตามเงื่อนไขที่กำหนด
if (digitalRead(ledPin) == HIGH) {
// ทำบางอย่างถ้า LED เปิดอยู่
} else {
// ทำบางอย่างถ้า LED ปิดอยู่
}
5. การใช้ for หรือ while ใช้สำหรับทำงานซ้ำ ๆ ตามจำนวนที่กำหนดหรือตามเงื่อนไขที่ระบุ
for (int i = 0; i < 10; i++) {
digitalWrite(ledPin, HIGH); // เปิดไฟ LED
delay(500); // รอ 0.5 วินาที
digitalWrite(ledPin, LOW); // ปิดไฟ LED
delay(500); // รอ 0.5 วินาที
}
6. ฟังก์ชันที่ผู้ใช้สร้างขึ้น คุณสามารถสร้างฟังก์ชันที่เป็นของคุณเองเพื่อให้โค้ดดูสะอาดและอ่านง่าย
void blinkLed(int pin) {
digitalWrite(pin, HIGH);
delay(500);
digitalWrite(pin, LOW);
delay(500);
}
void loop() {
blinkLed(ledPin); // เรียกใช้ฟังก์ชัน blinkLed
}
7. คำสั่งพื้นฐานอื่นๆ
pinMode(); ใช้ตั้งค่าพิน (INPUT, OUTPUT, INPUT_PULLUP)
digitalWrite(); ส่งสัญญาณ HIGH หรือ LOW ไปยังพิน
digitalRead(); อ่านค่าของพิน (HIGH หรือ LOW)
delay(); หน่วงเวลา (มิลลิวินาที)
analogWrite(); ส่งค่า PWM ไปยังพิน
analogRead(); อ่านค่าจากพินอนาล็อก
ตัวอย่างโค้ด Arduino แบบเต็ม
// ประกาศตัวแปร
int ledPin = 13; // พินที่ใช้ควบคุม LED
// ฟังก์ชัน setup
void setup() {
pinMode(ledPin, OUTPUT); // ตั้งค่า pin 13 เป็น OUTPUT
}
// ฟังก์ชัน loop
void loop() {
digitalWrite(ledPin, HIGH); // เปิดไฟ LED
delay(1000); // รอ 1 วินาที
digitalWrite(ledPin, LOW); // ปิดไฟ LED
delay(1000); // รอ 1 วินาที
}
โครงสร้างนี้ช่วยให้คุณสามารถเขียนโปรแกรม Arduino ได้ง่ายและทำงานได้อย่างมีประสิทธิภาพในการควบคุมอุปกรณ์ต่าง ๆ โดยใช้การเขียนโค้ดที่เข้าใจง่ายและตรงไปตรงมา.