본문 바로가기
만들기/아두이노

1602A LCD 디스플레이 가변저항 표시하기

by 훨훨날아 2022. 9. 8.

아두이노에서 표시되는 데이터를 컴퓨터의 시리얼 통신으로 보지않고 외부 디스플레이를 이용하게 위해 다양한 방법을 이용할 수 있다. 그중 1602A LCD 디스플레이를 이용하면 I2C 통신을 이용하여 4개의 선으로 아두이노의 데이터를 표현 할 수 있다. 여기에서는 가변저항을 조절하였을 때 변하는 아날로그 신호를 LCD 디스플레이에 표현하는 방법을 알아보았다.

준비물

1. 아두이노, 1602A LCD, 가변저항

방법

1. 아두이노에 1602A LCD 라이브러리를 설치해준다.

https://github.com/johnrickman/LiquidCrystal_I2C

 

GitHub - johnrickman/LiquidCrystal_I2C: LiquidCrystal Arduino library for the DFRobot I2C LCD displays

LiquidCrystal Arduino library for the DFRobot I2C LCD displays - GitHub - johnrickman/LiquidCrystal_I2C: LiquidCrystal Arduino library for the DFRobot I2C LCD displays

github.com

 

오른쪽 code를 눌러 다운로드 ZIP을 받은 뒤 아두이노가 설치된 파일의 libraries에 들어가 압축을 해제해준다.

 

1602A의 VCC 는 5V에 GND는 GND에 SDA는 A4에 SCL은 A5번 핀에 연결해준다.
가변저항의 경우 저항의 가운데 핀을 A0 에 연결하고 오른쪽핀을 + 왼쪽핀을 -에 연결해준다.

 

코팅
//YWROBOT
//Compatible with the Arduino IDE 1.0
//Library version:1.1
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,20,4);  // set the LCD address to 0x27 for a 16 chars and 2 line display

void setup()
{
  lcd.init();                      // initialize the lcd 
  // Print a message to the LCD.
  lcd.backlight();
  lcd.setCursor(0,0);
  lcd.print("Hello, world!");
  lcd.setCursor(0,1);
  lcd.print("Ywrobot Arduino!");

}


void loop()
{
}

LCD를 연결하면 잘 안나오는 경우가 있는데 이때 LCD의 주소값을 0x3F 혹은 0x27로 바꿔서 시도해본다. 그래도 안되면 LCD가 불량일 수도 있다. setup에 디스플레이되는 정보를 넣으면 하나의 문장을 계속해서 표시할 수 있다.

 

 

//YWROBOT
//Compatible with the Arduino IDE 1.0
//Library version:1.1

// 참고
//https://blog.naver.com/PostView.naver?blogId=eduino&logNo=220878435158&redirect=Dlog&widgetTypeCall=true&directAccess=false
//https://secreticity.tistory.com/20

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

LiquidCrystal_I2C lcd(0x27,16,2);  // set the LCD address to 0x27 for a 16 chars and 2 line display 16자리 2줄
const int resistorPin = A0;   //아두이노 A0 I/O에 가변저항을 연결합니다.
int sensorValue = 0;


void setup()
{
  lcd.init(); // lcd를 사용을 시작합니다.
  lcd.backlight(); //lcd 백라이트를 킵니다.
  lcd.clear(); // lcd를 전부 지웁니다.
  lcd.home();  // 첫번째 줄 첫번째(좌측) 위치로 이동한다.
 
  pinMode(resistorPin, INPUT);  //resistorPin 을 입력으로 설정합니다.
}


void loop()
{
  lcd.home();
  lcd.print("Resistor(0~1023)");
  lcd.setCursor(0,1);   // LCD 에 한자리 ~ 네자리가 표시될 때
  lcd.print("    ");    // 네자리 표시 후에 한자리~세자리 표시로 바뀌면
  lcd.setCursor(0,1);   // 마지막자리 숫자가 그대로 남아있게 되어 표기오류가 생긴다.
                        // 그래서 이 방법을 사용해서 해당 LCD칸을 초기화해준다.
  sensorValue = analogRead(resistorPin);  //analogRead()를 사용해서 아날로그 입력을 받는다.
  lcd.print(sensorValue);   //lcd에 0~1023 값을 출력한다.
  lcd.setCursor(4,1);
  lcd.print("value");
}

 

loop 안에 저항값을 불러와 lcd.print로 값을 프린트하면 저항을 조절함에 따라 변하는 아날로그값을 LCD디스플레이에 표시할 수 있다.

 

 

 

참고

https://blog.naver.com/PostView.naver?blogId=eduino&logNo=220878435158&redirect=Dlog&widgetTypeCall=true&directAccess=false 

1602A LCD 라이브러리 설치

 

[아두이노 강좌] LCD 1602(16x2) 4핀(I2C제어) 디스플레이 모듈

안녕하세요에듀이노입니다. 오늘은기본적인LCD인LCD 1602 16x2 4핀(I2C제어) 디스플레이모듈에 대...

blog.naver.com

https://secreticity.tistory.com/20

1602A LCD에 가변저항 표시하기

 

[아두이노] LCD1602 & 가변저항(Potentiometer) 사용하기

# 제목: 가변저항(INPUT) - 아두이노 - LCD1602(OUTPUT)으로 # 내용: 가변저항을 사용해서 사용자가 직접 특정값을 입력해서 원하는 기능을 하도록 해보자. 일단 가변저항으로 어떻게 신호를 입력할 수

secreticity.tistory.com

 

반응형