준호씨의 블로그
Arduino - LCD 1604A, 1602A 테스트, LiquidCrystal 라이브러리 본문
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 대신 가변저항으로 연결 했더니 잘 나온다 ㅠㅠ
정리 해 보고 싶은 내용이 많지만 일단 여기 까지~ 나머지는 다음에 또~
'메이커' 카테고리의 다른 글
Arduino - LCD Keypad Shield (0) | 2017.06.10 |
---|---|
Arduino - 미세먼지 키트 세팅 (0) | 2017.06.07 |
아두이노 - 알리에서 이런저런 부품들 주문 (0) | 2017.05.28 |
아두이노 - 먼지 센서 + LCD (0) | 2017.05.28 |
아두이노 - 먼지센서 간단 제작 정리 (0) | 2017.05.16 |