| R_pu | กระแสตอนกด | ความเร็วขอบ (τ=R×10pF) | แรงดันตกจากรั่ว 1 µA |
|---|---|---|---|
| 1 kΩ | 3.3 mA (เปลือง) | 10 ns | 1 mV |
| 10 kΩ | 0.33 mA | 100 ns | 10 mV |
| 100 kΩ | 33 µA | 1 µs | 0.1 V |
| 1 MΩ | 3.3 µA | 10 µs | 1 V (เหลือ 2.3 V < V_IH) |
10 kΩ เป็นค่าที่ใช้กันมากที่สุด — ช่วงราว 4.7 kΩ ถึง 47 kΩ ปลอดภัยทุกด้าน
ตัวต้านทาน 1 kΩ อนุกรมที่ขา ไม่จำเป็นต่อการทำงาน แต่เป็นประกัน — ถ้าโปรแกรมเผลอตั้งขาเป็นขาออกแล้วมีคนกดปุ่ม จำกัดกระแสไม่เกิน 3.3 mA
หลักเลือกเวลากันเด้งจากข้อมูล วัดหลายครั้ง (≥10–20) หาค่าที่นานที่สุด แล้วคูณเผื่อ 2–3 เท่า
1. วงจร 3V3 → R_pu 10 kΩ → BTN_N → ปุ่ม → GND และ BTN_N → 1 kΩ → P13.0
2. กระแสตอนกด 3.3 V / 10 kΩ = 0.33 mA กำลัง = 1.09 mW
3. ระดับที่ขาเห็น ปล่อย: 3.3 V กด: 0 V ห่างจาก V_IH และ V_IL มาก
4. ข้อมูลการเด้ง (ตัวอย่าง วัด 10 ครั้ง, ms)
0.2 0.4 1.6 0.3 0.9 0.1 2.4 0.5 0.7 1.1
ค่ามากที่สุด = 2.4 ms
5. เลือกเวลากันเด้ง 2.4 ms × 3 = 7.2 ms → ปัดเป็น 10 ms
6. ตรวจกับโค้ด อ่านทุก 5 ms ยอมรับเมื่อค่าเดิมต่อเนื่องสองรอบ ≈ 10 ms ตรงตามที่เลือก
ฝึกเติม
แล็บ ส่วน A ทดลองขาลอยกับขาที่มี pull-up — ไม่ใส่ R_pu แตะสาย BTN_N ด้วยนิ้ว จดว่าบิตเปลี่ยนกี่ครั้ง แล้วใส่ R_pu 10 kΩ ทำซ้ำ
แล็บ ส่วน B วัดการเด้งด้วย logic analyzer — ต่อ CH0 เข้า BTN_N, sample rate ≥ 1 MHz, trigger ที่ขอบขาลง วัดอย่างน้อย 10 ครั้งตอนกดและปล่อย
ขาเข้าที่ไม่ได้ต่ออะไรและไม่ได้เปิด pull-up หรือ pull-down อ่านได้ 0 นิ่งตลอดการทดสอบ ข้อสรุปใดถูกต้อง
ปุ่มต่อจากขาลง GND และมี pull-up 10 kΩ ไป 3.3 V เมื่อกดปุ่ม ขาอ่านได้อะไร และมีกระแสผ่าน pull-up เท่าไร
วัดการเด้งของปุ่มได้ 0.3, 0.5, 2.8, 0.4 และ 1.0 ms ควรเลือกเวลากันเด้งเท่าไร
โมดูลถัดไปเริ่มที่ วัดแรงดันและความต่อเนื่อง — ใช้มัลติมิเตอร์ให้คล่องและปลอดภัย
"อิเล็กทรอนิกส์และเครื่องมือวัดสำหรับนักพัฒนาระบบฝังตัว" จาก TESA Open Knowledge โดยสมาคมสมองกลฝังตัวไทย
(Thai Embedded Systems Association: TESA) https://github.com/tesaiot/tesa-qualification-program
สัญญาอนุญาต CC BY-NC 4.0
แผนภาพในบทเรียนนี้เป็นงานวาดของหลักสูตรนี้เอง (CC BY-NC 4.0)
TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · CC BY-NC 4.0