ภารกิจที่ 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) ซึ่งจะทำให้กระแสไฟฟ้าไม่เสถียรและบอร์ดจะสับสนว่ามีการกดปุ่มหรือไม่
*จำเป็นต้องต่อตัวต้านทาน 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); // ปกติ
}
}
ศูนย์สนับสนุนและแบบทดสอบ
พบบั๊ก? แจ้งศูนย์แก้ปมปัญหาด่วน!
📝 ทดสอบความเข้าใจภารกิจที่ 1
ข้อ 1 / 3
โหลดคำถาม...
เยี่ยมมาก นวัตกร!
คุณทำแบบทดสอบภารกิจที่ 1 สำเร็จแล้ว
คะแนนของคุณ: 0 / 3
ลานสะท้อนคิด (Reflection)
สรุปองค์ความรู้ที่ได้จากภารกิจนี้ 1 ประโยค และเล่าถึงปัญหาที่พบเพื่อแบ่งปันกับเพื่อนๆ
กติกาชาวนวัตกร: ข้อตกลงร่วมกัน
1
ระบุตัวตนให้ชัดเจน: โพสต์ทุกครั้งต้องพิมพ์ "ชื่อ-สกุล และเลขที่" หรือ "ชื่อกลุ่ม" ที่หัวข้อเสมอ
2
โพสต์ให้ถูกคอลัมน์: อ่านชื่อคอลัมน์ภารกิจให้ดีก่อนกดเครื่องหมาย (+) เพื่อความเป็นระเบียบ
3
สื่อสารอย่างสร้างสรรค์: ใช้ถ้อยคำสุภาพ เน้นการชื่นชมและให้ข้อเสนอแนะเพื่อการพัฒนา
4
กล้าที่จะแบ่งปันความผิดพลาด: การเจอ "บั๊ก" ไม่ใช่เรื่องน่าอาย ความผิดพลาดของเราอาจช่วยเพื่อนกลุ่มอื่นได้