Lesson 2.2

โครงสร้างโปรแกรมและภาษา C/C++

การเขียนโปรแกรม Arduino เปรียบเสมือนการเขียนจดหมายสั่งงานหุ่นยนต์ โดยเราจะใช้ภาษา C/C++ ซึ่งมีโครงสร้างที่ชัดเจนและเป็นระเบียบ แบ่งออกเป็น 2 ส่วนหลักที่ขาดไม่ได้:

1. โครงสร้างพื้นฐาน (The Core Structure)

structure.ino
void setup() {
  // ส่วนนี้ทำงาน "ครั้งเดียว" เมื่อเปิดเครื่อง
  // ใช้สำหรับตั้งค่าเริ่มต้น เช่น กำหนดโหมดของขาพิน
}

void loop() {
  // ส่วนนี้ทำงาน "วนซ้ำต่อเนื่อง" ไปเรื่อยๆ
  // เป็นส่วนที่ใช้เขียนคำสั่งควบคุมหลัก
}

2. ไวยากรณ์เบื้องต้นที่ต้องรู้ (Syntax)

เครื่องหมายอัฒภาค (Semicolon - ;) : ต้องใส่ที่ท้ายประโยคคำสั่งทุกครั้ง (เหมือนจุด Full Stop ในภาษาอังกฤษ)

เครื่องหมายปีกกา (Curly Braces - { }) : ใช้บอกขอบเขตของกลุ่มคำสั่ง

การคอมเมนต์ (Comments - //) : ข้อความหลังเครื่องหมายนี้ โปรแกรมจะไม่นำไปประมวลผล ใช้สำหรับเขียนบันทึกเตือนความจำ

💡 ข้อควรระวัง (Case Sensitive): ภาษา C/C++ ให้ความสำคัญกับตัวพิมพ์เล็ก-ใหญ่ คำว่า LedPin กับ ledpin คือคนละคำกัน!

3. ตัวแปรและชนิดข้อมูล (Variables & Data Types)

ตัวแปรเปรียบเสมือน "กล่องเก็บข้อมูล" ที่เราต้องตั้งชื่อและระบุประเภทสิ่งของที่จะใส่ลงไป:

ชนิดข้อมูลคำสั่ง (Type)สิ่งที่เก็บได้
เลขจำนวนเต็มintเลขไม่มีทศนิยม เช่น 10, -5, 100
เลขทศนิยมfloatเลขมีทศนิยม เช่น 3.14, 0.5
ตัวอักษรcharตัวอักษร 1 ตัว เช่น 'A', 'b'
ค่าความจริงbooleanมีแค่ 2 ค่า คือ true (จริง) หรือ false (เท็จ)

4. ตัวดำเนินการและนิพจน์ (Operators)

ใช้สำหรับการคำนวณและเปรียบเทียบตรรกะ:

5. โครงสร้างควบคุมทิศทาง (Control Structures)

ใช้สร้างเงื่อนไขหรือการทำงานแบบวนซ้ำให้กับโปรแกรม:

control_structures.ino
// 1. เงื่อนไข if-else (ถ้า...มิฉะนั้น)
if (score >= 50) {
  // ทำงานถ้าเงื่อนไขเป็นจริง (สอบผ่าน)
} else {
  // ทำงานถ้าเงื่อนไขเป็นเท็จ (สอบตก)
}

// 2. การวนลูป for (ทำซ้ำตามจำนวนรอบที่แน่นอน)
for (int i = 0; i < 5; i++) {
  // คำสั่งในนี้จะทำงาน 5 รอบ
}

6. ฟังก์ชันพื้นฐานและการสร้างฟังก์ชัน (Functions)

Arduino มีฟังก์ชันสำเร็จรูปให้ใช้งาน และเราสามารถสร้างเองได้เพื่อจัดระเบียบโค้ด: