ตอนที่ 4 วงจรไฟกระพริบ (Stm32)

ตอนที่ 4 : “ไฟที่คิดเองได้ — ควบคุม WS2812 ด้วย STM32”
ซีรีส์: From Blink to DMX — เส้นทางไฟกระพริบสู่ป้ายไฟ STM32
⚙️ 1. “เมื่อไฟเริ่มมีสมองของตัวเอง”
เปิดด้วยภาพ LED หลายดวงที่เปลี่ยนสีต่างกัน แม้ใช้สายเส้นเดียว
ถามผู้เรียนว่า
“ใครสั่งให้หลอดที่ 1 สีแดง แต่หลอดที่ 2 สีฟ้า ทั้งที่ใช้สายข้อมูลเส้นเดียว?”
คำตอบคือ — แต่ละหลอดมีไมโครคอนโทรลเลอร์เล็ก ๆ อยู่ข้างใน
WS2812 = LED + ไมโครคอนโทรลเลอร์ในตัว
สื่อสารด้วยสัญญาณดิจิทัลที่มีความแม่นยำระดับไมโครวินาที
ทุกดวง “รับข้อมูล” → “ตัดเอาของตัวเอง” → “ส่งต่อส่วนที่เหลือ”
กล่าวอีกอย่างคือ “ทุกหลอดรู้หน้าที่ของตัวเองในสายเดียวกัน”
💡 2. โครงสร้างและหลักการของ WS2812
🔹 2.1 โครงสร้างภายใน
3 LED (R, G, B) + 1 ไมโครคอนโทรลเลอร์ + 1 shift register
ขาสำคัญ:
VDD (5V)
GND
DIN (ข้อมูลเข้า)
DOUT (ส่งข้อมูลต่อ)
🔹 2.2 หลักการรับส่งข้อมูล
ข้อมูลเป็น สัญญาณความถี่สูง (800 kHz)
1 ดวง = 24 บิต (8 บิตต่อสี RGB)
สัญญาณ High/Low ใช้ความกว้างพัลส์แทน “1” และ “0”
T1H ≈ 0.8 µs
T0H ≈ 0.4 µs
หลังส่งครบ ต้องมี reset > 50 µs
ภาพแสดง “Timing Diagram” ของ WS2812
⚙️ 3. ความต่างของ “PWM ปกติ” กับ “Data PWM”
ลักษณะ PWM ปกติ WS2812 Signal
จุดประสงค์ ควบคุมความสว่าง ส่งข้อมูลดิจิทัล
ความถี่ 1–20 kHz 800 kHz
Duty Cycle สัมพันธ์กับแสง สัมพันธ์กับบิตข้อมูล
Output ต่อ LED ตรง ต่อเข้า WS2812
การ Sync ไม่จำเป็น ต้องแม่นยำระดับไมโครวินาที
นี่คือเหตุผลที่ WS2812 ต้องใช้ Timer + DMA ในการส่งสัญญาณ
เพราะ CPU ทำเองไม่ทัน
⚡ 4. วิธีที่ STM32 สื่อสารกับ WS2812
ใช้ “Timer Output Compare + DMA” เพื่อสร้างรูปคลื่นสัญญาณที่แม่นยำ
🔹 4.1 การสร้างสัญญาณด้วย Timer
กำหนดค่า Timer ให้ 1 รอบ = 1.25 µs (800 kHz)
ในแต่ละรอบใช้ค่า compare ต่างกันระหว่าง 0 และ 1
High 0.8 µs = “1”
High 0.4 µs = “0”
🔹 4.2 DMA ทำหน้าที่ส่งข้อมูลอัตโนมัติ
เตรียม buffer ขนาด 24 × N (จำนวนหลอด)
DMA ส่งค่า duty cycle ไปยัง CCRx ทีละบิต
Timer ทำหน้าที่ “ยิงสัญญาณ” ออกไปโดยอัตโนมัติ
ภาพ flow:
Memory (RGB Data)
DMA
Timer PWM
Data Line
WS2812 LEDs
🔹 5. โครงสร้างข้อมูลของไฟแต่ละดวง
ดวงที่ ข้อมูล (24-bit) ค่า (RGB)
1 11111111 00000000 00000000 แดง
2 00000000 11111111 00000000 เขียว
3 00000000 00000000 11111111 น้ำเงิน
เรียงต่อกันเป็น stream
LED ตัวแรกจะอ่านของตัวเอง แล้วส่งต่อส่วนที่เหลือ
🌈 6. การออกแบบ Pattern แบบ “ดิจิทัล”
Pattern ไม่ใช่แค่ “เปิด–ปิด” อีกต่อไป แต่คือ “การสั่งสีและจังหวะ”
🔹 ตัวอย่างแนวคิด
Chase RGB: สีไล่ตามตำแหน่ง
Rainbow Flow: ใช้ค่า hue เปลี่ยนต่อเนื่อง
Breathing Effect: ใช้ sine waveform บวก PWM
DMX Mapping: Channel 1–3 = RGB ของดวงที่ 1
ที่นี่เรากำลังขับ “Pixel LED” เหมือนในป้าย LED Billboard
⚙️ 7. ฮาร์ดแวร์ที่ควรรู้
STM32 (เช่น F103, F401, G0, F4 series)
WS2812 หรือ SK6812
Level Shifter 3.3V → 5V (เช่น 74AHCT125)
Power Supply 5V (คำนวณกระแส 60mA × จำนวนหลอด)
Capacitor 1000 µF / 6.3V ที่ขาไฟเพื่อกันสัญญาณกระชาก
🧩 8. แนวคิดการต่อยอด
แนวคิด การประยุกต์
Pattern + Timing เอฟเฟกต์ไฟไล่แสง
PWM + DMA ควบคุมสีแบบลื่นไหล
WS2812 ระบบไฟพิกเซล
DMX Mapping เชื่อมกับคอนโทรลเลอร์ภายนอก
Art-Net / WiFi ควบคุมผ่านเครือข่าย
💡 9. Workshop แนวคิด (ไม่ลงโค้ด)
“Rainbow Wave” → สีวิ่งวนรอบสายไฟ
“Knight Rider RGB” → แสงวิ่งไปกลับ
“Breathing Color” → ค่อย ๆ เปลี่ยนโทนสีไปเรื่อย ๆ
🎬 10. ปิดท้ายตอน
“วันนี้เราไม่ได้แค่ควบคุมไฟ — เรากำลังควบคุมข้อมูลที่กลายเป็นแสง”
และนี่คือจุดเริ่มต้นของระบบ DMX Pixel, Art-Net, และ LED Display ที่ใช้หลักเดียวกัน
ตอนหน้า เราจะเชื่อม “ข้อมูลแสง” เข้ากับ DMX512
เพื่อควบคุมไฟจากภายนอก — และทำให้ STM32 ของเรากลายเป็น DMX Controller ตัวจริง!
🔖 Key Learning Summary
หัวข้อ สิ่งที่ได้เรียนรู้
WS2812 Structure เข้าใจหลักการไฟดิจิทัล
Data Timing การส่งสัญญาณระดับไมโครวินาที
DMA + Timer พื้นฐานระบบส่งข้อมูลความเร็วสูง
RGB Pattern ออกแบบเอฟเฟกต์ไฟ
Next Step เชื่อมกับ DMX512 / Art-Net

ตอนที่ 3 วงจรไฟกระพริบ (Stm32)

ตอนที่ 3 : “แสงที่มีชีวิต — การหรี่ไฟ (PWM) และจังหวะแสงด้วย DMA”
ซีรีส์: From Blink to DMX — เส้นทางไฟกระพริบสู่ป้ายไฟ STM32
จากตอนที่ 1: “ไฟกระพริบคือสัญญาณเวลา”
ตอนที่ 2: “ไฟวิ่งคือการควบคุมลำดับ”
ตอนนี้: “ไฟที่หรี่ขึ้นลงได้ คือการควบคุมระดับพลังงาน”
ถ้าเข้าใจตอนนี้ได้ — คุณจะสามารถ “ออกแบบอารมณ์ของแสง” ได้ทุกแบบ ไม่ว่าจะเป็นไฟวิ่ง, fade, หรือไฟระเบิด
🔹 1. บทนำ — “จากจังหวะ...สู่ความนุ่มนวล”
เปิดด้วยภาพไฟค่อย ๆ สว่างขึ้นและค่อย ๆ ดับลง (fade in/out)
ถามผู้เรียนว่า
“ทำไมไฟนี้ดูนุ่มกว่าไฟที่แค่เปิด–ปิด?”
คำตอบ: เพราะเราควบคุม “ปริมาณพลังงานเฉลี่ย” ที่ส่งให้ LED ด้วย PWM
⚙️ 2. หลักการของ PWM — Pulse Width Modulation
PWM = การเปิด–ปิดสัญญาณความเร็วสูง เพื่อสร้างค่าเฉลี่ยของพลังงาน
🔹 2.1 ภาพกราฟพื้นฐาน
Duty Cycle 25% = หรี่
Duty Cycle 50% = กลาง
Duty Cycle 100% = สว่างเต็ม
ความถี่ของ PWM จะสูงจนตาเรามองไม่เห็นการกระพริบ (โดยทั่วไป > 1kHz)
🔹 2.2 PWM ไม่ได้เปลี่ยนแรงดัน แต่เปลี่ยน “เวลาที่เปิด”
MCU ไม่สามารถ “ปรับแรงดันได้โดยตรง” แต่ปรับ “ช่วงเวลาที่เปิดขา” แทน
ภาพอธิบาย:
MCU → Timer → PWM Generator → MOSFET → LED
🔹 3. PWM ใน STM32 — แสงที่ MCU ขับเองได้
STM32 มี Timer ที่สร้างสัญญาณ PWM ได้โดยไม่ต้องใช้ CPU
🔹 3.1 โครงสร้างของ Timer PWM
Timer Count → Compare → Output toggle
Duty cycle = (CCR / ARR) × 100%
ภาพแสดงโครงสร้าง TIMx_CHx
PWM คือผลของการ “จับจังหวะ” ระหว่าง Counter และ Compare
🔹 3.2 การเชื่อมต่อ
STM32 → ขา TIMx_CHx → LED / Driver
ใช้ hardware timer เพื่อสร้างสัญญาณไฟฟ้า
ปรับ CCRx เพื่อควบคุมความสว่าง
🔹 4. จาก PWM → แสงเคลื่อนไหว (Fade / Wave)
เมื่อเราเปลี่ยน Duty Cycle ตามเวลา — เราได้แสงที่เคลื่อนไหว
🔹 4.1 แนวคิด Fade
CCR เพิ่มจาก 0 → MAX → 0 (แบบ sine หรือ linear)
ใช้ Timer interrupt หรือ DMA เพื่อปรับค่าอัตโนมัติ
🔹 4.2 การสร้างรูปคลื่นของแสง
รูปคลื่น ความรู้สึก
Sine wave นุ่มนวล มีชีวิต
Triangle เป็นจังหวะ
Square ดุดัน เร็วแรง
Random อิสระ
ภาพเปรียบเทียบ waveform → light pattern
🔹 5. การใช้ DMA — ทำให้แสง “เคลื่อนไหวเอง”
DMA = Direct Memory Access = “ระบบส่งค่าความสว่างอัตโนมัติไปยัง Timer โดยไม่ใช้ CPU”
🔹 5.1 หลักการ
เตรียม array ของค่า PWM (duty cycle) เช่น [0, 10, 20, 30, …]
DMA จะส่งค่าเหล่านี้ไปยัง CCRx ทุกครั้งที่ Timer ถึงจังหวะ
แสงจึงเปลี่ยนความสว่างอัตโนมัติ
🔹 5.2 ผลลัพธ์
Fade ลื่นไหล
CPU ว่างไปทำงานอื่น (เช่น สื่อสาร หรือ DMX)
สามารถสร้าง “pattern ของแสงแบบ wave” ได้
ภาพแสดง flow:
Memory → DMA → Timer Compare → PWM Output
🔹 6. การผสมผสาน PWM หลายช่อง
ระบบไฟจริงมีหลายสี หลายช่อง (RGB, RGBW)
🔹 6.1 RGB PWM Concept
R, G, B แต่ละช่องมี PWM แยก
การรวมค่า duty cycle = การผสมสี
R=255, G=0, B=0 → สีแดง
R=255, G=255, B=0 → เหลือง
R=128, G=0, B=255 → ม่วง
ภาพ: Cube RGB ที่เปลี่ยนสีแบบ smooth
🔹 6.2 การซิงค์หลายช่องด้วย DMA
Timer หลัก sync PWM ทุก channel
DMA ควบคุม duty cycle ของแต่ละสีพร้อมกัน
ทำให้เกิด “animation ของสี” ที่นุ่มนวล
🔹 7. จากแสง 1 ดวง สู่ไฟ RGB หลายร้อยดวง
นี่คือพื้นฐานของการสร้างไฟ DMX fixture
ไฟ RGB 1 ดวง = 3 PWM
ไฟ RGB 100 ดวง = 300 PWM (ในระบบจริงใช้ driver IC หรือ WS2812)
ถ้าเข้าใจ PWM + DMA → คุณเข้าใจ “หัวใจของ WS2812 และ DMX” แล้ว
🧩 8. แนวคิดต่อยอด
แนวคิด การประยุกต์
PWM Linear หรี่ไฟธรรมดา
PWM Sine เอฟเฟกต์นุ่มนวล
DMA Waveform Motion Lighting
RGB PWM ระบบสี
DMA Matrix LED Display / DMX Pixel
💡 9. Workshop (แนวคิดไม่ลงโค้ด)
แสงหรี่ขึ้นลงเอง (fade in/out)
ไฟ RGB ค่อย ๆ เปลี่ยนสีเป็นสีรุ้ง
สร้าง waveform ด้วย DMA แล้วปล่อยให้ MCU ทำงานอัตโนมัติ
ใช้เพียง 1 Timer + 1 DMA ก็สามารถสร้างแสงที่ดูเหมือน “มีชีวิต” ได้
“วันนี้เราไม่ได้แค่เปิดไฟ — เราสร้างชีวิตให้แสง”
ตอนหน้า…เราจะนำพลังของ PWM และ DMA ไปขับ LED ดิจิทัล (WS2812) เพื่อให้ไฟแต่ละดวงมีสมองของมันเอง — และนี่คือจุดเริ่มต้นของ “Smart Lighting”
🔖 สรุป Key Learning
หัวข้อ สิ่งที่เข้าใจ
PWM Concept การหรี่แสงด้วยการควบคุมเวลา
STM32 Timer เครื่องมือสร้างจังหวะไฟ
DMA ทำให้แสงเคลื่อนไหวอัตโนมัติ
RGB Mixing พื้นฐานของไฟสี
ต่อยอด DMX, WS2812, LED Panel

ตอนที่ 2 วงจรไฟกระพริบ (Stm32)

ตอนที่ 2 : “ไฟวิ่งจังหวะชีวิต — Pattern และ Timing”
ซีรีส์: From Blink to DMX — เส้นทางไฟกระพริบสู่ป้ายไฟ STM32
🧩“เมื่อไฟเริ่มเต้นตามจังหวะ”
“ไฟทั้งหมดนี้เกิดจากอะไร?”
คำตอบคือ “เวลาและลำดับ”
ทุกไฟที่วิ่ง ล้วนเกิดจากการ จัดลำดับการเปลี่ยนสถานะ ของหลาย ๆ ขา (GPIO) ตามเวลาที่ออกแบบไว้
นี่คือ “ศิลปะของ Timing” ที่เราจะใช้ต่อยอดไปยังทุกระบบไฟ
⚙️ 2. จากไฟกระพริบ → ไฟวิ่ง
เริ่มด้วยแนวคิด "Parallel Output Control"
🔹 2.1 หลักคิดของไฟวิ่ง (Running Light Logic)
ไฟแต่ละดวงคือ Bit หนึ่งในชุดข้อมูล (เช่น 8-bit pattern)
เมื่อเราขยับ “บิตที่ติดอยู่” จากซ้ายไปขวา = ไฟวิ่ง
ยกตัวอย่าง Pattern 8 ดวง:
00000001
00000010
00000100
00001000
00010000
00100000
01000000
10000000
แสดงภาพ Animation เพื่อให้เห็นลำดับ
จุดสำคัญคือ — “ทุก pattern คือข้อมูล”
นั่นหมายความว่าไฟกระพริบคือการ แสดงข้อมูลออกมาด้วยแสง
🔹 2.2 การเก็บ Pattern ในหน่วยความจำ
อธิบายแนวคิด “Array ของ pattern”
ตัวอย่างเช่น (ไม่ต้องลงโค้ด):
uint8_t pattern[] = {0b00000001, 0b00000010, ...};
นี่คือพื้นฐานของการสร้างเอฟเฟกต์แบบโปรแกรมได้ (Lighting Sequence)
🔹 2.3 การสั่งจังหวะ
ถ้าเราใช้ delay → จะได้ไฟวิ่งธรรมดา
ถ้าใช้ Timer Interrupt → เราสามารถ “สั่งหลายชุดพร้อมกัน”
ภาพอธิบายว่า MCU ใช้ Timer เป็น “เครื่องกำหนดจังหวะหลัก”
Timer 1 = ไฟวิ่งหลัก
Timer 2 = การกระพริบเสริม
Timer 3 = เอฟเฟกต์เฉพาะจังหวะ
นี่คือจุดเริ่มต้นของ “Lighting Timeline Engine”
⏱️ 3. การสร้างจังหวะและความรู้สึกของแสง
ไฟที่ดีไม่ใช่แค่กระพริบเร็ว–ช้า แต่ต้อง “เต้นเป็นจังหวะ”
🔹 3.1 ความสัมพันธ์ของเวลาและอารมณ์
ความถี่ไฟกระพริบ ความรู้สึกที่เกิดขึ้น
0.5 – 1 Hz ผ่อนคลาย, จังหวะสบาย ๆ
2 – 5 Hz เร้าใจ, มีพลัง
8 – 12 Hz ตื่นเต้น, รุนแรง (ใช้ในคอนเสิร์ต)
นำเสนอผ่านกราฟ + ตัวอย่างแสงจริง
🔹 3.2 การซิงค์กับดนตรี
แนวคิดการ “อ่านจังหวะเพลง” แล้วขับไฟตาม beat (Beat detection)
ปูแนวคิดไปยังตอนต่อไปที่จะเชื่อมกับ ADC และ Signal Processing
“ในโลกจริง แสงไม่ได้ถูกสั่งแค่จากโค้ด แต่จากจังหวะของเสียงและอารมณ์”
⚡ 4. Hardware ที่อยู่เบื้องหลังไฟวิ่ง
🔹 4.1 ขยายจาก GPIO ไปสู่การขับโหลดจริง
จาก LED บนบอร์ด → LED ภายนอก
ใช้ Transistor / MOSFET / Driver IC (ULN2003, TPIC6B595 ฯลฯ)
ภาพวงจรตัวอย่าง: STM32 → MOSFET → LED bar
🔹 4.2 การป้องกันโหลดและแหล่งจ่ายไฟ
พูดถึงเรื่อง Power supply
การแยกกราวด์, Flyback diode ถ้าเป็นโหลดเหนี่ยวนำ
ปูแนวคิด “ระบบไฟเวทีต้องทน”
🌈 5. การออกแบบ Pattern ที่น่าสนใจ
"จังหวะของแสง" = "การเล่าเรื่องด้วยไฟ"
🔹 5.1 รูปแบบพื้นฐาน
Chase (วิ่ง)
Ping-Pong (วิ่งไป–กลับ)
Fade In/Out (PWM)
Random Blink (สุ่มแบบมีศิลป์)
🔹 5.2 การสร้าง Pattern หลายชั้น (Layering)
Layer 1 = Pattern หลัก (Chase)
Layer 2 = Effect Overlay (Pulse, Fade)
Layer 3 = Trigger จากปุ่ม / Sensor
“นี่คือแนวคิดของ Lighting Engine ที่มืออาชีพใช้”
🧠 6. แนวคิดขยายผล — สู่ระบบ DMX และ LED Matrix
ไฟวิ่งบน 8 ดวง = Pattern 8 Bit
แต่ไฟ 512 ดวง = Pattern 512 Channel (DMX 1 Universe)
ความเข้าใจ Pattern และ Timing ตอนนี้
→ คือก้าวแรกสู่การ Mapping DMX
“วันนี้เราควบคุมไฟ 8 ดวงได้ พรุ่งนี้เราจะควบคุมไฟ 8,000 ดวงด้วยหลักการเดียวกัน”
📘 สรุป Key Learning
หัวข้อ สิ่งที่ได้เรียนรู้
Logic ของไฟวิ่ง การจัดลำดับบิตและเวลา
Timer Concept สร้างจังหวะแบบไม่ blocking
Hardware Driver ขยายสัญญาณออกสู่โลกจริง
Pattern Design สร้างเอฟเฟกต์ที่มีอารมณ์
Vision การต่อยอดสู่ระบบ DMX / Matrix
“ตอนหน้า เราจะเปลี่ยนไฟที่วิ่งให้มีชีวิต
ด้วยการควบคุมความสว่างแบบต่อเนื่อง (PWM) และการใช้ DMA ของ STM32 เพื่อสร้างไฟที่หรี่ขึ้นลงได้อย่างนุ่มนวล — เหมือนแสงจริงในโลกเวที”

ตอนที่ 1 วงจรไฟกระพริบ (Stm32)

ตอนที่ 1: จุดเริ่มต้นไฟกระพริบ — Blink STM32
🔧 ซีรีส์: From Blink to DMX — เส้นทางไฟกระพริบสู่ป้ายไฟ STM32
🎯 เป้าหมายของตอนนี้
เข้าใจ “หลักการเบื้องหลังไฟกระพริบ”
และมองเห็นว่าไฟ 1 ดวงสามารถต่อยอดเป็นระบบไฟขนาดใหญ่ได้อย่างไร
โดยไม่จำเป็นต้องเขียนโปรแกรมมาก — แต่เข้าใจ “กลไกที่อยู่เบื้องหลังแสง”
📚 โครงสร้างคอนเทนต์ตอนที่ 1
🧩 1. บทนำ — ไฟกระพริบคือจุดเริ่มต้นของทุกอย่าง
เริ่มด้วยคำถามชวนคิด:
“ไฟ 1 ดวงกระพริบ มีความหมายแค่ไหนในโลกวิศวกรรม?”
อธิบายว่าไฟกระพริบ = สัญลักษณ์ของชีวิตในระบบอิเล็กทรอนิกส์
มันคือ “heartbeat” ของวงจร
ใช้ตรวจชีพจร MCU (boot, alive, error, signal)
คือระบบ logic + timing ที่จับต้องได้
เชื่อมโยงกับสิ่งที่ใหญ่กว่า:
จากไฟ 1 ดวง → แถบไฟ LED → ระบบแสงเวที → ป้าย LED Billboard → ระบบ DMX
⚙️ 2. แนวคิดพื้นฐานของการ “ทำให้ไฟกระพริบ”
ไม่ใช่การ “เขียนโค้ด delay()” — แต่คือ “การควบคุมเวลาและพลังงาน”
🔹 2.1 วงจรพื้นฐานของ LED
ไฟ LED ไม่ใช่แค่หลอดไฟ แต่คือ อุปกรณ์เปลี่ยนพลังงานไฟฟ้าเป็นแสง
อธิบาย โครงสร้างไฟ LED (ไดโอด → ขั้ว Anode/Cathode → แรงดันตกคร่อม Vf)
แสดงภาพกราฟ I–V (current–voltage curve)
หลักคิด “ถ้าไม่มีตัวต้านทาน ไฟก็พัง” — นำสู่ concept “การควบคุมกระแส”
🔹 2.2 การควบคุมไฟด้วยสวิตช์ไฟฟ้า
อธิบายด้วยภาพว่า MCU คือ “สมองที่สั่งสวิตช์”
สวิตช์จริงมี 3 แบบหลัก:
Manual Switch → คนกด
Transistor / MOSFET → อิเล็กทรอนิกส์กดแทน
Digital Output (GPIO) → MCU กดตามสัญญาณ logic
🔹 2.3 สัญญาณดิจิทัลคืออะไร
อธิบาย High / Low = 1 / 0
Pulse Train คือหัวใจของ “ไฟกระพริบ”
ภาพ waveform: On 500 ms / Off 500 ms = 1 Hz
นำเข้าสู่แนวคิด “Timing คือศิลปะของแสง”
⏱️ 3. การควบคุมเวลา — หัวใจของการกระพริบ
“เวลา” คือทรัพยากรสำคัญที่สุดในระบบไมโครคอนโทรลเลอร์
🔹 3.1 Delay vs Timer
อธิบายความต่างของ delay() (blocking) และ Timer (non-blocking)
ยกตัวอย่าง:
delay() = “รอเฉย ๆ”
timer interrupt = “ตั้งนาฬิกา แล้วให้มันเตือนเมื่อถึงเวลา”
ภาพเปรียบเทียบ 2 แบบนี้
🔹 3.2 สัญญาณ PWM — การสร้างแสงที่ “ไม่แค่เปิด–ปิด”
แนะนำแนวคิด PWM (Pulse Width Modulation)
duty cycle 25%, 50%, 75%, 100%
กราฟ waveform + ภาพ LED หรี่แสง
วางพื้นฐานให้ตอนต่อไป (ตอน 3)
🔌 4. STM32 กับการควบคุม LED
“ไฟกระพริบไม่ใช่โค้ด แต่คือฮาร์ดแวร์ที่เต้นตามเวลา”
🔹 4.1 GPIO Output
แสดงโครงสร้าง pin STM32 → Port → Register
concept “เปิดขาให้เป็น output แล้วเขียน logic ลงไป”
ภาพ block diagram: CPU → GPIO driver → LED
🔹 4.2 การใช้ Timer ของ STM32
ยกตัวอย่าง TIM2, TIM3
แสดงแนวคิด prescaler / ARR / interrupt
ภาพโฟลว์:
Timer นับ →
ถึงค่า reload →
Trigger event →
Toggle LED
🔹 4.3 ความแม่นยำและการต่อยอด
ความถี่กระพริบ 1 Hz ของ MCU อาจไม่เท่ากับของ DMX เพราะ DMX ต้อง precise timing
นำเข้าสู่แนวคิด “Precision Timing”
🌈 5. จากไฟ 1 ดวง สู่ไฟล้านดวง
ปิดตอนด้วยภาพใหญ่ — แสดงเส้นทางการต่อยอด
🔹 5.1 Scaling Up
LED 1 ดวง = 1 output
8 ดวง = 8 bits (parallel)
100 ดวง = multiplexing
1000 ดวง = shift register / serial driver
10000+ ดวง = pixel mapping + DMA + network
🔹 5.2 เส้นทางพัฒนา
ระดับ เทคโนโลยีที่เกี่ยวข้อง
Beginner GPIO, delay, PWM
Intermediate DMA, Timer, WS2812
Advanced HUB75, DMX512, Art-Net
Pro LED Controller, Sync System
🔹 5.3 แรงบันดาลใจ
“ไฟ 1 ดวงที่กระพริบวันนี้ คือจุดเริ่มต้นของระบบไฟเวทีระดับโลกในวันหน้า”
🧠 สรุป Key Learning
หัวข้อ สิ่งที่ผู้เรียนได้
หลักการไฟกระพริบ เข้าใจ logic, timing, และการควบคุมพลังงาน
GPIO ของ STM32 เห็นภาพโครงสร้างการสั่งขา
Timer & Interrupt เข้าใจการสร้างจังหวะโดยไม่ใช้ delay
วิวัฒนาการ จาก LED หนึ่งดวง → ระบบไฟขนาดใหญ่
“ตอนหน้า — เราจะเปลี่ยนไฟกระพริบธรรมดาให้กลายเป็นแสงที่เคลื่อนไหวอย่างมีจังหวะ
รู้จักกับ Timer Interrupt และการสร้าง Pattern แบบมืออาชีพ”
Free Joomla templates by Ltheme