ภารกิจที่ 3: Serial Communication
🕵️♂️ สายลับถอดรหัส (Serial Decoder)
🎯 จุดประสงค์การเรียนรู้: นักเรียนสามารถเขียนโปรแกรมเพื่อสร้างช่องทางการสื่อสารข้อมูลแบบ 2 ทาง (Two-way Communication) ระหว่างบอร์ดไมโครคอนโทรลเลอร์กับคอมพิวเตอร์ ผ่านหน้าต่าง Serial Monitor ได้
คลังความรู้ (Knowledge Base)
📌 สรุปหลักการสื่อสารแบบอนุกรม (Serial) และ Baud Rate
1.
2. การส่งข้อมูล: ใช้
3. การรับข้อมูล: ใช้
Serial.begin(9600); คือการตั้งค่าความเร็วในการคุยกันระหว่างบอร์ดกับคอมพิวเตอร์ (Baud Rate) โดย 9600 หมายถึงการส่งข้อมูล 9,600 บิตต่อวินาที2. การส่งข้อมูล: ใช้
Serial.print() (พิมพ์ต่อกันในบรรทัดเดียว) หรือ Serial.println() (พิมพ์แล้วขึ้นบรรทัดใหม่อัตโนมัติ)3. การรับข้อมูล: ใช้
Serial.available() เพื่อเช็คว่ามีข้อความตกค้างรอให้เราอ่านหรือไม่ และใช้ Serial.readStringUntil() เพื่ออ่านข้อความนั้นมาเก็บไว้ในตัวแปรจนกว่าเราจะกด Enter
void setup() {
// เปิดช่องทางการสื่อสารที่ความเร็ว 9600
Serial.begin(9600);
}
void loop() {
// ส่งข้อความ "Hello" ไปแสดงผลทุกๆ 1 วินาที
Serial.println("Hello");
delay(1000);
}
int ledPin = 13; // ใช้ไฟ LED สีส้มบนบอร์ด Arduino
void setup() {
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
Serial.println("Type 'ON' to turn on LED, 'OFF' to turn off.");
}
void loop() {
// เช็คว่ามีข้อความถูกพิมพ์เข้ามาหรือไม่
if (Serial.available() > 0) {
// อ่านข้อความจนกว่าจะกด Enter
String command = Serial.readStringUntil('\n');
command.trim(); // ตัดช่องว่างส่วนเกินออก
// ตรวจสอบคำสั่งเพื่อควบคุม LED
if (command == "ON") {
digitalWrite(ledPin, HIGH);
Serial.println("Status: LED is ON");
}
else if (command == "OFF") {
digitalWrite(ledPin, LOW);
Serial.println("Status: LED is OFF");
}
else {
Serial.println("Error: Invalid command!");
}
}
}
ศูนย์สนับสนุนและแบบทดสอบ
พบบั๊ก? แจ้งศูนย์แก้ปมปัญหาด่วน!
📝 ทดสอบความเข้าใจภารกิจที่ 3
ข้อ 1 / 3
โหลดคำถาม...
เยี่ยมมาก นวัตกร!
คุณทำแบบทดสอบภารกิจที่ 3 สำเร็จแล้ว
คะแนนของคุณ: 0 / 3
ลานสะท้อนคิด (Reflection)
การที่มนุษย์สามารถสื่อสารกับบอร์ดคอมพิวเตอร์ผ่านการพิมพ์ข้อความได้ จะนำไปสู่การสร้างนวัตกรรมอะไรได้บ้าง? สรุปแนวคิดเพื่อแบ่งปันกับเพื่อนๆ
กติกาชาวนวัตกร: ข้อตกลงร่วมกัน
1
ระบุตัวตนให้ชัดเจน: โพสต์ทุกครั้งต้องพิมพ์ "ชื่อ-สกุล และเลขที่" หรือ "ชื่อกลุ่ม" ที่หัวข้อเสมอ
2
โพสต์ให้ถูกคอลัมน์: อ่านชื่อคอลัมน์ภารกิจให้ดีก่อนกดเครื่องหมาย (+) เพื่อความเป็นระเบียบ
3
สื่อสารอย่างสร้างสรรค์: ใช้ถ้อยคำสุภาพ เน้นการชื่นชมและให้ข้อเสนอแนะเพื่อการพัฒนา
4
กล้าที่จะแบ่งปันความผิดพลาด: การเจอ "บั๊ก" ไม่ใช่เรื่องน่าอาย ความผิดพลาดของเราอาจช่วยเพื่อนกลุ่มอื่นได้