0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ラズパイPicoで、OLEDに文字を表示する

Last updated at Posted at 2024-11-24

ラズパイPicoのI2Cで、OLEDに文字を表示してみよう

OLEDの説明

ここで使うOLED(有機LED)は、I2Cで制御される128x64ドットのグラフィックディスプレイモジュールです。モジュールではSSD1306と言う制御チップが使われています。

I2Cでは、GND、VCC、SCL、SDAと言う、4本のピンで複数の周辺機器を制御します。このひとつにOLEDを接続して、ディスプレイに文字を表示してみます。

0.96インチ 128×64ドット有機ELディスプレイ(OLED) 白色:
https://akizukidenshi.com/catalog/g/g112031/

準備:OLED の GND、VCC、SCL、SDA を接続

OLEDの左から右に向かって:
GND:-
VCC:+ (3.3V)
SCL:PIN 1
SDA:PIN 0

OLED.png

プログラム

まず、「パッケージを管理」で、ssd1306 をインストールしておきます。

from machine import Pin, I2C
from ssd1306 import SSD1306_I2C
import random
import time

i2c = I2C(0, scl=Pin(1), sda=Pin(0))    # SCL=1、SDA=0 でI2Cを初期化
oled = SSD1306_I2C(128, 64, i2c) 	# 幅=128、高さ=64 でSSD1306を初期化

oled.fill(0)	# 画面をクリア
oled.text("Hello, World!", 0, 0)		# 文字列、X座標、Y座標
oled.rect(10, 20, 20, 40, 1)
oled.line(60, 30, 80, 40, 1)
oled.show()	# 画面を更新
time.sleep(3)

for i in range(30):
    oled.scroll(-4, 0) 			# 20 ピクセル左にスクロール
    oled.show()
    time.sleep(0.1)

oled.fill(0)	# 画面をクリア
oled.text("Hello, World!", 0, 0)
oled.text("0123456789", 0, 8*2)
oled.text("ABCDEFGHIJKLMNO", 0, 8*3)
oled.text("PQRSTUVWXYZ", 0, 8*4)
oled.show()	# 画面を更新
time.sleep(3)

# ランダムにドットを表示する
while True:
    x = random.randint(0, 127) # 0から127までのランダムな数
    y = random.randint(0, 63) # 0から63までのランダムな数
    oled.pixel(x, y, 1) # 点をかく
    oled.show()
    time.sleep(0.1)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?