เดโมนี้เหมาะกับคอมพิวเตอร์ บนมือถือใช้ได้แต่พื้นที่แคบ · This demo is best on a computer; it works on a phone but the workbench is cramped.

skillsiot

เปิดกับปิด และสองฟังก์ชันที่ทุกโปรแกรมต้องมี

setup() ทำงานครั้งเดียวตอนเริ่ม ส่วน loop() ทำซ้ำไม่รู้จบ ความต่างสองบรรทัดนี้อธิบายพฤติกรรมเกือบทุกอย่างที่คุณจะเจอต่อจากนี้

ในบทนี้คุณจะ

  • อธิบายได้ว่า setup() กับ loop() ต่างกันอย่างไร
  • ใช้ pinMode และ digitalWrite สั่งไฟให้ติดค้าง
  • บอกได้ว่าทำไมโค้ดใน setup() ถึงไม่ทำซ้ำ

1. โปรแกรมบนบอร์ดไม่เคยจบ

โปรแกรมบนคอมพิวเตอร์เปิดแล้วปิดได้ แต่โปรแกรมบนไมโครคอนโทรลเลอร์ทำงานไปเรื่อยจนกว่าจะตัดไฟ โครงสร้างจึงมีสองส่วน: setup() คือสิ่งที่ทำครั้งเดียวตอนเริ่ม และ loop() คือสิ่งที่ทำซ้ำตลอดไป

2. บอกก่อนว่าขานี้ทำหน้าที่อะไร

pinMode(13, OUTPUT) คือการบอกบอร์ดว่าขา 13 จะเป็นขาส่งออก ไม่ใช่ขารับเข้า ถ้าไม่บอก บอร์ดจะยังถือว่าเป็นขารับ และ digitalWrite จะไม่ได้ผลอย่างที่คิด นี่คือบรรทัดที่มือใหม่ลืมบ่อยที่สุด

3. ลองเอง: ให้ไฟติดค้าง

ใส่ pinMode และ digitalWrite(13, HIGH) ไว้ใน setup() แล้วปล่อย loop() ว่าง ไฟจะติดค้างไว้ เพราะไม่มีอะไรมาสั่งให้ดับ นี่คือหลักฐานว่า setup() ทำงานจริงและทำแค่ครั้งเดียว

ตรวจความเข้าใจ

ถ้าย้าย digitalWrite(13, HIGH) ไปไว้ใน loop() แทน จะเห็นความต่างไหม

ลงมือทำ

ลงมือทำ

ทำให้ไฟบนบอร์ดติดค้างไว้ ไม่ใช่กะพริบ เขียนคำสั่งไว้ใน setup() แล้วปล่อย loop() ว่าง

เริ่มแล็บใน StudioStudio จะเปิดวงจรเริ่มต้นของบทนี้ พร้อมคำใบ้ เฉลย และการตรวจคำตอบจากค่าที่วัดได้