지구의 약 71 %가 물로 덮여 있지만 슬프게도 그 중 2.5 %만이 식수입니다. 인구 증가, 오염 및 기후 변화로 인해 2025 년까지 계속되는 물 부족 현상이 발생할 것으로 예상됩니다. 한편으로는 강물 공유에 대한 국가와 주간에 이미 사소한 분쟁이있는 반면, 인간으로서 우리는 과실로 인해 많은 식수를 낭비하고 있습니다.
처음에는 크게 보이지 않을 수도 있지만 수돗물이 1 초에 한 번씩 물 한 방울을 떨어 뜨렸다면 1 갤런의 물을 낭비하는 데 약 5 시간 밖에 걸리지 않습니다. 이는 보통 사람이 2 년 동안 생존하기에 충분한 물입니다. 일. 그래서 이것을 막기 위해 무엇을 할 수 있습니까? 항상 그렇듯이 이에 대한 답은 기술 향상에 있습니다. 모든 수동 탭을 자동으로 열리고 닫히는 스마트 탭으로 교체하면 물을 절약 할 수있을뿐만 아니라 더러운 손으로 수도꼭지를 조작 할 필요가 없기 때문에 더 건강한 라이프 스타일을 가질 수 있습니다. 그래서이 프로젝트에서 우리는 아두 이노를 사용 하는 자동 물 디스펜서와 유리가 근처에 놓일 때 자동으로 물을 줄 수 있는 솔레노이드 밸브 를 만들 것입니다. 멋지다! 그럼 하나를 만들어 보겠습니다…
필요한 재료
- 솔레노이드 벨브
- Arduino Uno (모든 버전)
- HCSR04 – 초음파 센서
- IRF540 MOSFET
- 1k 및 10k 저항
- 브레드 보드
- 전선 연결
작업 개념
자동 워터 디스펜서 의 개념 은 매우 간단합니다. HCSR04 초음파 센서 를 사용 하여 유리가 디스펜서 앞에 놓이는 물체가 있는지 확인합니다. 솔레노이드 밸브는 물의 흐름을 제어하는 데 사용됩니다. 즉, 전원이 공급되면 물이 흘러 나오고 전원이 공급되지 않으면 물이 멈 춥니 다. 그래서 우리는 항상 어떤 물체가 탭 근처에 놓여 있는지 확인하는 Arduino 프로그램을 작성할 것입니다. 그렇다면 솔레노이드가 켜지고 물체가 제거 될 때까지 기다릴 것입니다. 물체가 제거되면 솔레노이드가 자동으로 꺼져서 닫힙니다. 물 공급. 여기에서 Arduino와 함께 초음파 센서를 사용하는 방법에 대해 자세히 알아보십시오.
회로도
Arduino 기반 워터 디스펜서 의 전체 회로도 가 아래에 나와 있습니다.
이 프로젝트에 사용 된 솔레노이드 밸브 는 최대 전류 정격이 1.2A이고 연속 정격 전류가 700mA 인 12V 밸브 입니다. 즉, 밸브가 켜져있을 때 밸브를 계속 켜두 기 위해 약 700mA를 소비합니다. 아두 이노는 5V로 작동하는 개발 보드이므로 솔레노이드 를 켜고 끄 려면 스위칭 드라이버 회로 가 필요합니다.
이 프로젝트에 사용 된 스위칭 장치는 IRF540N N 채널 MOSFET 입니다. 그것은 각각 핀 1의 3 핀 게이트, 소스 및 드레인을 가지고 있습니다. 회로도에서 볼 수 있듯이 솔레노이드의 양극 단자는 Arduino의 Vin 핀으로 전원이 공급됩니다. 12V 어댑터를 사용하여 Arduino에 전원을 공급하므로 Vin 핀은 12V를 출력하여 솔레노이드를 제어하는 데 사용할 수 있습니다. 솔레노이드의 음극 단자는 MOSFET의 소스 및 드레인 핀을 통해 접지에 연결됩니다. 따라서 솔레노이드는 MOSFET이 켜진 경우에만 전원이 공급됩니다.
MOSFET의 게이트 핀은 켜거나 끄는 데 사용됩니다. 게이트 핀이 접지 된 경우 꺼진 상태로 유지되고 게이트 전압이 적용되면 켜집니다. 게이트 핀에 전압이 가해지지 않을 때 MOSFET이 꺼진 상태를 유지하기 위해 게이트 핀은 10k 저항을 통해 접지로 당겨집니다. Arduino 핀 12는 MOSFET을 켜거나 끄는 데 사용되므로 D12 핀은 1K 저항을 통해 게이트 핀에 연결됩니다. 이 1K 저항은 전류 제한 목적으로 사용됩니다.
초음파 센서 의 + 5V와의 Arduino의 접지 핀에 의해 강화된다. 에코 및 트리거 핀은 핀 (8)을 각각 핀 (9)에 접속된다. 그런 다음 Arduino를 프로그래밍하여 초음파 센서를 사용하여 거리를 측정하고 물체가 감지되면 MOSFET을 켤 수 있습니다. 전체 회로는 간단하므로 브레드 보드 위에 쉽게 구축 할 수 있습니다. 연결을 한 후 내 것은 아래와 같이 보입니다.
Arduino 보드 프로그래밍
이 프로젝트를 위해 우리는 HCSR-04 초음파 센서를 사용하여 앞에있는 물체의 거리를 측정하는 프로그램을 작성해야합니다. 거리가 10cm 미만이면 MOSFET을 켜야하고 그렇지 않으면 MOSFET을 꺼야합니다. 또한 핀 13에 연결된 온보드 LED를 사용하고 MOSFET과 함께 토글하여 MOSFET이 켜짐 또는 꺼짐 상태인지 확인할 수 있습니다. 완전한 프로그램 동일한 기능을 수행하는이 페이지의 마지막에 제공됩니다. 바로 아래에서 프로그램을 의미있는 작은 조각으로 나누어 설명했습니다.
프로그램은 매크로 정의로 시작 합니다. 우리는이 트리거 와 에코 핀 초음파 센서와 MOSFET 게이트 핀 우리의 Arduino 대한 I / O로서 LED를. 그래서 우리는 이것들이 연결될 핀을 정의했습니다. 하드웨어에서는 Echo 및 Trigger 핀을 각각 8 번째 및 9 번째 디지털 핀에 연결했습니다. 그런 다음 MOSFET 핀은 핀 12에 연결되고 온보드 LED는 기본적으로 핀 13에 연결됩니다. 다음 라인을 사용하여 동일하게 정의합니다.
#define 트리거 9 #define echo 8 #define LED 13 #define MOSFET 12
설정 함수 내에서 어떤 핀이 입력이고 어떤 핀이 출력인지 선언합니다. 하드웨어 에서 초음파 (US) 센서 의 에코 핀만 입력 핀이고 나머지는 모두 출력 핀입니다. 그래서 아두 이노 의 pinMode 함수를 사용하여 아래와 같이 지정합니다.
pinMode (trigger, OUTPUT); pinMode (echo, INPUT); pinMode (LED, OUTPUT); pinMode (MOSFET, OUTPUT);
메인 루프 함수 내에서 measure_distance () 라는 함수를 호출합니다 . 이 함수는 US 센서를 사용하여 앞에있는 물체의 거리 를 측정하고 값을 ' 거리' 변수로 업데이트합니다. US 센서를 사용하여 거리를 측정하려면 트리거 핀을 먼저 2 마이크로 초 동안 낮게 유지 한 다음 10 마이크로 초 동안 높게 유지하고 다시 2 마이크로 초 동안 낮게 유지해야합니다. 이것은 초음파 신호의 음파를 공중으로 보내 앞에있는 물체에 반사되어 에코 핀이 반사 된 신호를 포착합니다. 그런 다음 소요 시간 값을 사용하여 센서 앞의 물체까지의 거리를 계산합니다. 알고 싶다면