HOME → 1 Raspberry Pi → 03 作品集 → 

Raspberry Pi キャラクタLCDへの表示

Raspberry Pi 作品集
液晶キャラクタデバイスへの表示
 
Raspberry Pi のLCDを見れば、温度・湿度・気圧が判る様にする。
 
液晶キャラクタデバイス:ACM1602NI-FLW-FBW:秋月電子通商 800円。 
 
液晶 16文字x2行 へ 月日・時刻・温度・湿度・気圧 を表示。
 

 

スポンサー リンク

 

 
 
 液晶キャラクタデバイスへの表示内容と位置。 

LCDへの表示設計

  
表示結果。
液晶キャラクタデバイス
 
Raspberry Pi に、温度と湿度が計測できるセンサーと、さらに気圧が計測できるセンサーを接続。
 
これらのセンサーから値を取得する回路と、取得した値をHDMI端子に接続しているディスプレイに表示するプログラムを作った。
 
しかしこれだと、ディスプレイがなければ役に立たないので、液晶キャラクタデバイスに表示し、 Raspberry Pi 単独で 『百葉箱』 になるようにした。
 
回路図。
キャラクタLCDへの表示 i2c回路図
 
配線図。
キャラクタLCDへの表示 i2c回路図
 
表示位置をヘキサデシマルのアドレスで指定するというのが、EBCDIC(エビシディック)の汎用機で育った世代には何とも懐かしい。
 

LCD表示位置

  
Python PGM List。
#! /usr/bin/env /usr/bin/python
# -*- coding: utf-8 -*-
 
import datetime
import time
import smbus
import mpl1152a2
from acm1602 import acm1602
 
# LCDセットアップ
lcd = acm1602( 1, 0x50, 4 )
lcd.move_home()
lcd.set_cursol( 0 )
lcd.set_blink( 0 )
 
i2c_channel = 1
i2c = smbus.SMBus( i2c_channel )
 
dac = i2c.read_i2c_block_data( 0x27, 0, 4 )
 
h = ( ( dac[0] & 0x3f ) << 8 ) | dac[1]
humi = (float)(h) / 16383 * 100
 
t = ( dac[2] << 6 ) | (dac[3] >> 2)
temp = (float)(t) /16383 * 165 - 40
 
pres = mpl1152a2.getpressur( i2c_channel )
 
d1 = datetime.datetime.today()
d2 = datetime.datetime.strftime(d1,"%m%d")
 
print d1
print "Temperature : %.2f C" % temp
print "Humidity    : %.2f %%" % humi
print "Pressure    : %.2f hPa" % pres
 
lcd.backlight(1)
 
# 年月日
lcd.move( 0x00, 0x00 )
lcd.write( d2 )
# 時分
lcd.move( 0x05, 0x00 )
lcd.write( time.strftime("%H%M") )
# 温度
lcd.move( 0x0a, 0x00 )
lcd.write( "%.2fC" % temp )
# 湿度
lcd.move( 0x00, 0x01 )
lcd.write( "%.2f%%" % humi)
# 気圧
lcd.move( 0x07, 0x01 )
lcd.write("%.2fhP" % pres )
 

 

以上。
(2015.01.02)

 

 

スポンサー リンク

 

             

 

 

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください