/*ESP32とOLEDの接続
ESP32 → OLED
3V3 → OLED-VCC
GND → GND
D21(GPIO21) → SDA
D22(GPIO22) → SCL
*/
#include <Arduino.h>
#include <Wire.h> //I2Cのライブラリ
#include <Adafruit_GFX.h> //OLEDのGFXライブラリ
#include <Adafruit_SSD1306.h> //OLEDのライブラリ
/*ライブラリをインストールしていない場合には、Arduino IDEのツール→ライブラリ管理で検索欄に上記のライブラリ Adafruit GFX と入力して、表示されるライブラリをインストールする。*/
//OLEDの初期設定 (画面のピクセル数 横128 縦64 px)
Adafruit_SSD1306 display(128, 64, &Wire, -1);
//test1という整数型の変数を定義
int test1;
//test2という整数型の変数を定義し、123456を格納
int test2=123456;
float sqrt2=sqrt(2);
void setup() {
// シリアル通信の設定 (速度 115200 BPS)
Serial.begin(115200);
//OLEDコントローラの初期化 (3.3 V SSD1306_SWITCHCAPVCC, 5 V SSD1306_EXTERNALVCC)
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("SSD1306 allocation failed"));
for(;;); // Don't proceed, loop forever
}
//OLED画面の初期化
display.clearDisplay();
display.setTextColor(WHITE);
}
void loop() {
test1 = 123456;
display.clearDisplay();
//カーソル位置を左上端に設定
display.setCursor(0,0);
//フォントサイズを小(1)に設定
display.setTextSize(1);
//test1に格納した数字を表示
display.println(test1);
//test2に格納した数字を表示
display.println(test2);
//sqrt2に格納した数字をprintlnで表示
display.println(sqrt2);
/*sqrt2に格納した数字をprintfで実数型で表示
(全体を小数点を入れて"10"桁、小数点以下8桁で-は左詰、\nは改行)*/
display.printf("%-12.8f\n",sqrt2);
/*sqrt2に格納した数字をprintfで整数型で表示
(全体を"20"桁で0は0埋め、\nは改行)
実数型の変数であるsqrt2を整数型で扱ったので、内部で扱われている数字が表示される。*/
display.printf("%012ld\n",sqrt2);
//ディスプレイバッファ表示
display.display();
delay(5000);
}