준호씨의 블로그

Arduino - LCD 1604A, 1602A 테스트, LiquidCrystal 라이브러리 본문

메이커

Arduino - LCD 1604A, 1602A 테스트, LiquidCrystal 라이브러리

준호씨 2017. 6. 6. 14:01
반응형

1604A 테스트 - 실패. 그리고 LiquidCrystal 라이브러리에 관하여


키트를 구매 했는데 LCD 가 1604A 이다. 보통 1602A 를 많이 쓰는데 특이함. 아무튼 잘 돌아가면 상관 없는데 요모양이다. 뭐가 잘못 되었을까? 코드는 키트에서 제공하는 코드를 그대로 넣었다.

LiquidCrystal 라이브러리를 그대로 사용 하지는 않았고 NewliquidCrystal 를 사용 하고 있는데 코드를 보면 16x4 용 LCD 의 offset 를 바꿔서 사용 하도록 되어 있다.

라이브러리는 ~/Documents/Arduino/libraries 에 복사해서 사용 하면 된다. (참고: https://www.arduino.cc/en/Hacking/Libraries)


참고로 최근 (이라고 하기에는 2년전이 최근 업데이트) LiquidCrystal 라이브러리를 보니 setRowOffsets 라는 함수가 생겨서 그걸 사용하면 커스텀 라이브러리를 사용할 필요는 없어 보이긴 한다.

관련 PR 은 https://github.com/arduino/Arduino/pull/1748 이다. 2013년 12월에 올라 왔는데 2014년 9월에 반영 된 것으로 보인다.

최종 코드는 https://github.com/arduino/Arduino/blob/master/libraries/LiquidCrystal/src/LiquidCrystal.cpp 를 참고 하면 된다.


2009년에 관련 논의가 있었는데 이 때는 그냥 offset 정보를 라이브러리에서 직접 고쳐서 사용 했던 것으로 보인다.

http://forum.arduino.cc/index.php?topic=14604.0



좀 친절한 라이브러리 문서가 없나 궁금해서 찾아 보았다.

http://arduinoliquidcrystal.readthedocs.io/en/latest/liquidcrystal.html

다만 setRowOffsets 와 같은 함수는 없더라. 해당 문서의 마지막 버전은 2014년 2월 버전이더라. 아무튼 다른 함수들은 설명이 꽤 꼼꼼하게 잘 나와 있으니 궁금한 부분은 여기서 찾아 보면 좋다.



1602A 테스트 - 성공

같은 구성으로 1602A 로는 잘 되었다.




1604A 테스트 - 성공 - LCD 밝기 조절을 analog port 가 아닌 가변저항으로

아무튼 현재 증상들을 가지고 구입처에 문의 해 보니 다음과 같이 답장이 왔다.

>> LCD1604 화면 문자 깨짐문제점 발생 원인.

코드 및 와이어링 권고안으로 하신 경우에는


USB 전원à 아두이노보드à LCD1602 & 기타 부품들 à


체크해보시면 D9 포트 analogWrite(50) 정도에 LCD1604 Contrast 값으로 사용하고 있습니다.

 

>> 해결책 10 K 가변 저항으로 해보시기 바랍니다.

 

LCD1604 à D9 연결 사용하지 마시고

10K 가변 저항으로 해보시기 바랍니다.

10K 가변저항으로 돌려서 조절해주시면 장시간 연결하여도 정상 작동 합니다.


그래서 D9 대신 가변저항으로 연결 했더니 잘 나온다 ㅠㅠ


정리 해 보고 싶은 내용이 많지만 일단 여기 까지~ 나머지는 다음에 또~


반응형
Comments