こんにちは「MAKO」です。
今回は以下の組み合わせで回路を構築して、LCDに文字列を表示してみようと思います。
- Raspberry Pi Pico
- Grove Shield for Pi Pico
- Grove - LCD RGB Backlight
前回の記事、
📄Raspberry Pi Pico からGrove LCD RGB BackLightを使用する(前準備編)
を書いた後、次の段階ではいつもの通り、MicroPython で実装を行い確認しようとしたのですが、どうも旨くいかないので公式が公開しているGitHub から Ardiuno 用のライブラリとサンプルスケッチを取得して確認してみました。
GitHub:
上記のGitHubから取得したソースのうち、
examples/HelloWorld
のスケッチを使って動作確認を行いました。
ただし、そのままではうまく動きませんでした。
理由としては、 Arduinoと Raspberry Pi Pico のI2CのSDAとSCLに割り当てられたPinの違いによるものでした。
その修正については、以下のサイトを参考にさせていただきました。
具体的にはソースの以下の lcd.begin() の部分を修正しています。
void setup() {
// set up the LCD's number of columns and rows:
// lcd.begin(16, 2); // 変更前
TwoWire myWire(8,9); // 変更後
lcd.begin(16, 2, 0, myWire); // 変更後
lcd.setRGB(colorR, colorG, colorB);
// Print a message to the LCD.
lcd.print("hello, world!");
delay(1000);
}
lcd.begin() の第4引数に TwoWire のインスタンス変数を指定しています
インスタンス変数を生成する際の引数の意味は、以下の通りです。
I2C0のSDA が Pin8
I2C0のSCL が Pin9
これは、Grove Shield for Pi Pico の仕様に合わせてます。
この修正したスケッチをコンパイルしてRaspberry Pi Pico で動作した結果、以下の通り
LCDに Hell, world!が背景赤で表示されました。
参考になれば幸いです。