#1 2017-08-20 10:42:48

alexfrb
Участник
Зарегистрирован: 2017-08-20
Сообщений: 3

OLED дисплей 0.96" SPI 128x64

Подскажите пожалуйста начинающему.Есть дисплей 0.96" 128X64 OLED SPI.Возможно ли, без танцев с бубном,  переделать скетч созданный для I2C интерфейса?

#2 2017-08-20 11:41:25

Вячеслав Азаров
Участник
Из Запорожье
Зарегистрирован: 2017-05-25
Сообщений: 406

Re: OLED дисплей 0.96" SPI 128x64

alexfrb пишет:

Подскажите пожалуйста начинающему.Есть дисплей 0.96" 128X64 OLED SPI.Возможно ли, без танцев с бубном,  переделать скетч созданный для I2C интерфейса?

smile Возможно. Уж танцевать с бубном для этого точно не потребуется. Только немного напрячь ум.

#3 2017-08-20 12:12:40

alexfrb
Участник
Зарегистрирован: 2017-08-20
Сообщений: 3

Re: OLED дисплей 0.96" SPI 128x64

Спасибо Вячеслав Азарову за "помощь" начинающему Я думаю Установить библиотеки. Приписать дисплей.
// software SPI:
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define OLED_MOSI   9
#define OLED_CLK   10
#define OLED_DC    11
#define OLED_CS    12
#define OLED_RESET 13


//software I2C
#include <OLED_I2C.h>
OLED  myOLED(SDA, SCL, 8);

-и менять операторы вывода

// software SPI:
display.clearDisplay();
  display.setTextColor(WHITE);
  display.setTextSize(1);
  display.setCursor(0,0);
display.display();

//software I2C
myOLED.clrScr();
  myOLED.print("Special:", LEFT, 0);
  myOLED.print("!\"#$%&'()*+,-.", CENTER, 16);
  myOLED.print("/:;<=>?@[\\]^_`", CENTER, 24);
  myOLED.print("{|}~", CENTER, 32);
  myOLED.update();
Или есть какие то нюансы?

#4 2017-08-20 12:51:40

Вячеслав Азаров
Участник
Из Запорожье
Зарегистрирован: 2017-05-25
Сообщений: 406

Re: OLED дисплей 0.96" SPI 128x64

alexfrb пишет:

Спасибо Вячеслав Азарову за "помощь" начинающему Я думаю Установить библиотеки. Приписать дисплей.
Или есть какие то нюансы?

Вы же спрашивали о бубне, я вам ответил. А ньюансов никаких нет. Если вы хотите перенести программу c OLED_I2C под Adafruit_GFX то вам придется переписать весь ее графический вывод. Может быть проще переписать OLED_I2C? Вам виднее.
...
Но если у вас в программе вывод только методами класса print то просто назовите так:

Adafruit_SSD1306 myOLED(OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);

Возможно, вообше ничего не нужно будет переписывать. У меня нет  OLED_I2C, что бы сравнить графические методы, совпадвют ли они с Adafruit, а искать не хочется.
...
Теперь есть. Не совпадают, графику придется переделывать, Да и OLED не является производным от класса Print. Возможно, методы print и совпадают логически, тогда вам повезло.

Успехов.

Редактировался Вячеслав Азаров (2017-08-20 15:51:19)

#5 2017-08-23 15:19:44

alexfrb
Участник
Зарегистрирован: 2017-08-20
Сообщений: 3

Re: OLED дисплей 0.96" SPI 128x64

Спасибо! Лучше купить  OLED_I2C и не терять время .Вот в U8glib, раскоментировал нужный дисплей и порядок -          //U8GLIB_SSD1306_128X64 u8g(4, 5, 6, 7);    // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new white HalTec OLED)
//U8GLIB_SSD1306_128X64 u8g(10, 9);        // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are  SCK = 13 and MOSI = 11)
//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0);    // I2C / TWI
//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_NO_ACK|U8G_I2C_OPT_FAST);    // Fast I2C / TWI
//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NO_ACK);    // Display which does not send AC
//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(13, 11, 10, 9);    // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9
//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(10, 9);        // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are  SCK = 13 and MOSI = 11)
//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9);    // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9

А то намешали кучу операторов одного предназначения и пойми что к чему ,в 56 лет 30 лет назад учивший только Бейсик

#6 2017-09-10 09:04:57

Sima
Участник
Зарегистрирован: 2017-09-09
Сообщений: 39

Re: OLED дисплей 0.96" SPI 128x64

Я видел TFT 1.5 дюймов, 150 грн

Быстрое сообщение

Введите сообщение и нажмите Отправить

Подвал раздела