Xojo公式Webサイトの「Raspberry Pi LCD Character Display」
https://docs.xojo.com/GettingStarted:Raspberry_Pi_LCD_Character_Display
にチャレンジしたいと思う。
記事中にはLCDの型番など記載はないがHD44780がLCDコントローラとして使用されていて同等と思われるものをamazonで調達。
SODIAL(R)2004 20×4文字のLCDディスプレイモジュールブルーブラックライト
コントローラはHD44780互換っぽいが価格が安いこともありこれに決定。
LCDも随分と安くなったものだ。
今回もGPIO編と同じくブレットボードなどは使用せずにハンダ付けする。
ただし今回は後で他のパーツも付けられるように大きめのPCB基板を使用。
後々、このLCD付きのテスト基板にセンサーやら付けてみたいと思う。
amazonで適当なガラエポの基板を購入し使用したが意外と小さくLCDとT字のヘッター変換基板を取り付けたら大部分埋まってしまった。
配線などは公式のWire the Circuitに記載されているが、流石に回路図が欲しい。
PCで簡単に回路図が作成できるフリーソフトなどは無いだろうか、KiCADってのは知っているがちょっと回路図書くだけなんで本格的なものでなくても良いのだけど・・・
とりあえず「GettingStarted Raspberry Pi LCD Character Display」
のwebページの記載どおりに配線する。
(pin3には100Kオームの可変抵抗を取り付けた。)
ソースは前回のLEDやタクトスイッチの時と同じくサンプルプロジェクトの大部分(モジュール)をコピペし、Windowのオープンイベントに「GettingStarted Raspberry Pi LCD Character Display」から
gpio.SetupGPIO
Const kRSPin = 25
Const kEPin = 24
Const kD4Pin = 23
Const kD5Pin = 17
Const kD6Pin = 21
Const kD7Pin = 22
Dim lcd As New gpio.LCD(kRSPin, kEPin, kD4Pin, kD5Pin, kD6Pin, kD7Pin)
lcd.Clear
lcd.Home
lcd.SetMessage(“ABCDEFGHIJKLMNOPQRSTUVWXYZ”, 1)
lcd.SetMessage(“abcdefghijklmnopqrstuvwxyz”, 2)
lcd.SetMessage(“1234567890!@#$%^&*()”, 3)
lcd.SetMessage(“-=[];’,./_+{}:””<>?”, 4)
のコードを拝借しLCDに文字を表示する。
殆どのシーンで上記のコードを工夫すればLCDの制御は行えそうである。
それと、WindowのScrollingボタンを押すと文字がスクロースするようなコードを同じく「GettingStarted Raspberry Pi LCD Character Display」より拝借
GPIO.SetupGPIO
Const kRSPin = 25
Const kEPin = 24
Const kD4Pin = 23
Const kD5Pin = 17
Const kD6Pin = 21
Const kD7Pin = 22
Dim lcd As New GPIO.LCD(kRSPin, kEPin, kD4Pin, kD5Pin, _
kD6Pin, kD7Pin)
lcd.Clear
lcd.Home
lcd.SetMessage(“This text is scrolling to the right.”, 1)
For i As Integer = 1 To 20
lcd.ScrollDisplayRight
App.DoEvents(300)
Next
lcd.SetMessage(“This text is scrolling to the left.”, 1)
For i As Integer = 1 To 20
lcd.ScrollDisplayLeft
App.DoEvents(300)
Next
スクロール時はLCDがちょっと見づらい感じだが面白い。
昔々、Z80が主流だったころ日立だかシャープだかのそこそこ高価なLCDを制御するのにアセンブリ言語でゴリゴリプログラミングをしていた頃は結構面倒な手順を踏んでいたと思うのでこんな簡単にキャラクタディスプレイLCDの液晶が制御できてちょっと感動である。
しかもアホみたいに安い。
自分が子供の頃はこのようなものはなかったし電子工作と言えばせいぜいゲルマニウムラジオくらい。
もう少し子供が大きくなったら一緒に電子工作できたら楽しそうである。