XIAO ESP32C6+SSD1306、クリアして豆腐を召喚する(スペルは、「40-FF」...) #Arduino - Qiita

参考

いろいろ、注意

  • 過去ログを見ようね!!! おねがいします。
  • 3.2.0
  • SSD1306を直接操作
  • いろいろ 昨日(0418)のガジェットメイドカフェでOLED一体型が「かわいい」と褒めて、頂きましたので、勘違いして、精進いたします。(すすむ こころ と 書く)

目的

OLEDのテスト
豆腐がどこかに表示される
(まだ、アドレスの事は、やってないので?)

結果

image_original(21).jpg

イメージ

image_original(22).jpg

プログラム




//有機ELのSSD1306で豆腐を召喚
//秋月のOLEDとアイテンドウのOLEDのアドレスは3c
//SSD1306_int_cls_8x8box_XIAO_ESP32C6_1


//ヘッダー
#include 
#include 


//定義
#define COMMAND_MODE               0x80 // continuation bit is set!
#define DATA_MODE                  0x40

#define SET_MEMORY_ADDRESSING_MODE 0x20 // takes one byte as given above
#define HORIZONTAL_ADDRESSING_MODE 0x00


//I2Cに配列を転送する
void write_s(uint8_t *str1, uint8_t len1) {

  Wire.beginTransmission(  0x3c  );

  for (int icount = 0; icount  len1; icount++) {

    //一文字出力
    Wire.write(*str1 ++);

  }//for

  Wire.endTransmission();

}//write_s


//セットメモリーアドレシングモード
void setMemoryAddressingMode()
{
  uint8_t databytes[4] = {COMMAND_MODE, SET_MEMORY_ADDRESSING_MODE, COMMAND_MODE, HORIZONTAL_ADDRESSING_MODE};
  write_s(databytes, 4);
}//setMemoryAddressingMode


//初期化
void setup() {

  //I2Cの初期化
  Wire.begin(D9,D10); //XIAO ESP32C6+SSD1306
  //Wire.begin(D10,D9); //XIAO ESP32C6+GROVE
  delay(200);

  //SSD1306の初期化スペル(魔法)
  //0x80,0x8D,0x80,0x14,0x80,0xAF
  write_s( (uint8_t*) "20021520024200257", 6);
  delay(100);

  //セットメモリーアドレシングモード (画面の終端に来たら画面の先頭に)
  setMemoryAddressingMode();

  //データの配列の定義
  uint8_t databytes[2] = {DATA_MODE,0x00};

  //画面のクリア
  databytes[1] = 0x00;
  for (int icount = 0; icount  ((128/8)*64); icount++) {
    write_s(databytes, 2);
  }//for

  //8x8の豆腐の表画
  databytes[1] = 0xFF; // 1111-1111
  for (int icount = 0; icount  8; icount++) { // x8
    write_s(databytes, 2);
  }//for

}//setup


//メインループ
void loop() {
  delay(3); //dummy
}//loop





フラッグシティパートナーズ海外不動産投資セミナー 【DMM FX】入金

Source link