Тест OLED дисплея 0.96" 128*64 6 пин

Тестируем OLED дисплей 0.96” 6 пинов с Arduino Mega 2560 R3

Дисплей имеет низкое энергопотребление, так как OLED дисплее не нуждаются в подсветки. Вместо подсветки светят отдельно каждый пиксель. Дисплей имеет разрешение 128*64 пикселя и выполнен на чипе SSD1306.

На Ардуино Мега расположение пинов SPI отличается от других плат семейства.
Поэтому подключим дисплей следующим образом: 

Распиновка:

Пин дисплея

Назначение

Пин Arduino Mega
 1 GND  питание «-»  GND
 2 VCC  питание «+»3.3V  3.3v
 3 SCL  CLK Clock  52
 4 SDA  MISO  50
 5 RES  MOSI  51
 6 DC  data / command  10

 

 

Подключаем дисплей к Ардуино.

Должно получится так:

 

Скачиваем библиотеку u8glib_arduino и загружаем скетч:.

#define OLED_SCL   52
#define OLED_SDA   50
#define OLED_RES   51
#define OLED_DC    10

#define FPS    12
#include U8glib.h

unsigned long last_refresh = 0;
unsigned long interval = 1000 / FPS;
int angle = 0;

// http://carduino.ru/product_info.php?products_id=2141
U8GLIB_SSD1306_128X64 u8g_spi(OLED_SCL, OLED_SDA, U8G_PIN_NONE, OLED_DC, OLED_RES);


void setup() {
}

unsigned int maxFPS = 0;

void loop() {
  if ((unsigned long)(millis() - last_refresh) >= interval) {
    angle -= 6;
    if (angle <= 0) { angle = 360 + angle; }

    last_refresh = millis();
    u8g_spi.firstPage();  
    do {
      draw(u8g_spi, angle, maxFPS);
    } while( u8g_spi.nextPage() );
    maxFPS = 1000 / (millis() - last_refresh);
  }

}

const int cx = 110;
const int cy = 20;
const int r = 15;
const int x = cx + 0;
const int y = cy - r + 3;
void draw(U8GLIB u8g, int angle, int maxFPS) {
  // graphic commands to redraw the complete screen should be placed here  
  u8g.setFont(u8g_font_unifont);
  u8g.drawStr(0, 20, "MAX FPS: ");
  u8g.setPrintPos(70, 20);
  u8g.print(maxFPS);
  u8g.drawCircle(cx, cy, r);
  float radians = 0.01745329251 * angle;  // Pi/180 * angle
  float c = cos(radians);
  float s = sin(radians);
  int nx = (c * (x - cx)) + (s * (y - cy)) + cx;
  int ny = (c * (y - cy)) - (s * (x - cx)) + cy;
  u8g.drawLine(cx, cy, nx, ny);
  u8g.drawStr(20, 63, "CARDUINO.RU");
}



 

Смотрим что получилось

 

 
В тесте присутствуют следующие компоненты:
OLED дисплей 0.96" 6 pin
Arduino Mega 2560 R3
Набор проводов dupont



Просмотров: 1176

Дата: Суббота, 25 Февраля 2017