Hobby Lab 趣味のモノ作り実験のサイトです。
部品 センサー他 ssd1306 ハードウェア
1.概要
2.I2Cアドレスの選択
3.レジスター
4.使い方

I2C 関係
プロトコル
 I2C について
スレーブ関係資料
 ADS1115 16bit4CH A/D
 INA226 直流電圧電流計
 BME280 気圧,湿度,気温計
 BH1750 照度計
 DS3231 時計
 SSD1306 0.96"OLED
マスター関係プログラム
 I2C RaspberryPi_設定
ADS1115
 RaspberryPi_コマンド接続
 RaspberryPi_Python
 Arduino
 CH23V203 MounRiverStudioⅡ
INA226
 Arduino
 RaspberryPi_Python
BNE280
 Arduino
 RaspberryPi_Python
BH1750
 Arduino
 RaspberryPi_Python
DS3231
 Arduino
 RaspberryPi_Python
SSD1306
 Arduino
 RaspberryPi_Python

Pr:Sensor_AD_時計等
PrS:電圧、電流
ADS1115 16bit4CH I2C A/D
 Hardware
 RaspberryPi_コマンド接続
 RaspberryPi_Python
 Arduino
 CH23V203 MounRiverStudioⅡ
INA226 I2C 直流電圧電流
 Hardware
 Arduino
 RaspberryPi_Python
WCS 電流ホール素子
 Hardware
PrS:温度、気圧、湿度、照度
BNE280 I2C 気圧,湿度,気温
 Hardware
 Arduino
 RaspberryPi_Python
BH1750 I2C 照度
 Hardware
 Arduino
 RaspberryPi_Python
DS18B20 1-Wire 温度計
 Hardware
 Arduino
 RaspberryPi_Python
PrS:時間、日時
DS3231 I2C 時計
 Hardware
 Arduino
 RaspberryPi_Python
PrS:表示器
MAR3953 320X480 3.95"
 概要と線や点を描く
 フォントを描く
SSD1306 I2C 0.96"OLED
 Hardware
 Arduino
 RaspberryPi_Python
Pr:Wire 電線関係
Pr:Resistance 抵抗
Pr:Capacitor コンデンサ
Pr:Coil コイル
Pr:PassiveElmt 受動素子
Pr:Diode ダイオード関係
Pr:OPAMP オペアンプ関係
PrO:送受信機  Si4735
PrO:オペアンプ  LM324
 LM358
Pr:Tr トランジスタ関係
2SC1815
 リレードライバー設計
 アンプ設計
 発振器
TLP152
 TLP152テスト
TLP2361
 TLP2361テスト
TLP5754
 TLP5754テスト
Pr:Source 電源関係  ツェナーダイオード
 TL431
 LM317
PrS:Downモジュール
 EGS002_IR2110S
 SKU011012
 ACDC02
 XH_M299
 LM2596
 Mini360_MP23070N
 DROK
 WH140
PrS:UPモジュール
 MT3608
PrS:充電モジュール
 TP4056
Pr:Old Processor他
Pr:Prプロセッサ関係
PrP:プロセッサ
動作比較
 STM32F動作比較
 CH32V203&STM32F 動作比較
 arduino動作比較
raspberrypi関係
 RaspberryPiハード
CH32V関係
 -CH32V開始
 -203K8T6(32Pin)開始
 -203C8T6(48P)開始
 -003J4M6(8Pin)開始
 -003F4P6(20Pin)開始
 -Moun River StudioⅡ
 プログラミング!
  203_GPIO関係
  203_TIME関係
  203_TIME Encoder
  203_I2C関係
  203_1-Wire関係
  003_DS18B20テスター
  USART(UART)関係
  DS18B20をModBus制御
 -マニュアル
 203データシート
 203取説
  MBA メモリとバス方式
  PWR 電力制御
  RCC リセット・拡張・クロック
  BKP バックアップレジスタ
  CRC 巡回冗長検査
  RTC リアルタイムクロック
  GPIO GPIOと代替機能
  DMA ダイレクトメモリアクセス制御
  ADTM 高度な制御タイマー
  GPTM 汎用タイマー
  BCTM 基本タイマー
  USART 同期非同期通信
arduino関係
 ESP12関係
 (a)ESP-8266D1mini注意
PrP:その他  RS485ドライバー
 CP2102 BRIDGE
 WCH-LinkEエミュレーター

1.概要

SSD1306は0.96インチのOLEDディスプレーモジュールで信号はI2Cインターフェースを備えている。
画面サイズ:0.96インチ
電源電圧:3.3V-5V
解像度:128x64
ディスプレイコントローラ:SSD1306
I2Cアドレス:0x3C、0x3D
信号インターフェース:I2C
表示色:ホワイト
視野角:>160°
消費電力:低、通常動作0.04W
モジュールサイズ:25.4mm*26.1mm
ピンは
Pin DEVICE DESCRIPTION
1 GND GroundI 2C slave address select
2 Vdd Power supply: 3.3V to 5V
3 SCK Serial clock input: Clocks data on SDA
4 SDA Serial data: Transmits and receives data



2.I2Cアドレスの選択

I2Cのアドレスは7bitで0x3C、0x3Dに設定できる。
0x78に接続すると、0x3Cになります
0x7Aに接続すると、0x3Dになります。



3.レジスター(ライブラリーコマンド概略)

Adafruit_GFX.hライブラリー、Adafruit_SSD1306.hライブラリーを使用することによりレジスター等を気にせずこのディスプレーを使用しているので、ここでは説明しない。
上記ライブラリーのコマンドの一例を下記に示す。
display.clearDisplay(); ディスプレイの表示内容を消去します。
display.setTextSize(n); 表示するフォントのサイズを指定します。(n = 1~8)
display.setCursor(x,y); テキストを表示開始する場所を指定します。
display.print(“message”); 表示するテキストの内容です。「”」で囲います。日本語は使えません。
display.display(); 設定した内容でディスプレイに表示します。
display.drawPixel(x, y, color); 線を引きます。
display.drawRect(x, y, w, h, color); 4角を描きます。
display.fillRect(x, y, w, h, color); 4角で塗りつぶします。
display.drawRoundRect(x, y, w, h, rad, color); 角丸の4角を描きます。
display.fillRoundRect(x, y, w, h, rad, color); 角丸で塗りつぶします。
display.drawCircle(x, y, r, color); 丸を描きます。
display.fillCircle(x, y, r, color); 丸で塗りつぶします。
display.drawTriangle(x0, y0, x1, y1, x2, y2, color); 三角を描きます。
display.fillTriangle(x0, y0, x1, y1, x2, y2, color); 三角で塗りつぶします。
display.invertDisplay(true); 表示を反転します。
display.setRotation(n) n=0で0度、1で90度、2で180度、3で270度、画面が回転
display.setFont(const GFXfont); GFXfontで用意されている半角英数のフォントを読み込む。
(凡例 w:幅、h:高さ、rad:角丸の大きさ、r:円の直径、color:通常はWHITE)
その他に、表示内容のスクロールや画像の表示などが出来ます。



4.使い方

Adafruit_GFX.hライブラリー、Adafruit_SSD1306.hライブラリーを使用することにより下記の手順でディスプレーに表示できる。
(1)I2Cのピン宣言 Wire.begin(2,0);
(2)SSD1306の起動 display.begin(SSD1306_SWITCHCAPVCC, 0x3C)
(3)画面の回転 display.setRotation(2);
(4)テキストサイズ指定 display.setTextSize(1);
(5)テキスト色指定 display.setTextColor(WHITE);
(6)ディスプレーのクリア display.clearDisplay();
(7)テキスト位置指定 display.setCursor(0, 0);
(8)ディスプレー表示 display.println("Hello, OLED SSD1306");
 ・
 ・
(9)ディスプレーに表示 display.display()



























更新日 2025/11/24 19:49  管理者 平林 剛Hirabayashi Takeshi