Emoticon di Oled SSD1306 I2C pakai Library u8g2

Posted on

Pada artikel ini saya akan memberikan kode program untuk menampilkan Emoticon di Oled SSD1306 I2C menggunakan library u8g2. Sebenarnya ini adalah kode porgram dari example yang telah ada, namun untuk keperntingan pribadi, saya menghapus beberapa baris program yang tidak digunakan.

Untuk itu, bagi anda yang ingin melihat kode program secara utuh, silahkan pergi ke library u8g2, lalu lihat example pada sub menu pageBuffer lalu cari ButtonEmoticon.

Kode Program

Berikut adalah kode programnya, silahkan anda upload ke Arduino board anda.

/*
  Copyright (c) 2021, olikraus@gmail.com
  All rights reserved.
*/

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

U8G2_SSD1306_128X64_NONAME_1_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);

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

uint8_t width = 5;
uint8_t width_state = 1;
uint8_t border = 0;
uint8_t border_state = 1;
uint8_t emoticons = 0;
uint8_t emoticons_state = 1;
uint8_t offset = 0;
uint8_t offset_state = 1;

void wave(uint8_t min, uint8_t max, uint8_t &v, uint8_t &state) {
  if ( state ) {
    v++;
    if ( v >= max )
      state = 0;
  } else {
    v--;
    if ( v <= min )
      state = 1;
  }
}

void loop(void) {
  u8g2_uint_t x = u8g2.getDisplayWidth()/2;
  u8g2_uint_t y = u8g2.getDisplayHeight()/2;
  char text[2] = " ";
  y += offset>>4;
  text[0] = (emoticons>>2)+32;
  u8g2.setFont(u8g2_font_emoticons21_tr);
  u8g2.firstPage();
  do {
    u8g2.drawButtonUTF8(x, y, U8G2_BTN_HCENTER | (border>>2), width, 1, 1, text);
  } while ( u8g2.nextPage() );
  delay(30);
  wave(7, u8g2.getDisplayWidth()/2, width, width_state);
  wave(0, 3<<2, border, border_state);
  wave(0, 7<<2, emoticons, emoticons_state);
  wave(0, 11<<4, offset, offset_state);
}

Hasil

Dari kode program diatas, anda dapat melihat hasilnya yang tampil pada Oled SSD1306 seperti pada gambar berikut:

Emoticon di Oled SSD1306 I2C pakai Library u8g2

Artikel yang bermanfaat lainnya:
> Bitmap Cuaca Oled SSD1306 Pakai Library u8g2
> Teks Pada Oled SSD1306 I2C dengan library u8g2

Semoga artikel Emoticon di Oled SSD1306 I2C pakai Library u8g2 ini bermanfaat.