Arduino Nano駆動OLEDテストの概要(1)(ソフトIICおよびハードIICリンクSSD1306画面)

必要な準備

ハードウェア

ブレッドボード1つ、Arduino Nanoボード、SSD1306のOLEDスクリーン1つ(この記事ではI2Cインターフェイスを使用)、複数のワイヤー

ここに写真の説明を挿入

ライブラリファイル

u8glib、U8g2 2つのライブラリ、そうでない場合は、CSDNでダウンロードできます。

接続(ハードIICインターフェース)
Arduino あなたは
3V3 VCC
GND GND
A5 SCL
A4 SDA
接続(ソフトIICインターフェース)

I2Cを共有する必要がある場合、U8g2のライブラリはOLEDを駆動するI2Cインターフェイスとして通常のIOをサポートできます。この記事では、D10をSCLインターフェイスとして使用し、D11をSDAインターフェイスとして使用します。

Arduino あなたは
3V3 VCC
GND GND
D10(変更可能) SCL
D11(変更可能) SDA
こんにちはワードテスト
u8glib(ハードIICインターフェイス)に基づく

読みやすさを向上させるため、無関係なコンテンツを削除しました。

  1. ライブラリファイルを追加し、arduinoプログラムを開き、次の図1、2、および3を実行して、ダウンロードしたライブラリファイルを見つけます。
    ここに写真の説明を挿入
  2. デモプログラムの実行
    Arduinoプログラムを開き、1、2、3、4を実行し
    ここに写真の説明を挿入
    ますテストを続行して結果を表示する場合は、次のコードをコピーして3行を表示できます。
#include "U8glib.h"
/*I2C协议*/
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE); 

void setup()
{
  if ( u8g.getMode() == U8G_MODE_R3G3B2 ) 
    u8g.setColorIndex(255);     // white
  else if ( u8g.getMode() == U8G_MODE_GRAY2BIT )
    u8g.setColorIndex(3);         // max intensity
  else if ( u8g.getMode() == U8G_MODE_BW )
    u8g.setColorIndex(1);         // pixel on

  // u8g.setFont(u8g_font_unifont);
  Serial.begin(9600);

  u8g.setFont(u8g_font_osb18);   /*设置字体大小*/
  u8g.setFontRefHeightExtendedText();
  u8g.setDefaultForegroundColor();
  u8g.setFontPosTop();
}

void loop()
{
  u8g.firstPage();  
  do {
    u8g.drawStr(0,0,"hello world!");
    u8g.drawStr(0,20,"ha ha!");
    u8g.drawStr(20,40,"well done!");  /*设置起始位置*/
  } while( u8g.nextPage() );
  delay(500);
}
U8g2(ソフトIICインターフェース)に基づく

#include <Arduino.h>
#include <U8g2lib.h>

#ifdef U8X8_HAVE_HW_SPI
#include <SPI.h>
#endif
#ifdef U8X8_HAVE_HW_I2C
#include <Wire.h>
#endif

U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, /* clock=*/ 10, /* data=*/ 11, /* reset=*/ U8X8_PIN_NONE);   // 设置D10做SCL,D11做SDA,可以改为其它接口
//U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE, /* clock=*/ 16, /* data=*/ 17);   // 如果要用硬IIC接口,可以用这句


void setup(void) {
  u8g2.begin();
}

void loop(void) {
  u8g2.clearBuffer();					// clear the internal memory
  u8g2.setFont(u8g2_font_ncenB14_tr);	// 这里可以修改字体大小
  u8g2.drawStr(0,10,"Hello World!");	// write something to the internal memory
  u8g2.sendBuffer();					// transfer internal memory to the display
  delay(1000);  
}

詳細については、関連するマニュアルを参照してください。

おすすめ

転載: blog.csdn.net/malcolm_110/article/details/101448336