ภารกิจที่ 1: Digital I/O

🛡️ ผู้พิทักษ์ความปลอดภัย (Smart Alarm)

🎯 จุดประสงค์การเรียนรู้: นักเรียนสามารถออกแบบวงจรและเขียนโปรแกรมภาษา C/C++ เพื่อรับค่าจากสวิตช์ (Input) นำไปประมวลผลตรรกะแบบมีเงื่อนไข (If-Else) และสั่งงานสัญญาณเตือนภัย (Output) ได้อย่างถูกต้อง

คลังความรู้ (Knowledge Base)

📌 สรุปหลักการ Digital Input และ Pull-down Resistor
การรับค่าจากปุ่มกด (Switch) ในระบบดิจิทัล จะมีแค่ 2 สถานะคือ HIGH (1) หรือ LOW (0)

*จำเป็นต้องต่อตัวต้านทาน 10k โอห์มแบบ Pull-down* เพื่อป้องกันสถานะลอยตัว (Floating) ซึ่งจะทำให้กระแสไฟฟ้าไม่เสถียรและบอร์ดจะสับสนว่ามีการกดปุ่มหรือไม่
int buttonPin = 2;
int buttonState = 0;

void setup() {
  pinMode(buttonPin, INPUT);
  Serial.begin(9600);
}

void loop() {
  buttonState = digitalRead(buttonPin);
  Serial.println(buttonState);
  delay(100);
}
int ledPin = 13;
int buttonPin = 2;
int buttonState = 0;

void setup() {
  pinMode(ledPin, OUTPUT);
  pinMode(buttonPin, INPUT);
}

void loop() {
  buttonState = digitalRead(buttonPin);
  
  if (buttonState == HIGH) {
    digitalWrite(ledPin, HIGH); // สัญญาณดัง
  } else {
    digitalWrite(ledPin, LOW);  // ปกติ
  }
}

พื้นที่ปฏิบัติการ (Virtual Lab)

ความคืบหน้าภารกิจ 0%
เปิดห้องแล็บเต็มรูปแบบ (Full Tinkercad Editor)

ศูนย์สนับสนุนและแบบทดสอบ

พบบั๊ก? แจ้งศูนย์แก้ปมปัญหาด่วน!
📝 ทดสอบความเข้าใจภารกิจที่ 1 ข้อ 1 / 3

โหลดคำถาม...

เยี่ยมมาก นวัตกร!

คุณทำแบบทดสอบภารกิจที่ 1 สำเร็จแล้ว

คะแนนของคุณ: 0 / 3

ลานสะท้อนคิด (Reflection)

สรุปองค์ความรู้ที่ได้จากภารกิจนี้ 1 ประโยค และเล่าถึงปัญหาที่พบเพื่อแบ่งปันกับเพื่อนๆ

กติกาชาวนวัตกร: ข้อตกลงร่วมกัน

1

ระบุตัวตนให้ชัดเจน: โพสต์ทุกครั้งต้องพิมพ์ "ชื่อ-สกุล และเลขที่" หรือ "ชื่อกลุ่ม" ที่หัวข้อเสมอ

2

โพสต์ให้ถูกคอลัมน์: อ่านชื่อคอลัมน์ภารกิจให้ดีก่อนกดเครื่องหมาย (+) เพื่อความเป็นระเบียบ

3

สื่อสารอย่างสร้างสรรค์: ใช้ถ้อยคำสุภาพ เน้นการชื่นชมและให้ข้อเสนอแนะเพื่อการพัฒนา

4

กล้าที่จะแบ่งปันความผิดพลาด: การเจอ "บั๊ก" ไม่ใช่เรื่องน่าอาย ความผิดพลาดของเราอาจช่วยเพื่อนกลุ่มอื่นได้