สายเส้นเดียวที่ต้องมีตัวต้านทานช่วย
DHT22 คุยผ่านสายเส้นเดียว และไม่มีตัวต้านทาน pull-up อยู่ในตัว ถ้าลืมใส่ สายจะไม่มีระดับให้อ่านเลย
ในบทนี้คุณจะ
- อธิบายได้ว่าทำไมบัสแบบ open-drain ต้องมีตัวต้านทาน pull-up
- ต่อ DHT22 สี่ขาโดยไม่ต่อขา NC
- ส่งสัญญาณเริ่มแล้วปล่อยสายให้เซนเซอร์ตอบ
1. ทำไมต้องมีตัวต้านทาน
สาย DATA เป็นแบบ open-drain หมายความว่าทั้งบอร์ดและเซนเซอร์ "ดึงลงต่ำ" ได้อย่างเดียว ไม่มีใครดันขึ้นสูง ตัวต้านทานต่อไปที่ไฟบวกจึงทำหน้าที่ดันสายขึ้นเมื่อไม่มีใครดึง ถ้าไม่มีมัน สายจะลอยและไม่มีระดับให้ใครอ่าน ผลที่เห็นคือเซนเซอร์เหมือนเสีย ทั้งที่วงจรต่างหากที่ยังไม่ครบ
2. ขา NC ไม่ใช่ขากราวด์สำรอง
เซนเซอร์เปล่ารุ่นสี่ขามีขาหนึ่งที่ไม่ได้ต่อกับอะไรเลยภายใน ห้ามเอาไปต่อกราวด์เพราะคิดว่าเป็นขาว่าง การต่อผิดจุดนี้เป็นความผิดพลาดที่พบบ่อยที่สุดกับอุปกรณ์ตัวนี้
3. จังหวะการคุย
บอร์ดดึงสายลงต่ำอย่างน้อยหนึ่งมิลลิวินาทีเพื่อขอข้อมูล แล้วปล่อยสาย จากนั้นเซนเซอร์จะตอบกลับมาเป็นชุดสัญญาณ สังเกตว่าโค้ดเปลี่ยนโหมดขาจาก OUTPUT เป็น INPUT_PULLUP เพื่อปล่อยสายคืน
ตรวจความเข้าใจ
ถอดตัวต้านทาน pull-up ออก แล้วรันใหม่ จะเกิดอะไรขึ้น
