본문 바로가기

프로그래밍/아두이노[Arduino]&라즈베리파이[Raspberry Pi]

[아두이노] 전압센서 모듈을 이용하여 LCD에 센서값 표시하기



[아두이노]

전압센서 모듈을 이용하여 LCD에 센서값을 표시하기

 


 

 

안녕하세요 이번에는 전압센서 모듈(voltage module)과 LCD(I2C LCD)에 대해서 알아보도록 하겠습니다.

 

 

간단소개

 

 

1. 전압센서모듈(voltage module)을 이용하여 건전지의 전압을 측정

2. 전압센서모듈에서 측정된 값을 LCD에 표시

 

 

 

 

 

 

 

핵심부품

 

 

- 아두이노 전압센서 모듈

 

 

 

 

작동 전압: 2.5V~ 6V

I2C 프로토콜 지원

I2C 주소값: 0x27

기존의 핀 대신 4개의 핀으로 제어가 가능

 

 

 

 

 

 

 

부품목록

 

 

 

 

브레드보드

 

 

 

 

 

회로도

 

 

 

소스코드

라이브러리 설치

스케치 - 라이브러리 포함하기 - 라이브러리 관리

 

LiquidCrystal 를 검색하여 설치

 

 

 

 

// I2C LCD를 쉽게 제어하기 위한 라이브러리를 추가해줍니다.
#include <LiquidCrystal_I2C.h>
 
// 16X2 크기의 LCD 객체를 생성합니다.
// 만약 LCD 화면이 나오지 않으면 0x3F 대신 0x27를 넣어주세요.
LiquidCrystal_I2C lcd(0x27, 16, 2);
 
int analogPin = A0;   // 빗물감지센서 analog in A0 연결 선언
int led = 13;         // LED 디지털 13번 포트 연결 선언
int data = 0;         // 센서값의 변수 연결 선언
 
 
void setup(){
  pinMode(led, OUTPUT);          // 디지털 13번 포트를 LED OUTPUT 으로 설정
  Serial.begin (9600);          // 시리얼모니터 설정
  lcd.init();                    // LCD를 초기화 합니다.
  lcd.backlight();               // LCD의 백라이트를 켜줍니다.
}
 
 
void loop(){
  int data = analogRead(analogPin);   // analogPin 의 변화값(전류값)을 읽음
 
  if(isnan(data)){
    Serial.println("Failed to read from rain_drop sensor!");
  }
 
  else if(data < 800){           // val 값이 800미만 (전류가 800 미만이면)                               
      digitalWrite(led, HIGH);   // LED ON
  }
  else{                          // val 값이 800이상 (전류가 800 이상이면)
      digitalWrite(led, LOW);    // LED OFF
  }
  show(data);
  delay (500);
}
 
void show(int val){
  // LCD를 초기화 합니다.
  lcd.init(); 
  
  // 센서값을 시리얼 모니터에 출력해 줍니다.
  Serial.println((int)val);
 
  // LCD에 출력할 메세지를 만듭니다.
  String text = "Rain Value";
 
  // 첫번째 줄, 첫번째 칸에 text 출력
  lcd.setCursor(0, 0);
  lcd.print(text);
 
  // 두번째 줄, 첫번째 칸부터 출력
  lcd.setCursor(0, 1);
  lcd.print(val);
}

 

 

 

 

구현사진

 

시리얼 모니터를 이용하여 확인해보시면 아래와 같이 값이 정상적으로 확인이 됩니다!

 

 

 

감사합니다.