ภารกิจที่ 3: Serial Communication

🕵️‍♂️ สายลับถอดรหัส (Serial Decoder)

🎯 จุดประสงค์การเรียนรู้: นักเรียนสามารถเขียนโปรแกรมเพื่อสร้างช่องทางการสื่อสารข้อมูลแบบ 2 ทาง (Two-way Communication) ระหว่างบอร์ดไมโครคอนโทรลเลอร์กับคอมพิวเตอร์ ผ่านหน้าต่าง Serial Monitor ได้

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

📌 สรุปหลักการสื่อสารแบบอนุกรม (Serial) และ Baud Rate
1. 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!");
    }
  }
}

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

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

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

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

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

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

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

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

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

การที่มนุษย์สามารถสื่อสารกับบอร์ดคอมพิวเตอร์ผ่านการพิมพ์ข้อความได้ จะนำไปสู่การสร้างนวัตกรรมอะไรได้บ้าง? สรุปแนวคิดเพื่อแบ่งปันกับเพื่อนๆ

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

1

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

2

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

3

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

4

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