HOME
  Security
   Software
    Hardware
  
FPGA
  CPU
   Android
    Raspberry Pi
  
nLite
  Xcode
   etc.
    ALL
  
LINK
BACK
 

2023/08/04

【ソースコード有】Arduino RP2040で I2C接続の OLED SSD1306 72x40 0.42をサクッと動かす方法 【ソースコード有】Arduino RP2040で I2C接続の OLED SSD1306 72x40 0.42をサクッと動かす方法

(Arduino RP2040 I2C OLED SSD1306 72x40 0.42 tutorial)

Tags: [ワンチップCPU]




●使用した RP2040の Arduino環境

Arduino IDE 2.0.4
Arduino-Pico Release 3.1.0 2023/03/11
● Additional Boards Manager URLs
https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json


●使用した RP2040のボード、Raspberry Pi Waveshare RP2040-Zero

Waveshare RP2040-Zero


Waveshare RP2040-Zero 高性能ピコライクMCUボード Raspberry PiマイクロコントローラーRP2040 カステレーションモジュールでキャリアボードに直接はんだ付け可能 - 2個
ASIN: B0B2Z3YWB9

KKHMF 20個 USB タイプA メスソケット ブレイクアウトボード 4Pアダプタコネクタ 2.54mm ソルダープリント DIY 基板 ブレッドボード 電源
ASIN: B099PCM2D2

ARCELI 20値0805SMD抵抗器アソートメントキットSMD抵抗器各20合計400
ASIN: B07RTH6JHX

※ 22Ωの抵抗が必要だから

GAOHOU 5個 0.42インチ 4ピン OLEDディスプレイ SSD1306 LCD IICインタフェースモジュール 白表示
ASIN: B0CDC6VSKC

※ I2C OLED SSD1306

・RP2040で I2C接続の OLED SSD1306 72x40 0.42をサクッと動かす方法 回路図
RP2040で I2C接続の OLED SSD1306 72x40 0.42をサクッと動かす方法 回路図



・RP2040で I2C接続の OLED SSD1306 72x40 0.42をサクッと動かす方法
RP2040で I2C接続の OLED SSD1306 72x40 0.42をサクッと動かす方法


RP2040で I2C接続の OLED SSD1306 72x40 0.42をサクッと動かす方法


RP2040で I2C接続の OLED SSD1306 72x40 0.42をサクッと動かす方法



greiman / SSD1306Ascii

SSD1306init.h
//------------------------------------------------------------------------------
// this section is based on 72x40 Micro OLED display (by r7)
/** Initialization commands for a 72x40 SSD1306 0.42 inch oled display. */
static const uint8_t MEM_TYPE MicroOLED72x40init[] = {
    // Init sequence for 72x40 Micro OLED module
    // Model:TOX042TSWPG01 0.42" OLED Display Module (72*40)
    // 4.4 Actual Application Example <Power up Sequence>
/*
    // SSD1315
    SSD1306_DISPLAYOFF,
    SSD1306_SETDISPLAYCLOCKDIV, 0xF0,  // the suggested ratio 0x80
    SSD1306_SETMULTIPLEX, 0x27,        // (DISPLAYHEIGHT - 1)
    SSD1306_SETDISPLAYOFFSET, 0x0,     // no offset
    SSD1306_SETSTARTLINE,              // line #0
    SSD1306_CHARGEPUMP, 0x95,          // internal vcc
    SSD1306_SEGREMAP | 0x1,            // column 127 mapped to SEG0
    SSD1306_COMSCANDEC,                // column scan direction reversed
    SSD1306_SETCOMPINS, 0x12,          // 0x12 if height > 32 else 0x02
    SSD1306_SETCONTRAST, 0xAF,         // contrast level 127
    SSD1306_SETPRECHARGE, 0x1F,        // pre-charge period (1, 15)
    SSD1306_SETVCOMDETECT, 0x20,       // vcomh regulator level
    SSD1306_NORMALDISPLAY,
    SSD1306_DISPLAYALLON_RESUME,
    SSD1306_DISPLAYON
*/
    // SSD1306
    SSD1306_DISPLAYOFF,
    SSD1306_SETDISPLAYCLOCKDIV, 0x80,  // the suggested ratio 0x80
    SSD1306_SETMULTIPLEX, 0x27,        // (DISPLAYHEIGHT - 1)
    SSD1306_SETDISPLAYOFFSET, 0x0,     // no offset
    SH1106_SET_PUMP_MODE, 0x030,       // Internal IREF Setting for the 0.42 OLED, see also issue https://github.com/olikraus/u8g2/issues/1047
    SSD1306_CHARGEPUMP, 0x14,          // internal vcc
    SSD1306_SETSTARTLINE,              // line #0
    SSD1306_NORMALDISPLAY,
    SSD1306_DISPLAYALLON_RESUME,
    SSD1306_MEMORYMODE, 0x00,
    SSD1306_SEGREMAP | 0x1,            // column 127 mapped to SEG0
    SSD1306_COMSCANDEC,                // column scan direction reversed
    SSD1306_SETCOMPINS, 0x12,          // 0x12 if height > 32 else 0x02
    SSD1306_SETCONTRAST, 0x5F,         // contrast level 127
    SSD1306_SETPRECHARGE, 0x22,        // pre-charge period (1, 15)
    SSD1306_SETVCOMDETECT, 0x20,       // vcomh regulator level
    SSD1306_DISPLAYON
};
/** Initialize a 72x40 Micro OLED display. */
static const DevType MEM_TYPE MicroOLED72x40 = {
  MicroOLED72x40init,
  sizeof(MicroOLED72x40init),
  72,
  40,
  28 // Use middle 72 columns. (128 - 72) / 2
};
// clang-format on
#endif  // SSD1306init_h
 ※ 72x40の場合、黄色行の SH1106_SET_PUMP_MODE, 0x030, が必要です。

2023/08/14
72x40の OLEDの画面表示が出るまでに時間が掛かるのを修正する方法 OLED SSD1306 0.42'
72x40の OLEDの画面表示が出るまでに時間が掛かるのを修正する方法 OLED SSD1306 0.42'

  How to fix OLED 0.42' 72x40 screen display slow to appear

// Waveshare RP2040-Zero
#include "SSD1306Ascii.h"
#include "SSD1306AsciiWire.h"

// 0X3C+SA0 - 0x3C or 0x3D
#define I2C_ADDRESS 0x3C

// Define proper RST_PIN if required.
#define RST_PIN -1

SSD1306AsciiWire oled;

void setup() {
  // put your setup code here, to run once:

  // Select IO pins to use.  Call before ::begin()
  Wire.setSDA(28);
  Wire.setSCL(29);
  Wire.begin();
  // SCL tcycle Clock Cycle Time = 2.5us = 400kHz
  Wire.setClock(400000L); // 400kHz

  // SSD1306 72*40 0.42' MicroOLED72x40

#if RST_PIN >= 0
  oled.begin(&MicroOLED72x40, I2C_ADDRESS, RST_PIN);
#else // RST_PIN >= 0
  oled.begin(&MicroOLED72x40, I2C_ADDRESS);
#endif // RST_PIN >= 0
  // Call oled.setI2cClock(frequency) to change from the default frequency.

  oled.setFont(System5x7);
  oled.clear();
  oled.println("Hello world!");
  oled.println("123456789012");
  oled.println("333333333333");
  oled.println("444444444444");
  oled.println("555555555555");
  oled.setContrast(32);
}

void loop() {
  // put your main code here, to run repeatedly:
  oled.clear();
  delay(500);
  oled.println("Hello world!");
  oled.println("123456789012");
  oled.println("333333333333");
  oled.println("444444444444");
  oled.println("555555555555");
  delay(500);
}



Tags: [ワンチップCPU]

●関連するコンテンツ(この記事を読んだ人は、次の記事も読んでいます)

STM32 STM32F103C8T6マイコンボードを ST-Link V2(中華製の互換ドングル)を使って開発
STM32 STM32F103C8T6マイコンボードを ST-Link V2(中華製の互換ドングル)を使って開発

  STM32F103C8 ARM Cortex-M3 72MHz CPU、ST-LINK Utilityでファームのアップデート

STM32 STM32F103C8T6の Windows用の開発環境を無料で構築する方法。CubeMX True STUDIO ST-LINK V2
STM32 STM32F103C8T6の Windows用の開発環境を無料で構築する方法。CubeMX True STUDIO ST-LINK V2

  Windows用の STM32F103C8 ARM Cortex-M3 72MHzの開発環境を無料で作る、STM32CubeMX、TrueSTUDIO、ST-LINK V2

STM32 STM32F103C8T6の USB CDC Virtual COM portドライバを Windows 7に組み込む方法
STM32 STM32F103C8T6の USB CDC Virtual COM portドライバを Windows 7に組み込む方法

  Windows 7で VCPドライバを組み込む時に「INFファイルが無効です」の解決方法、COMポート増殖を防ぐ方法(増えすぎた COMポートを削除)

STM32 STM32F103C8T6の USB CDC Virtual COM portデバイスを実装する
STM32 STM32F103C8T6の USB CDC Virtual COM portデバイスを実装する

  STM32 STM32F103C8T6に STCubeで CDC VCPデバイスを組み込み、動作試験のループバックを実装する

STM32 STM32F103C8T6で ARM GCCの Cソース中にインラインアセンブラを記述する方法
STM32 STM32F103C8T6で ARM GCCの Cソース中にインラインアセンブラを記述する方法

  ARM GCCの Cソース中にインラインアセンブラを記述する方法

STM32 STM32F103C8T6で SPI接続の 1.8インチ TFT液晶を使用する方法
STM32 STM32F103C8T6で SPI接続の 1.8インチ TFT液晶を使用する方法

  STM32に 128x160 ST7735 TFT 1.8インチ LCDを SPI接続して自前アプリから文字列を描画する方法。

STM32 STM32F103C8T6マイコンボード開発、CubeMX STM32CubeMXの使い方
STM32 STM32F103C8T6マイコンボード開発、CubeMX STM32CubeMXの使い方

  STM32マイコン用の初期設定コード生成ツール STM32CubeMXの使い方、USBデバイスの作成方法

STM32 STM32F103C8のクローン(複製品) 108MHz動作の GD32F103C8、CS32F103C8
STM32 STM32F103C8のクローン(複製品) 108MHz動作の GD32F103C8、CS32F103C8

  STM32クローン GigaDevice GD32F103C8T6 108MHz、CKS CS32F103C8T6 72MHz

ラズパイを意識した別物製品 Orange Pi Zeroを買ってみた、Allwinner H2+ Cortex-A7 4core
ラズパイを意識した別物製品 Orange Pi Zeroを買ってみた、Allwinner H2+ Cortex-A7 4core

  オレンジパイはラズパイよりもコスパは良いが情報が無いので利用者側に一定のスキルが必要

Orange Pi PC 2を買ってみた、Allwinner H5 Cortex-A53 4core ARM64
Orange Pi PC 2を買ってみた、Allwinner H5 Cortex-A53 4core ARM64

  ラズパイを意識した別物製品、オレンジパイはラズパイよりもコスパが良い、でも情報が無い

Raspberry Pi Zero Wを海外通販の Pimoroni等での購入方法、購入できる通販ショップ一覧まとめ
Raspberry Pi Zero Wを海外通販の Pimoroni等での購入方法、購入できる通販ショップ一覧まとめ

  ラズパイゼロW ワイヤレスモデルを海外通販でサクッと簡単に個人輸入で入手。技適通過でも国内販売は常に品切れ

大人気の CPUボード、Raspberry Pi 3 Model Bで作ってみよう
大人気の CPUボード、Raspberry Pi 3 Model Bで作ってみよう

  Raspberry Piの開発環境の構築やタッチパネル付き液晶ディスプレイや各種センサーの使い方まとめ

Espressif ESP32 Arduino互換でスケッチが使える WROOM32開発基板
Espressif ESP32 Arduino互換でスケッチが使える WROOM32開発基板

  Espressif ESP32 32ビット Arduino互換マイコンボードをお手軽に開発する方法

Espressif ESP8266 Arduino互換でスケッチが使える ESP-12Eモジュール基板
Espressif ESP8266 Arduino互換でスケッチが使える ESP-12Eモジュール基板

  Espressif ESP8266 ESP-12-E NodeMCU V1 ESP12 CP2102

BangGood通販はドローン以外にも面白い商品がまだまだ有った(電子工作編)
BangGood通販はドローン以外にも面白い商品がまだまだ有った(電子工作編)

  レーザー彫刻機、カラー液晶の DIYオシロ、Arduinoや Raspberry Pi用の小型カラー液晶




[HOME] | [BACK]
リンクフリー(連絡不要、ただしトップページ以外は Web構成の変更で移動する場合があります)
Copyright (c) 2023 FREE WING,Y.Sakamoto
Powered by 猫屋敷工房 & HTML Generator

http://www.neko.ne.jp/~freewing/cpu/rp2040_i2c_oled_ssd1306/