我有買了一個0.66″OLED 顯示器 裝在我的arduino 上 不囉嗦直接看程式
#include <Arduino.h>
#include <U8g2lib.h>
#ifdef U8X8_HAVE_HW_SPI
#include <SPI.h>
#endif
#ifdef U8X8_HAVE_HW_I2C
#include <Wire.h>
#endif
//字型https://github.com/olikraus/u8g2/wiki/fntlistall
U8G2_SSD1306_128X64_NONAME_1_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE); //Arduino搭配SSD1306(0.96" OLED)用這行
int counter = 1;
void setup(void) {
Serial.begin(9600);
u8g2.begin();
u8g2.clearDisplay();//清除顯示中所有圖元
u8g2.clearBuffer(); // 清空顯示設備內部緩衝區
}
void loop(void) {
u8g2.clearBuffer(); // 清空顯示設備內部緩衝區
u8g2.firstPage();
Serial.println("ok");
if(counter>76){counter=0;}
do {
u8g2.home(); //讓游標回到左上角原點。
u8g2.setFont(u8g2_font_IPAandRUSLCD_tf); //設定字型 u8g2_font_helvB08_tf
u8g2.setFontPosTop();
// u8g2.drawXBMP(0,16, imgWidth, imgHeight, logo_bmp); //繪圖
u8g2.setCursor(20+counter, 15);//76就超出畫面了
u8g2.print("Kunlex");
u8g2.drawLine(0, 25, 100, 25);
u8g2.setCursor(32, 28);
u8g2.print("Temp:");
u8g2.setCursor(32, 45);
u8g2.print("Hum:");
u8g2.setFont(u8g2_font_6x13B_t_hebrew); //設定字型 u8g2_font_helvB08_tf
u8g2.setFontPosTop();
u8g2.drawStr(68,36, (String(40)+" °C").c_str()); //輸出溫度
u8g2.drawStr(68,54, (String(counter)+"%").c_str()); //輸出濕度
Serial.println(counter);
} while ( u8g2.nextPage() );
counter=counter+1;
delay(1000);
}