ประมาณ 71% ของโลกปกคลุมไปด้วยน้ำ แต่น่าเศร้าเพียง 2.5% เท่านั้นที่เป็นน้ำดื่ม ด้วยการเพิ่มขึ้นของประชากรมลพิษและการเปลี่ยนแปลงสภาพภูมิอากาศคาดว่าภายในปี 2568 เราจะประสบปัญหาการขาดแคลนน้ำตลอดกาล ในแง่หนึ่งมีข้อพิพาทเล็กน้อยระหว่างประเทศและรัฐเกี่ยวกับการแบ่งปันน้ำในแม่น้ำในทางกลับกันเราในฐานะมนุษย์เสียน้ำดื่มไปมากเนื่องจากความประมาทของเรา
ในครั้งแรกอาจดูไม่ใหญ่ แต่ถ้าก๊อกของคุณหยดน้ำหยดหนึ่งทุกๆวินาทีจะใช้เวลาประมาณห้าชั่วโมงในการเสียน้ำหนึ่งแกลลอนนั่นก็เพียงพอสำหรับมนุษย์ทั่วไปที่จะอยู่รอดได้ถึงสองคน วัน. แล้วจะทำอย่างไรเพื่อหยุดสิ่งนี้? สำหรับคำตอบนี้อยู่ที่การปรับปรุงเทคโนโลยี หากเราเปลี่ยนก๊อกน้ำแบบแมนนวลทั้งหมดด้วยสมาร์ทที่เปิดและปิดเองโดยอัตโนมัติไม่เพียง แต่เราจะประหยัดน้ำ แต่ยังมีวิถีชีวิตที่มีสุขภาพดีขึ้นด้วยเนื่องจากเราไม่ต้องใช้งานก๊อกน้ำด้วยมือที่สกปรก ดังนั้นในโครงการนี้เราจะสร้างเครื่องจ่ายน้ำอัตโนมัติโดยใช้ Arduino และโซลินอยด์วาล์วที่สามารถให้น้ำโดยอัตโนมัติเมื่อวางแก้วไว้ใกล้ ๆ ฟังดูดี! มาสร้างกัน…
วัสดุที่จำเป็น
- โซลินอยด์วาล์ว
- Arduino Uno (ทุกรุ่น)
- HCSR04 - เซ็นเซอร์อัลตราโซนิก
- IRF540 MOSFET
- ตัวต้านทาน 1k และ 10k
- เขียงหั่นขนม
- การเชื่อมต่อสายไฟ
แนวคิดการทำงาน
แนวคิดเบื้องหลังตู้กดน้ำอัตโนมัตินั้นง่ายมาก เราจะใช้เซ็นเซอร์อัลตราโซนิก HCSR04เพื่อตรวจสอบว่ามีวัตถุใดที่กระจกวางอยู่หน้าตู้หรือไม่ โซลินอยด์วาล์วจะถูกใช้เพื่อควบคุมการไหลของน้ำซึ่งเมื่อเติมพลังน้ำจะไหลออกและเมื่อไม่ได้รับพลังงานน้ำจะหยุดลง ดังนั้นเราจะเขียนโปรแกรม Arduino ซึ่งจะตรวจสอบเสมอว่ามีวัตถุใดวางอยู่ใกล้กับก๊อกน้ำหรือไม่ถ้าใช่โซลินอยด์จะเปิดและรอจนกว่าวัตถุจะถูกลบออกเมื่อวัตถุถูกลบออกโซลินอยด์จะปิดโดยอัตโนมัติดังนั้นจึงปิด การจัดหาน้ำ เรียนรู้เพิ่มเติมเกี่ยวกับการใช้ Ultrasonic sensor กับ Arduino ที่นี่
แผนภูมิวงจรรวม
แผนภาพวงจรที่สมบูรณ์สำหรับตู้น้ำที่ใช้ Arduinoแสดงไว้ด้านล่าง
วาล์วขดลวดแม่เหล็กไฟฟ้าที่ใช้ในโครงการนี้คือวาล์ว 12V ที่มีพิกัดกระแสสูงสุด 1.2A และพิกัดกระแสไฟฟ้าต่อเนื่องที่ 700mA นั่นคือเมื่อวาล์วเปิดอยู่จะใช้พลังงานประมาณ 700mA เพื่อให้วาล์วเปิดอยู่ อย่างที่เราทราบกันดีว่า Arduino เป็นบอร์ดพัฒนาที่ทำงานด้วย 5V และด้วยเหตุนี้เราจึงต้องมีวงจรควบคุมสวิตชิ่งสำหรับ Solenoidเพื่อเปิดและปิด
อุปกรณ์สวิตชิ่งที่ใช้ในโครงการนี้เป็นIRF540N N-Channel MOSFET มี 3 พิน Gate, Source และ Drain จากพิน 1 ตามลำดับ ดังที่แสดงในแผนภาพวงจรขั้วบวกของโซลินอยด์ถูกขับเคลื่อนด้วยขา Vin ของ Arduino เพราะเราจะใช้อะแดปเตอร์ 12V เพื่อจ่ายไฟให้กับ Arduino ดังนั้นขา Vin จะส่งออก 12V ซึ่งสามารถใช้ควบคุม Solenoid ได้ ขั้วลบของโซลินอยด์เชื่อมต่อกับกราวด์ผ่านหมุดต้นทางและท่อระบายน้ำของ MOSFET ดังนั้นโซลินอยด์จะทำงานก็ต่อเมื่อ MOSFET เปิดอยู่
ขาเกตของ MOSFET ใช้เพื่อเปิดหรือปิด จะยังคงปิดอยู่หากขาเกตต่อสายดินและจะเปิดขึ้นหากมีการใช้แรงดันเกต เพื่อให้ MOSFET ปิดอยู่เมื่อไม่มีแรงดันไฟฟ้ากับขาเกตพินเกตจะถูกดึงลงกราวด์โดยใช้ตัวต้านทาน 10k Arduino pin 12 ใช้เพื่อเปิดหรือปิด MOSFET ดังนั้นพิน D12 จึงเชื่อมต่อกับขาเกตผ่านตัวต้านทาน 1K ตัวต้านทาน 1K นี้ใช้สำหรับวัตถุประสงค์ในการ จำกัด กระแส
อัลตราโซนิคเซนเซอร์ขับเคลื่อนโดย + 5V และหมุดล่างของ Arduino Echo และ ทริกเกอร์ ขาเชื่อมต่อกับขา 8 ขาและ 9 ตามลำดับ จากนั้นเราสามารถตั้งโปรแกรม Arduino เพื่อใช้เซ็นเซอร์อัลตราโซนิกเพื่อวัดระยะทางและเปิด MOSFET เมื่อตรวจพบวัตถุ วงจรทั้งหมดนั้นเรียบง่ายและด้วยเหตุนี้จึงสามารถสร้างได้อย่างง่ายดายบนเขียงหั่นขนม ของฉันมีลักษณะดังนี้ด้านล่างหลังจากทำการเชื่อมต่อ
การเขียนโปรแกรมบอร์ด Arduino
สำหรับโครงการนี้เราต้องเขียนโปรแกรมซึ่งใช้เซ็นเซอร์อัลตราโซนิก HCSR-04 เพื่อวัดระยะห่างของวัตถุที่อยู่ด้านหน้า เมื่อระยะทางน้อยกว่า 10 ซม. เราต้องเปิด MOSFET และอื่น ๆ เราต้องปิด MOSFET นอกจากนี้เราจะใช้ LED บนบอร์ดที่เชื่อมต่อกับพิน 13 และสลับไปพร้อมกับ MOSFET เพื่อให้เรามั่นใจได้ว่า MOSFET อยู่ในสถานะเปิดหรือปิดโปรแกรมที่สมบูรณ์จะทำเช่นเดียวกันจะได้รับในตอนท้ายของหน้านี้ ด้านล่างนี้ฉันได้อธิบายโปรแกรมโดยแบ่งเป็นตัวอย่างเล็ก ๆ ที่มีความหมาย
โปรแกรมจะเริ่มต้นด้วยคำนิยามแมโครเรามี ทริกเกอร์ และขา ก้อง สำหรับเซ็นเซอร์อัลตราโซนิกและขาเกต MOSFET และ LED เป็น I / O สำหรับ Arduino ของเรา ดังนั้นเราจึงได้กำหนดว่าจะเชื่อมต่อกับพินใด ในฮาร์ดแวร์ของเราที่เรามีการเชื่อมต่อเสียงสะท้อนและทริกเกอร์ขาถึง 8 และ 9 THขาดิจิตอลตามลำดับ จากนั้นพิน MOSFET จะเชื่อมต่อกับพิน 12 และ LED ออนบอร์ดโดยค่าเริ่มต้นจะเชื่อมต่อกับพิน 13 เรากำหนดเหมือนกันโดยใช้บรรทัดต่อไปนี้
#define trigger 9 #define echo 8 #define LED 13 #define MOSFET 12
ภายในฟังก์ชั่น การตั้งค่า เราจะประกาศว่าพินใดเป็นอินพุตและเอาต์พุตใด ในฮาร์ดแวร์ของเรามีเพียงพิน Echo ของเซ็นเซอร์ Ultrasonic (US) เท่านั้นที่เป็นขาอินพุตและส่วนที่เหลือทั้งหมดเป็นพินเอาต์พุต ดังนั้นเราจึงใช้ฟังก์ชัน pinMode ของ Arduino เพื่อระบุเช่นเดียวกับที่แสดงด้านล่าง
pinMode (ทริกเกอร์เอาท์พุท); pinMode (เสียงสะท้อน, อินพุต); PinMode (LED, เอาท์พุท); pinMode (MOSFET, เอาท์พุท);
ภายในฟังก์ชัน ลูป หลักเราเรียกฟังก์ชันที่เรียกว่า measure_distance () ฟังก์ชั่นนี้ใช้เซ็นเซอร์สหรัฐในการวัดระยะทางของวัตถุในด้านหน้าของมันและการปรับปรุงค่าให้กับตัวแปร ' ระยะทาง' ในการวัดระยะทางโดยใช้เซ็นเซอร์ของสหรัฐฯขาไกจะต้องถือไว้ต่ำเป็นเวลาสองไมโครวินาทีจากนั้นถือไว้สูงเป็นเวลาสิบไมโครวินาทีและถือไว้ต่ำอีกครั้งเป็นเวลาสองไมโครวินาที สิ่งนี้จะส่งสัญญาณอุลตร้าโซนิคระเบิดไปในอากาศซึ่งจะได้รับการสะท้อนจากวัตถุที่อยู่ด้านหน้าและพิน สะท้อน จะรับสัญญาณที่สะท้อนจากมัน จากนั้นเราจะใช้ค่าเวลาที่ใช้ในการคำนวณระยะทางของวัตถุข้างหน้าเซ็นเซอร์ ถ้าอยากรู้