아두이노 우노 R4 - 수위 센서

이 튜토리얼은 Arduino UNO R4와 함께 물 센서를 사용하는 방법을 가르쳐 줄 것입니다. 물 센서는 물이 새고 있는지, 강수량을 측정하는지, 탱크가 넘치는지를 확인하거나 물의 수위를 확인할 수 있습니다. 자세히 살펴볼 내용은 다음과 같습니다:

Arduino UNO R4 및 수위 센서 모듈

Hardware Preparation

1×Arduino UNO R4 WiFi Amazon
1×Arduino UNO R4 Minima (Alternatively) Amazon
1×USB Cable Type-C 쿠팡 | Amazon
1×Water level sensor 쿠팡 | Amazon
1×Jumper Wires Amazon
1×(Recommended) Screw Terminal Block Shield for Arduino UNO R4 쿠팡 | Amazon
1×(Recommended) Breadboard Shield For Arduino UNO R4 쿠팡 | Amazon
1×(Recommended) Enclosure For Arduino UNO R4 Amazon
1×(Recommended) Power Splitter For Arduino UNO R4 Amazon
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.

수위 센서에 대하여

수위 센서 핀아웃

수위 센서는 세 개의 핀을 포함합니다:

  • S (Signal) 핀: 아날로그 출력입니다. 이를 Arduino UNO R4의 아날로그 입력에 연결하세요.
  • + (VCC) 핀: 이 핀은 센서에 전원을 공급합니다. 3.3V에서 5V를 사용하여 전원을 공급하세요.
  • - (GND) 핀: 이 핀은 접지 연결입니다.
수위 센서 핀 배치

※ NOTE THAT:

센서 신호 핀의 출력은 VCC 핀에 공급된 전압에 따라 변합니다.

수위 센서의 작동 원리

센서가 더 많은 물에 있을 때, 신호 핀의 출력 전압이 증가합니다.

자세히 살펴봅시다.

이 섹션에는 압도될 수 있는 고급 정보가 포함되어 있습니다. 내용에 대해 확신이 없다면 건너뛰어 다음 섹션으로 이동하십시오.

센서는 볼 수 있는 열 개의 구리선을 포함하고 있습니다. 다섯 개의 전원선과 다섯 개의 센서선이 있습니다. 이 선들은 각각 옆에 배열되어 있으며, 두 전원선 사이에 하나의 센서선이 번갈아가며 있습니다. 보통은 이 선들이 서로 닿지 않지만, 센서가 물에 넣어지면 물이 이 선들을 연결합니다.

흔적은 물 수준에 따라 저항이 변하는 가변 저항기(가변 저항기와 유사)처럼 작동합니다.

  • 저항의 변화는 센서 상단에서 물 표면까지의 거리를 보여줍니다.
  • 물의 높이가 올라갈수록 저항이 감소합니다.
  • 센서가 물속에 더 잠기면 전기가 더 잘 흐르고 저항이 낮아집니다.
  • 센서가 물속에 덜 잠기면 전기가 잘 흐르지 않아 저항이 높아집니다.
  • 센서는 저항을 기반으로 출력 전압을 제공합니다.

전압을 측정하여 수위(수면 높이)를 알아낼 수 있습니다.

Wiring Diagram

센서에 전원을 공급하려면 센서의 VCC 핀을 Arduino UNO R4의 5V 핀에 연결하고 GND 핀을 Arduino의 GND 핀에 연결하세요.

그러나 센서를 항상 습한 환경에서 전원 공급하는 것은 권장되지 않습니다. 이는 센서가 빠르게 부식되어 수명이 단축될 수 있습니다. 이를 피하기 위해 센서의 데이터를 읽을 필요가 있을 때만 전원을 공급하는 것을 권장합니다. 센서의 VCC 핀을 Arduino UNO R4의 디지털 핀에 연결하여 이를 수행할 수 있습니다. 센서를 읽기 위해 Arduino의 핀을 HIGH로 설정하고, 완료되면 LOW로 설정하십시오.

Arduino UNO R4 물 센서 배선도

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

Arduino UNO R4 코드 - 수위 센서에서 값 읽기

/* * 이 Arduino UNO R4 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino UNO R4 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-uno-r4/arduino-uno-r4-water-sensor */ #define POWER_PIN 5 // 아두이노 UNO R4 핀은 전력 제어를 위해 센서의 VCC 핀에 연결되어 있습니다. #define SIGNAL_PIN A0 // 아두이노 UNO R4 핀은 센서의 신호 핀에 연결되어 있습니다. int value = 0; // 센서에서 읽은 값을 저장하는 변수 void setup() { Serial.begin(9600); // 9600 baud로 시리얼 통신 시작 pinMode(POWER_PIN, OUTPUT); // POWER_PIN을 출력으로 설정 digitalWrite(POWER_PIN, LOW); // 초기에는 POWER_PIN을 LOW로 설정하여 센서를 끔 } void loop() { digitalWrite(POWER_PIN, HIGH); // POWER_PIN을 HIGH로 설정하여 센서에 전원 공급 delay(10); // 센서가 안정화될 시간을 줌 (10ms 지연) value = analogRead(SIGNAL_PIN); // 센서에서 값을 읽음 digitalWrite(POWER_PIN, LOW); // POWER_PIN을 LOW로 설정하여 센서를 끔 Serial.print("Sensor value: "); // 시리얼 모니터에 센서 값을 출력 Serial.println(value); // 센서 값을 표시 delay(1000); // 다시 읽기 전에 1초 대기 }

Detailed Instructions

다음 지침을 단계별로 따르세요:

  • Arduino Uno R4 WiFi/Minima를 처음 사용하는 경우 Arduino IDE에서 Arduino Uno R4 WiFi/Minima 환경 설정 가이드를 참조하세요.
  • 제공된 다이어그램에 따라 아두이노 Uno R4에 수위 센서를 연결하세요.
  • USB 케이블을 사용하여 아두이노 Uno R4 보드를 컴퓨터에 연결하세요.
  • 컴퓨터에서 아두이노 IDE를 실행하세요.
  • 적절한 아두이노 Uno R4 보드(예: Arduino Uno R4 WiFi) 및 COM 포트를 선택하세요.
  • 제공된 코드를 복사하여 Arduino IDE에서 엽니다.
  • Arduino IDE에서 Upload 버튼을 눌러 코드를 Arduino UNO R4로 전송하세요.
  • 센서를 물에 천천히 내립니다(유리컵에 물을 사용하세요).
  • 시리얼 모니터에서 결과를 확인하세요. 센서가 어떤 것과도 접촉하지 않을 때 값이 0으로 표시됩니다.
COM6
Send
Sensor value: 0 Sensor value: 0 Sensor value: 0 Sensor value: 25 Sensor value: 97 Sensor value: 284 Sensor value: 428 Sensor value: 435 Sensor value: 441 Sensor value: 455 Sensor value: 467 Sensor value: 521 Sensor value: 528 Sensor value: 553
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ NOTE THAT:

센서는 물에 완전히 잠기지 않아야 하며, 회로 기판의 노출된 부분만 물에 닿아야 합니다. 설치 시 주의해 주세요.

물 누수를 감지하는 방법

물 누수, 비 또는 탱크 넘침이 있는지 확인하려면 측정값을 설정된 한계와 비교합니다. 이 한계는 이 튜토리얼의 보정 단계에서 설정합니다.

Arduino UNO R4 코드 - 누수 감지

/* * 이 Arduino UNO R4 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino UNO R4 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-uno-r4/arduino-uno-r4-water-sensor */ #define POWER_PIN 5 // 물 센서의 VCC 핀에 연결된 Arduino UNO R4 핀으로 전원을 제어 #define SIGNAL_PIN A0 // 물 센서의 신호 핀에 연결된 Arduino UNO R4 핀 #define THRESHOLD 300 int value = 0; // 센서에서 읽은 값을 저장할 변수를 초기화 void setup() { Serial.begin(9600); pinMode(POWER_PIN, OUTPUT); // 전원 핀을 출력으로 설정 digitalWrite(POWER_PIN, LOW); // 처음에 전원을 끔 } void loop() { digitalWrite(POWER_PIN, HIGH); // 센서에 전원 공급 delay(10); // 센서가 안정화될 시간을 줌 value = analogRead(SIGNAL_PIN); // 센서 출력을 읽음 digitalWrite(POWER_PIN, LOW); // 센서 전원을 끔 if (value > THRESHOLD) { // 센서 출력이 임계값을 초과하는지 확인 Serial.print("The water is dedected"); // 시리얼 모니터에 메시지를 보냄 } }

물 높이를 측정하는 방법

최고 수위 수준을 다른 단계로 나누고 현재 단계를 확인하려면 다음 코드에 있는 기술을 사용하세요. 최고 수위는 센서의 높이와 일치한다는 것을 기억하세요. 이 코드는 최고 높이를 4단계로 나눕니다.

/* * 이 Arduino UNO R4 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino UNO R4 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-uno-r4/arduino-uno-r4-water-sensor */ #define POWER_PIN 5 // 물 센서의 VCC 핀에 연결된 Arduino UNO R4 핀으로 전원을 제어 #define SIGNAL_PIN A0 // 물 센서의 신호 핀에 연결된 Arduino UNO R4 핀 #define SENSOR_MIN 0 // 센서의 최소값 #define SENSOR_MAX 521 // 센서의 최대값 int value = 0; // 현재 센서 값을 저장 int level = 0; // 수위 표시기를 저장 void setup() { Serial.begin(9600); // 시리얼 통신 초기화 pinMode(POWER_PIN, OUTPUT); // 전원 핀을 출력으로 설정 digitalWrite(POWER_PIN, LOW); // 처음에 센서를 끔 } void loop() { digitalWrite(POWER_PIN, HIGH); // 센서 활성화 delay(10); // 센서가 안정화될 때까지 대기 value = analogRead(SIGNAL_PIN); // 센서 출력 읽기 digitalWrite(POWER_PIN, LOW); // 센서 비활성화 level = map(value, SENSOR_MIN, SENSOR_MAX, 0, 4); // 센서 값을 0-4 범위로 매핑 Serial.print("Water level: "); // 레이블 출력 Serial.println(level); // 매핑된 수위 출력 delay(1000); // 작업을 반복하기 전 1초 대기 }

※ NOTE THAT:

  • SENSOR_MIN 및 SENSOR_MAX는 보정 과정에서 설정됩니다.
  • 위의 매핑 방법이 정확하지 않을 수 있지만, 많은 경우에 잘 작동합니다. 정확성을 향상시키려면 보정 섹션에서 설명한 대로 각 레벨의 임계값을 측정하십시오.

수위 센서 보정

센서의 출력은 수위와 물이 얼마나 전도성이 있는지에 영향을 받습니다. 순수한 물은 전기를 통하지 않지만, 미네랄과 불순물이 섞인 물은 전기를 통합니다. 물의 전도성이 높을수록 센서의 감도가 더 높아집니다. 또한, 센서의 VCC 핀에 다른 전압이 적용될 때 출력 값이 변합니다.

정확한 수질 센서 판독을 위해, 모니터링할 특정 수질 유형에 맞춰 센서를 보정할 것을 권장합니다.

행동에 대한 한계를 설정하기 전에, 테스트를 통해 센서로부터 실제 값을 먼저 측정하십시오.

테스트 수행 방법:

  • 제공된 도면을 사용하여 센서의 값을 읽으세요.
  • 센서를 원하는 수준까지 물에 담그세요.
  • 시리얼 모니터에 표시된 값을 기록하세요.
  • 이 값을 액션을 활성화할 한계값으로 설정하세요.

이 테스트는 제대로 하려면 몇 번의 시도가 필요할 수 있습니다.

그 테스트는 또한 발견하는 데 도움이 될 수 있습니다:

  • 물 밖에 있을 때의 최소 센서 값.
  • 물에 완전히 잠겼을 때의 최대 센서 값.
  • 물 누출을 감지하기 위한 임계값.
  • 스케일의 각 레벨에 대한 임계값.

Video Tutorial

비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!