Soru & Cevap

oled 1.3 inch sh1106 ekranına anlık veri yazdırma ...

16.08.2017 - 01:46

merhaba :)) 

ben mini hava istasyonu projesi yapıyorum dht11 ve bmp180 kullanarak sıcaklık, nem ve basınç değerlerini alıp seri portta okuyabiliyorum. ancak aldığım değerleri oled ekrana yazdırmak istiyorum. oled sh1106 1.3 inch ekran sadece datasheetindeki kodu çalıştıyor ve o kod ve kütüphane haricinde hiç bir kodu/kütüphaneyi çalıştırmıyor. sanırım kütüphanede tanımladığı kodlardan başka bir kodu okumuyor. kod ve kütüphaneyi paylaşıyorum gözden kaçırdığım bir şey mi var acaba? daha önce buna benzer bir sorunla karşılaşan ya da bu konuyla ilgili fikri olan biri bunu benimle paylaşabilir mi?  ekte datasheetdeki kodu ve kütüphaneyi paylaştım. şimdiden çok teşekkür ederim. 

/*****************************************************************************
*
* File                : oled.ino
* Hardware Environment: Arduino UNO
* Build Environment   : Arduino
* Version             : V1.0.7
*
*                 (c) Copyright 2005-2017, WaveShare
*                      http://www.waveshare.com
*                      http://www.waveshare.net   
*                         All Rights Reserved
*
*****************************************************************************/
#include <SPI.h>
#include <Wire.h>
#include "sh1106.h"

#define VCCSTATE SH1106_SWITCHCAPVCC
#define WIDTH     128
#define HEIGHT     64
#define NUM_PAGE    8  /* number of pages */

#define OLED_RST    9 
#define OLED_DC     8
#define OLED_CS    10
#define SPI_MOSI   11    /* connect to the DIN pin of OLED */
#define SPI_SCK    13     /* connect to the CLK pin of OLED */

uint8_t oled_buf[WIDTH * HEIGHT / 8];

void setup() {
  Serial.begin(9600);
  Serial.print("OLED Example\n");

  /* display an image of bitmap matrix */
  SH1106_begin();
  SH1106_clear(oled_buf);
  SH1106_bitmap(0, 0, Waveshare12864, 128, 64, oled_buf);
  SH1106_display(oled_buf);
  delay(2000);
  SH1106_clear(oled_buf);

  /* display images of bitmap matrix */
  SH1106_bitmap(0, 2, Signal816, 16, 8, oled_buf); 
  SH1106_bitmap(24, 2,Bluetooth88, 8, 8, oled_buf); 
  SH1106_bitmap(40, 2, Msg816, 16, 8, oled_buf); 
  SH1106_bitmap(64, 2, GPRS88, 8, 8, oled_buf); 
  SH1106_bitmap(90, 2, Alarm88, 8, 8, oled_buf); 
  SH1106_bitmap(112, 2, Bat816, 16, 8, oled_buf); 

  SH1106_string(0, 52, "MUSIC", 12, 0, oled_buf); 
  SH1106_string(52, 52, "MENU", 12, 0, oled_buf); 
  SH1106_string(98, 52, "PHONE", 12, 0, oled_buf);

  SH1106_char3216(0, 16, '1', oled_buf);
  SH1106_char3216(16, 16, '2', oled_buf);
  SH1106_char3216(32, 16, ':', oled_buf);
  SH1106_char3216(48, 16, '3', oled_buf);
  SH1106_char3216(64, 16, '4', oled_buf);
  SH1106_char3216(80, 16, ':', oled_buf);
  SH1106_char3216(96, 16, '5', oled_buf);
  SH1106_char3216(112, 16, '6', oled_buf);

  SH1106_display(oled_buf); 
}

void loop() {

}

 

106 Görüntülenme

1 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

picture-87289-1569234090.png
yakupgovler
06.10.2019 - 11:36

Verdiğiniz kodlar, ekranın kullanımı için örnek olarak verilmiş kodlar. Kodlarda verilen fonksiyonlar ile kendi bilgilerinizi yazdırabilirsiniz. örneğin, ilk önce içerisinde kayıtlı bir isminden dalgalı bir resmi, ardından da sinyal, bluetooth, mesaj vb. resimleri gösteriyor. Ardından da sh1106_string ile de çeşitl yazıları istediğini koordinatlara yazdırıyor, display komutuyla da değişkeni yazdırıyor. Siz Setup() içerisindeki 

SH1106_begin(); //ekranı başlatır

SH1106_clear(oled_buf);  //ekranı temizler

satırları dışındakileri silip, kendi kodlarınız içinde sildiğiniz komutları uygun şekilde kullanacaksınız. Örneğin sh1109_string yazı yazmaya yarıyor, fonksiyonun ilk iki parametresi muhtemelen koordinattır.