LCD에 rs, en d1~d6까지 직접연결하면 Adafruit의 라이브러리로도 사용이 가능하다.
일단 Adafruit의 라이브러리에는 i2c 용 라이브러리가 함께 존재한다.
그러나 무슨이유에서인지 작동하지 않는다.
소스코드를 까보면 슬레이브 주소자체가 다른거같기도한데... 정확한 이유를 모르겠다.
어쨋건 Adafruit 회사인 경우 I2C 보드가 따로 필요한거 같고
아두이노에서 사용하던 LCD 라이브러리는 아두이노 용이니 ... 파이썬 라이브러리가 필요하다.
라이브러리는 두개를 찾았다.
하나는 엘레파츠, 하나는 라즈베리파이가이에서 제공한다.
엘레파츠 라이브러리 깃허브
https://github.com/eleparts/RPi_I2C_LCD_driver
라즈베리파이가이 깃허브
https://github.com/the-raspberry-pi-guy/lcd
둘이 생긴게 비슷하긴하다.
LCD주소는 0x27, I2C 포트번호는 1이다.
포트번호를 바꾸고 싶으면
엘레파츠 깃헙에는 드라이브에 포트번호를 바꾸면되고
라즈베리파이 가이 깃헙에는 드라이브에 버스넘버를 바꾸면된다.
둘이 비슷비슷하게 생겨서 뭐 ... 뭘쓰던 상관없을 것 같다.
나는 엘레파츠 라이브러리를 사용했다.
먼저 I2C 통신을 위한 라이브러리 설치
sudo apt-get install python3-smbus
엘레파츠 깃 클론
git clone https://github.com/eleparts/RPi_I2C_LCD_driver.git
* 설치라이브러리, 함수설명과 같은 정보는 해당 사이트에 직접 접속하여 확인 !
https://github.com/eleparts/RPi_I2C_LCD_driver
No module smbus 에러코드 발생시
pip3 install smbus
I2C 연결확인 - 보통 1번 포트일 것이다
i2cdetect -y 1
0x27번에 27 숫자가 찍히면 LCD와 통신이 가능하다.
소스코드
from RPi_I2C_LCD_driver import RPi_I2C_driver
lcd = RPi_I2C_driver.lcd(0x27)
lcd.clear()
lcd.setCursor(0,0)
lcd.print("Hello")
lcd.setCursor(0,1)
lcd.print("World")
I2C 0번 포트 개방방법은 아래 글에
2021.06.29 - [분류 전체보기] - 라즈베리파이 i2c(SCL.0, SDA.0) 사용하기
'프로그래밍 > Python' 카테고리의 다른 글
[Python] 구글클라우드를 이용한 오디오 파일 자막 추출 (0) | 2022.05.01 |
---|---|
[Python] .csv 파일 데이터 읽어오기 (0) | 2022.03.27 |
[Python] 라즈베리파이 I2C통신 feat.조도센서(BH1750FVI) (0) | 2021.11.11 |
[Python] 라즈베리4 Adafruit DHT11/21/22(온습도센서) (9) | 2021.11.08 |
[Python] Tensorflow Function call stack: train_function error 해결 (0) | 2021.09.03 |
댓글