ラズパイPicoでSSD1306ディスプレイ使う!

この記事を読めば「Raspberry Pi Pico W」でディスプレイを使ったものを作れるようになります!

電子工作をするうえで、ディスプレイはとても便利なモジュールです。
新しいデバイスを作る際などにステータスを表示させたり、目視で確認できない情報を指示してくれます。
ディスプレイが使えるようになると、「Raspberry Pi Pico W」でできることがぐっと広がります。
そうなると、制御が必要なデバイスなどのより複雑な回路を用いた物を作ることができるようになります!

わからないことがありましたら、問い合わせページまたは公式ラインに連絡をください!
Youtubeもありますので、ぜひ見てみてください!

つかうもの

この記事で使っているものを紹介します。
*このリンクは、アフィリエイトリンクです。
こちらのリンクから購入されると、投稿主にインセンティブが発生します。
より良い記事のために、ぜひ購入する際は以下のリンクよりお願いします。。

実際に投稿主が購入したキットを紹介します。
こちらのキットは、マイコンと電子工作に必要な部品がセットになったものです。
こちら購入すればすぐに電子工作始められます!
また、公式HPでモジュール、プログラムの解説もされているので、非常におススメです。

購入はこちらをクリック!
*画像はリンク先より引用

個別で購入したい方は、以下のリンクよりどうぞ!

購入はこちらをクリック!
*画像はリンク先より引用

購入はこちらをクリック!
*画像はリンク先より引用

購入はこちらをクリック!
*画像はリンク先より引用

購入はこちらをクリック!
*画像はリンク先より引用

はじめに

今回は、液晶ディスプレイを使っていきます!

今回はこちらの128×64ドットの有機ELディスプレイを使っていきます。
こちらには、制御基板SSD1306が使われていて、ライブラリがありRaspberry pi などのマイコンで簡単に使用することができます。

モジュール説明

今回使うモジュールの解説です。

ディスプレイssd1306

今回使うのは、比較的安価な0.96インチ128×64ドットの有機ELディスプレイです。
こちらは、バックライトなどを用いる必要がなく、暗い場所でも視認性がいいです。
また、I2C通信で電源とGNDを入れて4本つなぐと扱うことができ、ライブラリがあり簡単に扱うことができます。

また、少しはんだごてを使って調整するだけで、デュアルディスプレイにすることが可能です。
こちらは後程記事にまとめます、、

温度センサーDHT11

こちらが今回使う温度センサーです。
足が4本ありますが、右からVCC、DATA、空、GNDとなっています。
左から3本目はどこにもつながっていません。

このDHT11とは、1秒に1回温度と湿度を取得することができます。

回路

↑の画像を参考に回路を組んでみてください。

実際に動かそう!

実際に動かしていきましょう。
まずは、必要なライブラリをインストールしましょう。

ライブラリのインストール

まずは、パソコンにマイコンをつないで、右下からポートを選択して接続を確認します。

その後、「ツール→パッケージの管理→検索→インストール」します。

今回は、dhtとssd1306をインストールします。
dhtは温度センサーを扱うライブラリ
ssd1306はディスプレイを扱うためのライブラリです。

プログラム

以下のプログラムコードThonnyに貼り付けてください。

# ライブラリのインポート
import dht
from machine import Pin, I2C
import ssd1306
import utime

# ピンの定義
# 温度センサーのピン設定
d = dht.DHT11(Pin(28))

# ディスプレイ通信のピン設定
i2c = I2C(0, sda=Pin(12), scl=Pin(13))

# ディスプレイ設定
display = ssd1306.SSD1306_I2C(128, 64, i2c)

while True:
    d.measure()  # 温度と湿度を測定
    temperature = d.temperature()
    humidity = d.humidity()

    display.fill(0)  # ディスプレイをクリア
    # 温度と湿度をディスプレイに表示
    display.text("Temperature: {}C".format(temperature), 0, 20)#温度を表示する位置
    display.text("Humidity: {}%".format(humidity), 0, 35)#湿度を表示する位置
    display.show()  # ディスプレイに表示
    utime.sleep(1)#1秒ごとに実行

実行してみると、、、

しばらくすると、、

値が変化しました!
これで、更新されていることが確認できました!

動かない原因

回路

ブレッドボードなどにきちんと刺さっているか
さす場所を間違っていないかを確認してください。

プログラム

コピペがちゃんとできているかを確認してください。
また、温度センサーやI2Cに関するピンは皆さんで任意のピンに変更して実行することができます。
しかし、マイコンの仕様を確認してから行ってください。

OSerror(5)

一度実行してからI2Cの設定をいじると、対応しているピンを使ってもエラーが出ます。
そうなるので、I2Cで使用するピンを編集した後は、一度USBを抜いて再度接続して実行しましょう。
これについては、あとで詳細についてまとめます。

わからないときは?

公式ラインに連絡ください!

友だち追加

おわりに

どうだったでしょうか?
今回は、0.96インチの有機ELディスプレイを使ってみました。
こちらは、小さく安価で簡単に使用することができます。
簡単なゲーム機も作ることができます。
では!次回の記事でお会いしましょう。

Raspberry Pi Pico Wカテゴリの最新記事