0Pricing
Arduino & IoT Academy · บทเรียน

ทำไม delay() จึงบล็อกทุกอย่าง

ดูว่าการหยุดรอทำให้บอร์ดหยุดตอบสนองอย่างไร

ทำไม delay() จึงบล็อกทุกอย่าง เป็นบทเรียน Arduino & IoT Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Arduino & IoT Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Arduino & IoT Academy มีบทเรียนทั้งหมด 4 บทเรียน

บางส่วนของบทเรียนนี้ยังไม่ได้รับการแปล และแสดงเป็นภาษาอังกฤษ

The Easy Pause

The delay function pauses your sketch for a set number of milliseconds. It is the simplest way to slow things down and make a blink visible.

delay(1000);

What 1000 Means

delay(1000) waits one full second, since the value is in milliseconds. So delay(500) is half a second and delay(2000) is two seconds.

It Freezes the Board

The catch: delay freezes everything. While it waits, your board does nothing else at all, like a person holding their breath. 😮

Missed Button Presses

During a delay your board cannot notice a button press. Tap it mid-pause and the press is simply ignored, which feels broken to a user.

See the Problem

Here a one-second delay sits between the checks, so any press in that whole second is lost before the next read happens.

digitalRead(buttonPin);
delay(1000);

Only One Task at a Time

Because delay blocks, you cannot blink an LED and watch a sensor at the same time. The whole sketch waits as one task.

Stacked Delays Add Up

Two delay calls in a row simply add together. Spread several around and your board spends most of its life frozen and unresponsive.

Fine for Simple Sketches

delay is not evil. For a single blinking LED with nothing else going on, it is perfectly clear and totally fine to use.

The Real Goal

The real goal is a non-blocking sketch that keeps reacting while it also times events. That means never freezing the loop with a long pause.

Think About Time Instead

Instead of pausing, you can ask how much time has passed and act only when enough has gone by. The loop keeps spinning meanwhile.

A Better Tool Is Coming

Soon you will meet millis, a clock that lets you measure elapsed time without freezing. It is how real projects stay responsive.

Quick Check

What is the main drawback of using delay in a sketch?

Recap

You saw that delay is simple but freezes the board, missing inputs and blocking other tasks. Next you will time events without stopping the loop. ✨

คำถามที่พบบ่อย

บทเรียน “ทำไม delay() จึงบล็อกทุกอย่าง” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “ทำไม delay() จึงบล็อกทุกอย่าง” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Arduino & IoT Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Arduino & IoT Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “ทำไม delay() จึงบล็อกทุกอย่าง”

ดูว่าการหยุดรอทำให้บอร์ดหยุดตอบสนองอย่างไร คุณปฏิบัติ Arduino & IoT Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Arduino & IoT Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Arduino & IoT Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “ทำไม delay() จึงบล็อกทุกอย่าง” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Arduino & IoT Academy นี้ได้ไหม

ได้ บทเรียน Arduino & IoT Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. int, float, bool บน Arduino
  2. ทำไม delay() จึงบล็อกทุกอย่าง
  3. ทำไฟกะพริบโดยไม่ใช้ delay ด้วย millis
  4. ทำงานสองอย่างพร้อมกัน
← กลับไปที่ Arduino & IoT Academy