2025年5月22日木曜日

Pico - SSD1306 OLED U8g2 表示テスト

Raspberry Pi PicoによるOLED(SSD1306)表示をU8g2ライブラリでテストしました。 
 
結線
OLED     Pico
SDA   -   GP16
SCL    -   GP17
VCC    -   3V3
GND   -   GND



参考サイト
●OLEDディスプレイ
●ArduinoでOLEDを動かす(u8g2libライブラリを使用)
●図形の表示
●機能拡張ボードをArduinoIDEで開発(OLED編)
●u8g2 のフォントの使い方を理解する





U8g2関数
U8G2_SSD1306_128X64_NONAME_1_HW_I2C u8g2(U8G2_R0)
  U8G2_R0:回転なし
  U8G2_R1:90度回転
  U8G2_R2:180度回転
  U8G2_R3:270度回転
  U8G2_MIRROR:ミラー表示


u8g2.setFlipMode(0) 画面表示(通常)
u8g2.setFlipMode(1) 画面表示(上下反転)

u8g2.setCursor(X座標 ,Y座標 )
u8g2.print(  ) → ("文字列”) ,(変数)

u8g2.drawPixel(X座標, Y座標)
u8g2.setFont(フォント名) 
u8g2.drawStr(X座標, Y座標, 文字列)
u8g2.drawLine(始点のX座標, 始点のY座標, 終点のX座標, 終点のY座標)
u8g2.drawFrame(座標X,座標Y,幅,高さ) □
u8g2.drawBox(始点のX座標, 始点のY座標, 幅, 高さ) ■
u8g2.drawCircle(中心座標X,中心座標Y,半径,描画方法)〇
u8g2.drawTriangle(座標X1,座標Y1座標X1,座標Y1,座標X2,座標Y2,座標X3,座標Y3)三角
u8g2.drawRFrame(座標X,座標Y,幅,高さ,角半径) 角丸
u8g2.drawEllipse(中心座標X,中心座標Y,横半径,縦半径,描画方法) 楕円

U8G2_DRAW_ALL - 円全体を描画します
U8G2_DRAW_UPPER_RIGHT - 円の上右側1/4のみ描画
U8G2_DRAW_UPPER_LEFT - 円の上左側1/4のみ描画
U8G2_DRAW_LOWER_LEFT - 円の下左側1/4のみ描画
U8G2_DRAW_LOWER_RIGHT - 円の下右側1/4のみ描画

u8g2.drawXBM(座標X,座標Y,幅,高さ,bitmap)
u8g2.drawUTF8(座標X,座標Y,const char *s)
u8g2.drawGlyph(座標X,座標Y,uint16_t encoding)

u8g2フォント

OLEDテスト表示










プログラム Arduino IDE【ボード:Raspberry Pi Pico】
#include <Arduino.h>
#include <U8g2lib.h>
#include <Wire.h>
U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0);
 
void setup(void) {
  Wire.setSDA(16);  //SDA
  Wire.setSCL(17);  //SCL
  Wire.begin();
  u8g2.begin ();          // OLEDの初期化
  u8g2.setFlipMode(0);   // 画面の向きを設定、数字を変えると向きが変わる
}

void loop(void) {
 u8g2.clearBuffer();                 // バッファのクリア
 u8g2.setFont(u8g2_font_7x14_tr); // フォント設定
 //文字列表示
 u8g2.setCursor(0,10); //(X座標 ,Y座標 )
 u8g2.print("Ab ");    //"文字列”
 //文字列変数
 String st = "Cd";    // 文字列変数
 u8g2.print(st);
 //小数点を含む数値を文字列に変換
 double a = 123.456;  //数値
 char str[50];          //文字列
 dtostrf(a, 6, 1, str); //dtostrf(数値,空白+数値の長さ,小数点以下の表示,文字列)
 u8g2.print(str);
 
 u8g2.setFont(u8g2_font_mozart_nbp_tr);
 u8g2.drawStr(0, 20, "mozart_nbp_tr");
 u8g2.setFont(u8g2_font_5x7_tr);
 u8g2.drawStr(0, 30, "5x7_tr");
 u8g2.setFont(u8g2_font_6x10_tr);
 u8g2.drawStr(0, 40, "6x10_tr");    
 u8g2.drawLine(0, 45, 128, 40);        // 線
 u8g2.drawFrame(0, 50 , 10 , 10);      // □      
 u8g2.drawBox(12, 50, 10, 10);         // ■
 u8g2.drawCircle(32, 55, 5, U8G2_DRAW_ALL); //〇
 u8g2.drawTriangle(42, 60, 52, 50, 62, 60); //▲
 u8g2.sendBuffer();                    // バッファを転送して表示
  for (;;) {}
}

0 件のコメント:

コメントを投稿

Pico SDR - FIR・IIRフィルタ受信テスト

github.com/JR3XNW FIR・IIRフイルタ及びライブラリFIR・IIRフイルタを使用しRaspberry Pi Picoによる、Si5351A 7MHz VFO→直交ミキサ→ADC入力→SSB検波【demod = adc_I - adc_Q】→FIR・IIRフィル...