아두이노 실습 9주차 (디스플레이 활용하기 추가 실습)

2023. 11. 15. 22:40아두이노 (Arduino)

실습 9주차 (디스플레이 활용하기 추가 실습)

이번주 실습에서는 저번주에 했던 디스플레이 활용에 대한 추가 실습을 진행해 보려고 한다.

 

저번주에 마저 하지 못했던 LCD 실습을 진행할 예정이다.

 

 

LCD 실습

저번주에 16 x 2 LCD를 가지고 진행했던 실습을 일단 다시 해보자.

 

오늘 할 실습이 모두 LCD를 가지고 진행되기 때문에 복습 겸 다시 실습을 진행해봤다.

 

보드는 아래와 같이 연결한다.

 

 

 

 

 

 

그럼 아래와 같이 hello, world! 라는 글자가 깜빡이는 것을 볼 수 있다.

 

 

 

 

 


 

 

이번에는 lcd.scrollDisplayRight(); 함수를 사용하여 문장을 오른쪽으로 한 칸씩 이동시키는 실습을 진행해 보려고 한다.

 

여기서

lcd.scrollDisplayRight(); 함수는 문장을 오른쪽으로 한 칸 이동시키고,

lcd.scrollDisplayLeft(); 함수는 문장을 왼쪽으로 한 칸 이동시킨다.

 

 

보드는 위 실습에서 연결한 그대로 사용한다.

 

 

코드는 lcd.scrollDisplayRight(); 만 추가하고 다시 실습 영상을 확인해 보자.

 

 

 

 

문장이 깜빡일 때 마다 한 칸씩 오른쪽으로 이동하는 것을 볼 수 있다.

 

 


 

 

C-LCD에 사용자 정의 문자 표시하기

C-LCD에 읽기 동작을 만들어 사용자가 원하는 문자 또는 숫자 패턴을 생성하여 표시할 수 있다. 16×2 문자 LCD 모듈은 5×10 도트(dot) 또는 5×8 도트의 폰트를 만들 수 있으나 LiquidCrystal 라이브러리에서 5×8 폰트로 지정해뒀기 때문에 8개의 사용자 정의 문자를 CGRAM 주소에 정의해서 사용할 수 있다.

 

 

이번에는 LCD에 '한국' 이라는 단어를 출력해 보는 실습을 진행할 예정이다.

 

마찬가지로 보드는 위 실습에서 연결한 그대로 사용한다.

 

사용자 정의 문자와 관련된 함수는 createChar 함수와 write 함수이다.

 

createChar()

LCD에 사용자 정의 문자를 0에서 7까지 생성한다. 생성된 사용자 정의 문자는 write 함수로 출력한다.

사용자 정의 문자 0은 다른 주소와 달리 호출할 때 변수가 없으면 아두이노 컴파일러에서 오류가 발생할 수 있으므로 lcd.write (byte (0))과같이 byte 형으로 캐스팅해야 한다.

 

여기서 read_han은 '한' 이라는 글자를,

read_kook은 '국' 이라는 글자를 나타낸다.

 

 

 

실행해보면 위와 같이 '한국' 이라는 글자가 출력되는 것을 볼 수 있다.

 

 


 

 

이번에는 코드를 조금 바꿔서 '인덕' 이라는 글자를 표시해 보려고 한다.

 

 

 

여기서 read_in은 '인' 이라는 글자를,

read_duk은 '덕' 이라는 글자를 나타낸다.

 

아까 위 실습에서 '한국' 이라는 글자를 표시하는 실습에서는 16진수로 표시했지만 이번 실습에서는 입력을 쉽게 하기 위해서 2진수로 표시하였다.

 

 

글자가 조금 삐뚤게 나오긴 했지만 내가 원했던 '인덕' 이라는 글자가 잘 표시되는 것을 볼 수 있다.