สาธิตวิธีการใช้เซนเซอร์วัดระดับน้ำแบบไร้สัมผัส รุ่น XKC-Y25-PNP ร่วมกับ Arduino Nano หรือ ESP32 เพื่อวัดระดับน้ำแบบไม่ต้องติดตั้งให้สัมผัสของเหลวในถัง
เซนเซอร์ตัวนี้ใช้หลักการเหนี่ยวนำทางไฟฟ้าเพื่อตรวจจับของเหลว โดยรุ่นนี้ที่เราจะสาธิตชื่อ XKC-Y25 มี output แบบ PNP NO(default) โดยใช้ไฟเลี้ยง 5V-12V สามารถติดตั้งง่ายโดยใช้กาวสองหน้าหรือกาวตะปูหรือซิลิโคนในการช่วยยึดเกาะเข้ากับผนังที่รองรับผนังหนาได้ถึง 20mm ภายใต้เงื่อนไขว่าผนังต้องไม่ใช่ผนังที่ทำจากโลหะ หากผนังทำจากโลหะ
เกล็ดความรู้
Output แบบ PNP คืออะไร ?
Output แบบ PNP คือรูปแบบการให้สัญญาณขาออกเป็นลักษณะการให้สัญญาณ VCC ออกไปเมื่อเซนเซอร์มีการ ACTIVE
ในทางกลับกัน หากเซนเซอร์ไม่ได้มีการ ACTIVE ค่าที่ได้จะเป็นสัญญาณเสมือนไม่ได้ต่อกับอุปกรณ์อะไรเลย
เนื่องจาก PNP ส่งสัญญาณ VCC ที่เราจ่ายให้ตัวเซนเซอร์ออกมาในตอนเซนเซอร์มีการ ACTIVE ดังนั้นการนำ OUTPUT ไปใช้เป็น INPUT ของไมโครคอนโทรลเลอร์ ต้องมีการลดแรงดันลงให้เหมาะสมกับแต่ละ controller เช่น หากเราใช้ไฟเลี้ยง 12v ในการจ่ายให้เซนเซอร์ เราต้องใช้ตัวต้านทานทำ voltage divider เพื่อแบ่งแรงดันให้เข้าไมโครคอนโทรลเลอร์ไม่เกินค่าลิมิตของบอร์ดนั้น ๆ เช่น Arduino ไม่เกิน 5v หรือ ESP32 ที่ไม่เกิน 3.3v เป็นต้น
และเช่นเดียวกัน ในกรณีที่เซนเซอร์ไม่ ACTIVE หรือไม่เจอน้ำนั้น PNP จะให้สัญญาณออกมาคล้ายการไม่ต่อสายอะไรเข้าไมโครคอลโทรลเลอร์ จึงจำเป็นต้องต่อตัวต้านทานค่านึงระหว่างขา input กับ GND เพื่อดึงสถานะแรงดันให้เป็น LOW ในตอนที่เซนเซอร์ไม่ ACTIVE แต่ไม่ควรเลือกค่าตัวต้านทานน้อยจนเกินไป เพราะตอนเซนเซอร์ ACTIVE ค่าแรงดันนั้นจะไหลลงผ่านตัวต้านทานนั้นมาก ทำให้เกิดwasteไม่จำเป็น ค่าที่แนะนำคือมากกว่า 1k เป็นต้นไปครับ
http://pdf.sz-xkc.cn/?pdf-id=76&type=en
ลองเปิด Serial monitor