ทำไมกดแล้วได้ LOW
ขาที่ไม่มีอะไรต่ออยู่ไม่ได้เป็นศูนย์ มันลอย และตัวต้านทานดึงขึ้นคือสิ่งที่ทำให้ค่าแน่นอน
ในบทนี้คุณจะ
- อธิบายว่าขาลอยต่างจากขาที่เป็นศูนย์อย่างไร
- บอกหน้าที่ของตัวต้านทานดึงขึ้นภายใน
- อ่านตรรกะแบบ active-low ได้โดยไม่สับสน
1. ขาลอยไม่ได้แปลว่าศูนย์
ขาที่ไม่ได้ต่ออะไรเลยจะรับสัญญาณรบกวนจากรอบตัว อ่านค่าได้เดี๋ยวสูงเดี๋ยวต่ำแบบสุ่ม ในตัวจำลองนี้จะรายงานว่าเป็นค่าไม่แน่นอน ไม่ใช่แกล้งบอกว่าเป็นศูนย์
2. ตัวต้านทานดึงขึ้นทำให้มีคำตอบเสมอ
INPUT_PULLUP เปิดตัวต้านทานในตัวชิปที่ดึงขาขึ้นไปหา 5 V เบา ๆ เมื่อไม่มีใครกด ขาจึงเป็นสูงอย่างแน่นอน พอกดปุ่มต่อลงกราวด์ กราวด์ชนะเพราะแรงกว่ามาก ค่าจึงเป็นต่ำ
3. active-low คือคำที่ใช้เรียก
ระบบที่ "เหตุการณ์เกิด" หมายถึงสัญญาณเป็นต่ำ เรียกว่า active-low พบได้ทั่วไปมากในงานจริง เขียน bool pressed = digitalRead(2) == LOW; ไว้บรรทัดเดียว แล้วส่วนที่เหลือของโปรแกรมจะอ่านเป็นภาษาปกติ
ตรวจความเข้าใจ
ถ้าใช้ INPUT ธรรมดาแทน INPUT_PULLUP และไม่ต่อตัวต้านทานเอง จะเกิดอะไรขึ้น
ลงมือทำ
ใช้ INPUT_PULLUP แล้วอธิบายว่าทำไมขาถึงอ่านได้สูงตอนที่ยังไม่กด
เริ่มแล็บใน StudioStudio จะเปิดวงจรเริ่มต้นของบทนี้ พร้อมคำใบ้ เฉลย และการตรวจคำตอบจากค่าที่วัดได้