비접촉 수위 센서(XKC-Y25)

From Arduwiki


가운데|class=coders100


비접촉식 수위 센서는 탱크나 용기 외부에 부착하여 내부의 액체 수위를 측정할 수 있는 장치입니다.

물에 직접 닿지 않기 때문에 안정적으로 오래 사용할 수 있으며 다양한 용기(금속 제외) 및 액체에 활용 가능합니다.


사양

특성 XKC-Y25-V XKC-Y25-PNP XKC-Y25-NPN XKC-Y28-RS485
전원 전압 DC 5-24V DC 5-12V, DC 24V DC 5-12V, DC 24V 24V (12V 맞춤형 가능)
출력 모드 High and low level Switch quantity (high pulse effective) Switch quantity (low pulse effective) Communication output
리플 전압 요구 사항 ≤200 mV
전류 ≤5mA
응답 시간 500mS
작동 온도 -20~105℃
습도 5%~100%
측정 두께 (민감도 범위) ≤20mm (컨테이너 벽 두께)
수위 오차범위 ±1.5mm
선 길이 500MM (±10MM)
단자 순서 갈색 (VCC), 노랑 (신호 출력), 파랑 (GND), 검정 (COM 단자)
재질 PC V0 방염 소재
방수 성능 IP67
안전 표준 인증 CE
환경 보호 인증 ROHS-2.0

모델에 따라 전압 및 출력 모드에 차이가 있으며, 본 문서를 XKC-Y25-NPN 모델을 기준으로 합니다.


활용 예제

1. 단순 측정 테스트

용기 외부에 비접촉 수위 센서를 갖다 대었을 때 정확하게 측정하고 있는지 확인하는 예제입니다.


회로 구성

센서 선은 수축 튜브를 살짝 당겨보시면 확인 가능합니다.

센서 선 색상 기능 아두이노 핀
갈색 VCC (전원 공급) 5V
파란색 GND (접지) GND
노란색 OUT (출력 신호) D2
검정색 SET (설정) 연결하지 않음 (또는 설정용)

가운데|class=coders100

코드

사양 탭에서 보여드린 대로 모델에 따라 출력모드가 달라 수위 감지 시에 HIGH, LOW 중 어느 쪽이 출력되는지 확인이 필요합니다.

본 문서에서 사용한 XKC-Y25-NPN 모델의 경우 수위가 감지되면 LOW가 출력됩니다.

const int sensorPin = 2; // 센서 출력 핀
int sensorValue = 0;

void setup() {
  pinMode(sensorPin, INPUT_PULLUP); // 내부 풀업 저항 활성화
  Serial.begin(9600);
}

void loop() {
  sensorValue = digitalRead(sensorPin);
  if (sensorValue == LOW) { // 모델에 따라 수위 감지시 LOW, HIGH가 다르게 출력될 수 있으니 확인 필요
    Serial.println("수위 감지됨");
  } else {
    Serial.println("수위 감지되지 않음");
  }
  delay(1000); // 1초 간격으로 측정
}


실행 결과

수위 감지 시에 xkc-y25 센서에 내장된 LED가 켜지는 것을 확인할 수 있습니다.

가운데|class=coders100


2. 비접촉 수위센서와 LED 함께 사용

수위 감지되면 LED가 켜지고, 감지되지 않으면 꺼지는 예제입니다.

비슷한 방법으로 부저, 워터펌프 등 다양한 모듈, 센서들을 혼합해서 사용할 수 있습니다.


회로 구성

센서 선은 수축 튜브를 살짝 당겨보시면 확인 가능합니다.

예제1 회로와 동일하게 비접촉 수위 센서를 연결하신 후, LED를 추가해주세요.

아두이노 핀 연결 부위
D3 LED의 긴 다리
GND 저항의 한쪽 다리
저항의 다른 쪽 다리 LED의 짧은 다리

가운데|class=coders100

코드

예제1과 마찬가지로, 모델에 따라 출력모드가 달라 수위 감지 시에 HIGH, LOW 중 어느 쪽이 출력되는지 확인이 필요합니다.

본 문서에서 사용한 XKC-Y25-NPN 모델의 경우 수위가 감지되면 LOW가 출력됩니다.

const int sensorPin = 2;  // 비접촉 수위 센서의 OUT 핀 연결
const int ledPin = 3;    // LED 연결 핀

void setup() {
  pinMode(sensorPin, INPUT_PULLUP); // 비접촉 수위 센서 핀을 INPUT_PULLUP 모드로 설정
  pinMode(ledPin, OUTPUT);          // LED 핀을 출력 모드로 설정
  Serial.begin(9600);               // 시리얼 통신 시작
}

void loop() {
  int sensorValue = digitalRead(sensorPin); // 비접촉 수위 센서 값 읽기

  if (sensorValue == LOW) { // 수위가 감지되었을 때 (센서가 LOW를 읽을 때)
    digitalWrite(ledPin, HIGH); // LED 켜기
    Serial.println("수위 감지됨");
  } else { // 수위가 감지되지 않았을 때 (센서가 HIGH를 읽을 때)
    digitalWrite(ledPin, LOW); // LED 끄기
    Serial.println("수위 감지되지 않음");
  }

  delay(500); // 0.5초 대기
}


실행 결과

시리얼 모니터 출력 결과는 예제1과 동일합니다. 수위 감지 시에 3번 핀에 연결된 LED가 켜지는 것을 확인할 수 있습니다.


응용 분야

  • 가정용 수위 모니터링: 물탱크, 정수기, 어항 등
  • 산업용 수위 제어: 화학 탱크, 저장 탱크, 배수 시스템 등
  • 농업: 관개 시스템의 수위 모니터링
  • 의료: 의료용 액체 저장 용기의 수위 감지


주의 사항

  • 용기 재질은 플라스틱, 종이, 유리 등 다양하게 사용 가능하지만 금속 용기는 센서 작동에 문제가 생길 수 있어 적합하지 않습니다.
  • 센서를 부착할 용기의 외부 표면이 깨끗하고 건조한 상태에서 설치해야 합니다.
  • 용기 두께가 감지 거리 내에 있어야 정확한 측정이 가능합니다.


구매 링크

공집사몰