ชื่อโปรเจกต์: การอ่านค่า Input ด้วย Pull Up & Pull Down แบบฉบับรุ่นพี่จัดให้
อันนี้คือ Demo พื้นฐานในการใช้ [Arduino](https://s.shopee.co.th/7fUgFAWSki) อ่านค่า Input นะน้อง เดี๋ยวพี่จะอธิบายเรื่อง Pull up กับ Pull down ให้เข้าใจแจ่มแจ้ง จะได้ไม่ไปทำบอร์ดช็อตที่ไหน ในนี้มีปุ่มกด (Switch) 2 อัน ต่อเอาไว้คุม LED 2 ดวงแบบหล่อเท่เลยวัยรุ่น
เจาะลึกดีเทลแบบวิศวะ (จะได้ไม่มั่ว)
พื้นฐาน Logic แบบไม่ลอย (Floating)
บทเรียนนี้จะพาไปดูเรื่องไฟฟ้าที่โคตรสำคัญ ถ้าอยากอ่านค่าจากปุ่มหรือสวิตช์ให้แม่นๆ แบบไม่เอ๋อด้วย Microcontroller น้องต้องเข้าใจจุดนี้:
- การจัดการ Internal Pull-Up: พี่จะสอนวิธีใช้ Resistor ขนาด 20kΩ-50kΩ ที่มันมีแถมมาให้ข้างในตัว Arduino อยู่แล้ว แค่เราเซ็ตโหมด
INPUT_PULLUPในโค้ดก็จบเลย! มันจะช่วยดึงให้ขา Digital ของเราอยู่ที่สถานะ LogicHIGH(3.3V/5V) ตลอดเวลาที่เรา ไม่ได้ กดปุ่ม ป้องกันอาการค่า "Floating" หรือค่าแกว่งที่เกิดจากสัญญาณรบกวนรอบข้าง ห้ามลืมเชียวนะตัวนี้ - วิเคราะห์วงจร Pull-Down: อันนี้เราจะใช้ Resistor 10kΩ ต่อแยกข้างนอกเพื่อดึงขา Pin ลง GND (Logic
LOW) ไว้ก่อน พอเรากดปุ่มปุ๊บ Firmware ของเราก็จะอ่านค่าได้เป็นHIGHทันที เหมาะมากสำหรับน้องที่อยากเรียนรู้การต่อวงจร Pull-down แบบมาตรฐานสากล
การเอาไปใช้งานจริง
- จัดการสัญญาณรบกวน (Software Debounce): พี่แถม Code Snippet ที่จะช่วยสั่งข้ามสัญญาณกากๆ ที่สั้นกว่า 50ms ทิ้งไป เพื่อให้มั่นใจว่าพอน้องกดปุ่มทางกล (Mechanical) ไปหนึ่งที มันจะได้ผลลัพธ์เป็น Digital Event เดียวเน้นๆ ไม่เด้งรัวๆ ให้ปวดตับ จัดไปวัยรุ่น!