กลับไปหน้ารวมไฟล์
formula-1-start-lights-ecc664.md

Precision Logic Timing: ไฟสตาร์ท Formula 1

การทำให้ LED ติดดับตัวเดียวเนี่ยมันง่าย แต่โปรเจค Formula 1 Start Lights นี่แหละที่จะสอนให้น้องเห็นความซับซ้อนของ "Sequential State Timers" จัดเต็มเลย! มันจำลองลำดับไฟสตาร์ท 5 ดวงสุดคลาสสิกของ FIA ได้เป๊ะๆ โดยใช้ลูปซ้อนลูปและการคำนวณดีเลย์แบบสุ่ม เพื่อบังคับให้เกิดความท้าทายเรื่องเวลาตอบสนองที่คาดเดาไม่ได้

ลอจิกของอาร์เรย์แบบเรียงลำดับ

ในสนามจริง ไฟสตาร์ท F1 จะมีไฟสีแดงยักษ์ 5 ดวงติดทีละดวงทุกวินาที ก่อนจะดับพร้อมกันเพื่อเริ่มแข่ง

  1. The Array Method: แทนที่จะเขียน digitalWrite() 50 รอบ ให้เรากำหนดอาร์เรย์ของ integer ไปเลย: int lights[5] = {3, 4, 5, 6, 7};
  2. The Build-Up Loop: พอกรรมการกดปุ่ม "Start Sequence" ลูป for ก็จะทำงาน
    for (int i = 0; i < 5; i++) {
      digitalWrite(lights[i], HIGH);
      delay(1000); // รอเป๊ะๆ 1 วินาทีระหว่างไฟแต่ละดวง
    }
    
  3. ตอนนี้ไฟแดงทั้ง 5 ดวงก็จะสว่างจ้าเตรียมพร้อมแล้ว

ช่วงเวลาดับไฟแบบสุ่ม

ถ้าเวลาที่รอก่อนไฟดับ (Lights Out) จะเป็น 2 วินาทีเป๊ะๆ นักแข่งก็แค่นับ 1 2 แล้วออกตัวได้สบายๆ FIA เลยทำให้เวลานี้คาดเดาไม่ได้เลย (อยู่ระหว่าง 0.2 ถึง 3 วินาที)

  • The Random Seed: Arduino สร้างตัวเลขสุ่มเทียมโดยใช้ random(200, 3000);
  • (Pro Tip: ฟังก์ชัน random() ของ Arduino นี่ห่วยมาก มันจะให้ลำดับตัวเลขเดิมๆ เสมอ ต้องไป "เพาะเมล็ด" (seed) เครื่องมือสร้างตัวเลขสุ่มใน setup() ก่อน โดยอ่านค่าจากพินอนาล็อกที่ไม่ได้ต่ออะไร: randomSeed(analogRead(A0)); ถึงจะได้ค่าสุ่มจริงๆ)
  • ระบบจะรอเป็นเวลาสุ่มนั้น แล้วค่อยสั่งให้พินทั้ง 5 ตัวเป็น LOW พร้อมกันทันที เพื่อเริ่มการแข่งขัน!

Arduino จะสุ่มเลือกเวลาระหว่าง 4 ถึง 7 วินาทีเพื่อดับไฟ เหมือนในสนามจริงเป๊ะ!

สเปคการสร้างที่ต้องรู้

  • Arduino Uno/Nano: ตัวสร้างลำดับงานหลัก
  • โมดูล LED สีแดงยักษ์ 5 ตัว
  • โครงสร้างเสาไฟเหนือศีรษะ พิมพ์จากเครื่อง 3D Printer หรือทำจากไม้
  • (Optional Advanced Module: ติดเซ็นเซอร์ตัดแสงอินฟราเรด (IR break-beam sensors) บนพื้นล่างเสาไฟ ถ้ามีรถตัดแสงก่อนไฟดับ Arduino จะสั่งให้ธงเหลืองยักษ์ "Jump Start" ขึ้นทันที!)

สู้งานนะน้อง! ห้ามช็อตนะตัวนี้

ข้อมูล Frontmatter ดั้งเดิม

apps:
  - "1x Arduino IDE"
author: "BirdGuy"
category: "Games & Toys"
components:
  - "1x Resistor 10k ohm"
  - "5x 3 mm LED: Red"
  - "1x Tactile Switch, Top Actuated"
  - "5x Resistor 220 ohm"
description: "Lights out and away we go! Build a massive sequential racing gantry using high-power LEDs and accurate millimeter timing delays, perfectly recreating the adrenaline of a grand prix start."
difficulty: "Easy"
documentationLinks: []
downloadableFiles:
  - "https://projects.arduinocontent.cc/8d5d2f53-b8af-4c62-8c6d-31b9998a6bc7.ino"
  - "https://projects.arduinocontent.cc/8d5d2f53-b8af-4c62-8c6d-31b9998a6bc7.ino"
encryptedPayload: "U2FsdGVkX19Q1T4SS8SirbEn0cG1JFZcSpORjqyJ0opPrG1JYPcpkPON3aOUWMtu1FCveL9WoTvpinmOjS7d8ltY5yy+oXyeZe9KuU/pKiE="
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/formula-1-start-lights-ecc664_cover.jpg"
lang: "en"
likes: 4
passwordHash: "5f79c3a88f4cbf7b84ff38e19c4de53f1014b7d0b9e2becdd0499d0668e96238"
price: 699
seoDescription: "Build Formula 1 Start Lights using simple coding and LEDs. Simulate the official race start sequence with this Arduino project."
tags:
  - "formula"
  - "formula 1"
  - "formula one"
  - "start lights"
  - "f1"
title: "ไฟสตาร์ท F1 ตึงๆ จำลองสนามจริง!"
tools: []
videoLinks:
  - "https://www.youtube.com/embed/JvcVuyr3zfI"
views: 9391