概要
- AdafruitのPythonライブラリを使って、1602で知られる、16x2桁のキャラクタLCDに文字を表示。
https://github.com/adafruit/Adafruit_Python_CharLCD - I2C接続のやつじゃないよ
- ラズパイでGPIOとして使えるピンなら、どれにつないでもOK.
環境
- Raspberry Pi 2
-
2017-04-10-raspbian-jessie
-
sudo apt-get update && sudo apt-get upgrade
して、
Linux raspberrypi 4.9.24-v7+ #993 SMP Wed Apr 26 18:01:23 BST 2017 armv7l GNU/Linux
手順
接続
LCD Pin : Raspberry Piのピン
1 VSS * GND
2 VDD * 5.0V
3 V0 * (10KΩの可変抵抗の真ん中のピンへ。可変抵抗の両端は5.0VとGND)
4 RS : GPIO22 (15番Pin)
5 RW : GND (H=Read/L=Write なので、Write Only)
6 E : GPIO26 (37番Pin)
7 D0 - NC 使わない
8 D1 - NC 使わない
9 D2 - NC 使わない
10 D3 - NC 使わない
11 D4 : GPIO5 (29番Pin)
12 D5 : GPIO6 (31番Pin)
13 D6 : GPIO13 (33番Pin)
14 D7 : GPIO19 (35番Pin)
15 A * 5.0V
16 K * GND
- ラズパイに、電源を接続しない。
- 5.0V、GND、可変抵抗を慎重に配線する。
- よ~く、確認する。
- SDカードを抜いたラズパイに電源を挿して、5.0V供給してみる。
- LCDのバックライトが点いて、可変低をまわすと、コントラストが変わる。
- 電源入れると、上の段に ■が表示されてて、下は、何も表示されてない
- 電源を抜いて、のこりの配線をする。
- ラズパイに、SDカードを挿して、電源を入れなおして、起動する。
ライブラリのインストール
sudo apt-get update
sudo apt-get install -y build-essential python-dev python-smbus python-pip git
sudo pip install RPi.GPIO
#
cd $HOME
# ぎっと、くろ~ん.
git clone https://github.com/adafruit/Adafruit_Python_CharLCD.git
#
cd Adafruit_Python_CharLCD
# インストール
sudo python setup.py install
軽く使ってみる
-
python
[Enter]で、Python起動 -
コード、こぴぺ
# コイツをインポートする。 import Adafruit_CharLCD as LCD # ピンの設定. GPIO番号を入れる lcd_rs = 22 lcd_en = 26 lcd_d4 = 5 lcd_d5 = 6 lcd_d6 = 13 lcd_d7 = 19 # # 16x2桁. lcd_columns = 16 lcd_rows = 2 # # lcd = LCD.Adafruit_CharLCD(lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6, lcd_d7, lcd_columns, lcd_rows) # 液晶クリア. lcd.clear() # メッセージ表示. lcd.message('Hello World!16x2\nQiita.com/mt08/') # カーソル表示して、ブリンク lcd.blink(True)
Ctrl-D
で抜ける
その他
-
Adafruit_Python_CharLCD/examples/char_lcd.py
を実行する場合、テキストエディタで開いて、ピンの設定をうまいのに変更すること。 - 5V入れてるけど、GPIO大丈夫なの??
... たぶん。。。 RWピンをGNDにして、ラズパイからみて書き込み専用になってるので、LCD側から出力されないよね... -
Adafruit_CharLCD/Adafruit_CharLCD.py
を見れば、使えそうなコマンドがわかるかと...def
で、定義してるよね? - WiringPiのとこ(http://wiringpi.com/dev-lib/lcd-library/)みると、Cでサポートしてる?っぽい
実行例
pi@raspberrypi:~ $ python
Python 2.7.9 (default, Sep 17 2016, 20:26:04)
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> # コイツをインポートする。
... import Adafruit_CharLCD as LCD
>>> # ピンの設定. GPIO番号を入れる
... lcd_rs = 22
>>> lcd_en = 26
>>> lcd_d4 = 5
>>> lcd_d5 = 6
>>> lcd_d6 = 13
>>> lcd_d7 = 19
>>> #
... # 16x2桁.
... lcd_columns = 16
>>> lcd_rows = 2
>>> #
... #
... lcd = LCD.Adafruit_CharLCD(lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6, lcd_d7,
... lcd_columns, lcd_rows)
>>> # 液晶クリア.
... lcd.clear()
>>> # メッセージ表示.
... lcd.message('Hello World!16x2\nQiita.com/mt08/')
>>> # カーソル表示して、ブリンク
... lcd.blink(True)
>>>
pi@raspberrypi:~ $