LoginSignup
0
0

More than 1 year has passed since last update.

Arduino UNOで有機エレクトロルミネッセンス時計。(DS1307)(Adafruit SSD1306,Adafruit GFX)

Last updated at Posted at 2022-09-27

x ライブラリのインストール方法は、めんどいので省略
x サイズは、約13KB

x 時間合わせは、別
x Arduino UNOは、そのArduino UNO互換機

x 非営利、研究調査目的で引用する。

目的
OLEDのテスト
アイテンドウの0.96 128x64(OLED) OLED096UNO-A
秋月のDS1307ZN+T&R I-06950

o_con804.jpg

o_con625.jpg

参考

STM32G071のプログラムの完全にそのまま




#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>



#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
#define OLED_RESET     -1 // Reset pin # (or -1 if sharing Arduino reset pin)
#define SCREEN_ADDRESS 0x3C ///< See datasheet for Address; 0x3D for 128x64, 0x3C for 128x32
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);



// コンパイル時にヘッダーファイルが適切に編集されていない場合に
// "Height incorrect, please fix Adafruit_SSD1306.h!"
// というエラーを表示するための記述
//#if (SSD1306_LCDHEIGHT != 64)
//#error("Height incorrect, please fix Adafruit_SSD1306.h!");
//#endif

// RSTピンがない互換品を使用するので-1を指定
//Adafruit_SSD1306 display(-1);

void setup() {
  // I2Cアドレスは使用するディスプレイに合わせて変更する
  display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS);
}


// デバイスアドレス(スレーブ)
#define ADDR    0x68    // 2進数 1101000

char data_read[16];


void loop() {
  // 画面表示をクリア
  display.clearDisplay();

  // テキストサイズを設定
  display.setTextSize(3);
  // テキスト色を設定
  display.setTextColor(WHITE);
  // テキストの開始位置を設定
  display.setCursor(0, 10);


  // レジスタのアドレスを先頭にする
  Wire.beginTransmission(ADDR);
    Wire.write(0x00);
  Wire.endTransmission();
  delay(1);

  // I2Cスレーブに8byteのレジスタデータを要求する
  Wire.requestFrom(ADDR, 8);

  // 8byteのデータを取得する
  for (int ii = 0; ii < 8; ii++) {
    while (Wire.available() == 0 ) {}
    data_read[ii] = Wire.read();
  }
  delay(1);




  //表示変換する
  char str1[16];
  str1[0] = '0' + (data_read[2] >> 4);
  str1[1] = '0' + (data_read[2] & 0xf);
  str1[2] = ':';
  str1[3] = '0' + (data_read[1] >> 4);
  str1[4] = '0' + (data_read[1] & 0xf);
  str1[5] =  0;




  // 1行目に"Hello"を表示
  display.println(str1);
  // 2行目に"World!"を表示
  //display.println("World!");

  // 描画バッファの内容を画面に表示
  display.display();

  delay(1000);
}



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