본문 바로가기
C++

[C++] 아두이노로 수위센서 사용하기

by teamnova 2024. 5. 8.

안녕하세요.

이번 시간에는 아두이노로 수위센서를 사용해보겠습니다.

 

아두이노에 대해 기본적인 내용을 알고 싶다면 아래 게시글을 참고해주세요. 

https://stickode.tistory.com/1044

 

[C++] 아두이노로 서보 모터 사용하기

이번 시간에는 아두이노로 서보 모터 사용하는 예제를 진행하겠습니다. 1. 아두이노란? 아두이노(Arduino)는 사용하기 쉬운 하드웨어와 소프트웨어를 기반으로 한 오픈 소스 전자 플랫폼입니다.

stickode.tistory.com

 

1. 수위센서란?

수위 센서

 

세로로 위치한 전극 부분이 수위에 따라 저항값이 변하고 이에따라 전류값도 변합니다.

수위가 높아지면 저항이 감소해서 흐르는 전류가 증가하고, 반대로 수위가 낮아지면 저항이 증가해서 흐르는 전류가 감소하는데, 해당 전류값을 측정하여 수위를 감지하게 됩니다.

 

 

2. 준비물

아두이노 우노, 수위센서, 물, I2C LCD 모듈

 

이 예제에서는 I2C LCD 모듈로 수위에 따라 센서 측정값의 변화를 확인하겠습니다.

I2C LCD 모듈 사용법이 궁금하시다면 아래 게시물을 참고해주세요.

https://stickode.tistory.com/1164

 

[C++] 아두이노로 I2C LCD 모듈 사용하기

안녕하세요.이번 시간에는 아두이노로 I2C LCD 모듈을 사용해보겠습니다. 아두이노에 대해 기본적인 내용을 알고 싶다면 아래 게시글을 참고해주세요. https://stickode.tistory.com/1044 [C++] 아두이노

stickode.tistory.com

 

 

3. 회로도

 

 

4. 소스 코드

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

// LCD 디스플레이는 A4, A5 사용 (IIC) (scl은 우노에서 A5)
// HEX코드는 테스터를 통해 반드시 확인. 16문자 2줄
// 아두이노 1.64로 컨버팅 (16-02-25)
LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup() {
  lcd.init();  //LCD 초기화
  lcd.backlight(); // 백라이트 활성화
}

void loop() {
  lcd.init(); // LCD 초기화 (필요한 경우)
  lcd.setCursor(0, 0); // 커서를 첫 번째 줄의 시작 위치로 이동

  int water_val = analogRead(A0); // 수위센서 값 읽기

  lcd.print("Water_Val: "); // 첫 번째 줄에 텍스트 출력
  lcd.print(water_val); 
  delay(500); // 0.5초 대기
  
}

 

 

5. 실행 결과