Помогите разобраться с дисплеем OLED LCD Display I2C 0.96 IIC Serial 128X64

inhelp
inhelp аватар
Offline
Зарегистрирован: 23.09.2012

Я на английском вывожу )))

kanopuk
Offline
Зарегистрирован: 16.05.2015

Но ведь это не удобно.

Ради запятой нужно менять шрифт: myOLED.setFont(SmallFont);, а потом обратно на русский.

Sirocco
Offline
Зарегистрирован: 28.09.2013

inhelp, вот тут http://arduino-project.net/oled-l2c-arduino-uno/ Вы ловко подключаете библиотеки и работаете с ними. Но не всё так просто. Потому что не компилируется оно:

Как видите версия IDE как и у Вас, библиотеки от Вас скачал.

Мне, по большому счёту пофиг, не получилось, тупо забил, взял другую библиотеку, заработала, пошёл дальше. Но совсем новичкам, сложно приходится. Все так пишут - ардуино, это просто, примеров уйма! А когда берёшься, идёшь один в один по шагам - оказывается что нихрена не работает, и нужно неделями сидеть на форумах. Ещё эти кучи несовместимых версий IDE, после новой каждой старые библиотеки не подходят без допиливания...

Лучше бы сразу давали архив в котором IDE со всеми нужными библиотеками, как в примере. Распаковал и работай.

Ладно. Надо мне одно было узнать. Нашёл я единственную запустившуюся библиотеку: OLED_I2C.

Как используя её закрасить прямоугольник? Например рисую:

myOLED.drawRect(24, 0, 29, 15);

Как сделать чтоб он был закрашен?

inhelp
inhelp аватар
Offline
Зарегистрирован: 23.09.2012

Sirocco пишет:

inhelp, вот тут http://arduino-project.net/oled-l2c-arduino-uno/ Вы ловко подключаете библиотеки и работаете с ними. Но не всё так просто. Потому что не компилируется оно:

Как видите версия IDE как и у Вас, библиотеки от Вас скачал.

Мне, по большому счёту пофиг, не получилось, тупо забил, взял другую библиотеку, заработала, пошёл дальше. Но совсем новичкам, сложно приходится. Все так пишут - ардуино, это просто, примеров уйма! А когда берёшься, идёшь один в один по шагам - оказывается что нихрена не работает, и нужно неделями сидеть на форумах. Ещё эти кучи несовместимых версий IDE, после новой каждой старые библиотеки не подходят без допиливания...

Лучше бы сразу давали архив в котором IDE со всеми нужными библиотеками, как в примере. Распаковал и работай.

Ладно. Надо мне одно было узнать. Нашёл я единственную запустившуюся библиотеку: OLED_I2C.

Как используя её закрасить прямоугольник? Например рисую:

myOLED.drawRect(24, 0, 29, 15);

Как сделать чтоб он был закрашен?

1) для исправления ошибки со скетчем --- удалите библиотеку ArduinoRobot из папки с библиотеками и все заработает, там конфликт библиотек... (читайте ошибки для понятия причины )))

2) в скором будущем буду прилагать видеоуроки к статьям, что бы все наглядно было ...

3) библиотека OLED_I2C не имеет возможности рисовать закрашеные прямоугольники

4) обновите arduino ide до последней версии...

Sirocco
Offline
Зарегистрирован: 28.09.2013

inhelp пишет:

1) для исправления ошибки со скетчем --- удалите библиотеку ArduinoRobot из папки с библиотеками и все заработает, там конфликт библиотек... (читайте ошибки для понятия причины )))

2) в скором будущем буду прилагать видеоуроки к статьям, что бы все наглядно было ...

3) библиотека OLED_I2C не имеет возможности рисовать закрашеные прямоугольники

4) обновите arduino ide до последней версии...

Спасибо!

zito
Offline
Зарегистрирован: 08.06.2015

inhelp
OLED часы на arduino с отображением температуры

sketch_jun08a.cpp.o: In function `loop':
C:\Users\mKukys\arduino-1.0.5/sketch_jun08a.ino:20: undefined reference to `MegaNumbers'
C:\Users\mKukys\arduino-1.0.5/sketch_jun08a.ino:20: undefined reference to `MegaNumbers'

Спасибо!

 

 

Aleks2158
Offline
Зарегистрирован: 19.01.2014

Всем здравствуйте! У меня вопрос к inhelp - как самому сделать шрифт к OLED LCD Display I2C 0.96 , и можно-ли переделать ваши шрифты. Хочется подогнать их под себя. Если можно поподробней. Я думаю это будет интересно многим. Заранее спасибо.

 

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

ага, тоже интересно.

inhelp
inhelp аватар
Offline
Зарегистрирован: 23.09.2012

Числовые шрифти переделать не проблема, буквенные тоже --- напишу в скором времени статью на сайт как самому сделать ... Сейчас сайт временно не доступен, переезжаем на новый сервер ... 

 

inhelp
inhelp аватар
Offline
Зарегистрирован: 23.09.2012

zito пишет:

inhelp
OLED часы на arduino с отображением температуры

sketch_jun08a.cpp.o: In function `loop':
C:\Users\mKukys\arduino-1.0.5/sketch_jun08a.ino:20: undefined reference to `MegaNumbers'
C:\Users\mKukys\arduino-1.0.5/sketch_jun08a.ino:20: undefined reference to `MegaNumbers'

Спасибо!

 

 

 

у Вас стандартная библиотека, а скетч сделан на основе библиотеки OLED_I2C переделанной мною ( там добавлены рус и укр шрифты + большие числовые шрифты ...

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

а как выводить не текст, а числа-переменные?

myOLED.print(temperature, 0, 35); - не компилируется: invalid conversion from 'float' to 'const char*'. Если int, то аналогично.

inhelp
inhelp аватар
Offline
Зарегистрирован: 23.09.2012

MyOLED.print(String(temperature),0,35);

av358
Offline
Зарегистрирован: 18.06.2015

Доброго дня всем !

У меня такой вопрос. На Ардуино НАНО 3.0 запустил этот дисплейчик.

Всё бы ни чего, но паралельно я пытаюсь использовать и таймерные прерывания.

И вижу, что прерывания с этим дисплейчиком не дружат. Сначала использовал прерывания по 16-значному Таймеру 1. Дисплейчик работает, а в прерывание не попадаю. Тоже самое происходит, когда переделал скетч на 8-значный Таймер 2. 

Кто-то сталкивался с такой проблемой? Есть выход?  

 

p.s.  библиотека OLED_I2C

av358
Offline
Зарегистрирован: 18.06.2015

Проверил работу с другой библиотекой - OzOLED, то всё нормально работает !

Но библиотека довольно убогая :(

Lstt
Offline
Зарегистрирован: 19.01.2015

Господа, а никто не поможет для новичков )) портировать замечательную библиотека автора для проекта ESP8266 Arduino IDE https://github.com/esp8266/Arduino/issues/487 ?

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

inhelp пишет:

myOLED.drawRect(24, 0, 29, 15);

3) библиотека OLED_I2C не имеет возможности рисовать закрашеные прямоугольники

Не верю!
 

viod myOLED_FillRectangle(int x0, int y0, int x1, int y1)

{

  for (int i = x0; i <= x1; x++)\

    myOLED.drawLine(i, y0, i, y1);

}

 

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

эт народ. не поленитесь сфоткайте данный дисплейчик на фоне чего нибуть для маштаба. типа в руке там. и вот эта область понизу темная она вообще никак не отпиливается? у китайцев фиг че разглядишь

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

Габариты платы 27х28х3,5 мм, видимая область 21х12 мм. Урезать нечего, но если сможешь ножом срезать скотч, на который держит стекляшку, то получишь гибкую сцепку из платы и дисплея 29х19х1,3 мм.
Бывают трёх видов: двухцветные (верхние 16 пикселей жёлтые, пропуск 1 пиксел, нижняя область голубая), и одноцветные (только белые или только голубые, но без пропуска в 1 пиксел).
Если несколько суток выводить один и тот же текст, то эти пиксели становятся темнее по сравнению с соседними, но потом постепенно восстанавливаются. Неприятно, но при отличной четкости и читаемости, плюс стоимости в 200 р. его можно менять каждый год.

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

Спасибо. плата не нужна особо. сам дисплейчик маловат. а когда все пиксели потушены, то дисплей вообще как бы не живой?

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

подсветки и свечения потушенных пикселей вообще нет, цвет фона темно-темно фиолетовый, почти чёрный.
Бывают ещё размером 1,3" и полноцвет 2,4", но вроде на другом контроллере, не все библы подойдут.

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

Tomasina пишет:
подсветки и свечения потушенных пикселей вообще нет, цвет фона темно-темно фиолетовый, почти чёрный. Бывают ещё размером 1,3" и полноцвет 2,4", но вроде на другом контроллере, не все библы подойдут.

тоесть фон светиться?

контролер без разницы. лиж бы документация к нему была. накорябать библиотеку примитивов, дел на час.

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

Нет, не светится, это подложка такого цвета.

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

Tomasina пишет:
Нет, не светится, это подложка такого цвета.

с полноцветными похоже развод сплошной... ибо не могут они стоить дешевле чем монохромные... даже если без контролера... не получиться видимо игрушку собрать :)

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

А полноцветный стоит 40$ :)

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

Tomasina пишет:
А полноцветный стоит 40$ :)

это монохромный размера 2.4 стоит в районе 40 баксов...

а полноцветные видимо куда то дальше к космосу.

Vittorio
Offline
Зарегистрирован: 02.02.2015
Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

ого, круглый дисплей мне нравится. Маловат только.

Осталось подождать пока китайцы его клонируют.

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

вы видимо что то пропустили в обсуждении.. 1.5" размеры ОЛЕД по вашим ссылкам... а не 2.4 хотя бы.. а все что другое там вообще обычные TFT, хоть круглые, хоть квадратные..

единственный 1.7" за 40 баксов, но без контролера..

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

Tomasina пишет:

ого, круглый дисплей мне нравится. Маловат только.

Осталось подождать пока китайцы его клонируют.

это не ОЛЕД

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

ну тогда неинтересно, мне для улицы надо.

А 2,4'' вот: http://www.ebay.com/itm/Green-2-4-OLED-Module-128x64-Graphic-Display-for-Oximeter-Arduino-PIC-AVR-ARM-/301226745140

Есть и 3,2'', но они не квадратные: http://www.ebay.com/itm/White-Serial-SPI-Graphic-3-2-OLED-Module-Display-256x64-Arduino-PIC-AVR-ARM/291185716166

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

ну так это монохромные..

alexgum
Offline
Зарегистрирован: 17.07.2015

Все-таки как менять размер шрифта???

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Я тут предлагал библиотечку с возможностью увеличения размера шрифта в 2 раза:

http://arduino.ru/forum/programmirovanie/kirillitsa-na-displee-ili-chto-...

но отклика не услышал. Так что пока проект находится в той стадии, которая выложена в теме.

i2c
Offline
Зарегистрирован: 31.07.2015

Библиотека OLED_I2C очень медленно отрисовывает тестовые скетчи, хотя fps (в OLED_I2C_3D_Cube) выводит правильно. А Adafruit для сравнения вполне адекватную скорость отрисовки показывает. С чем это может быть связано?

i2c
Offline
Зарегистрирован: 31.07.2015

Неправильная расключка. Achivment unlocked.

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

а вот такая проблема наблюдается? 

MacSim
Offline
Зарегистрирован: 28.11.2012

av358 пишет:

Доброго дня всем !

У меня такой вопрос. На Ардуино НАНО 3.0 запустил этот дисплейчик.

Всё бы ни чего, но паралельно я пытаюсь использовать и таймерные прерывания.

И вижу, что прерывания с этим дисплейчиком не дружат. Сначала использовал прерывания по 16-значному Таймеру 1. Дисплейчик работает, а в прерывание не попадаю. Тоже самое происходит, когда переделал скетч на 8-значный Таймер 2. 

Кто-то сталкивался с такой проблемой? Есть выход?  

 

p.s.  библиотека OLED_I2C

таймеры не дружат с задержками (паузами).

Один из них в ардуино используется для временного подсчета. если его выключить не будет работать microdelay или macro сейчас не помню.

Копайте в эту сторону

 

 

WaikMan
Offline
Зарегистрирован: 14.11.2015

Добрый день господа!

Прошу прощения что в чужую тему со своим вопросом, но плодить не хочется похожие.

Что есть: Uno 3 и OLED 128x32 I2C вот такой http://ru.aliexpress.com/item/0-91-Inch-OLED-LCD-Module-SPI-IIC-Interface-128-32-Dot-Matrix/32419198416.html

Набор библиотек для работы с OLED

1. Adafruit_SSD1306

2. OzOLED

3. u8glib_arduino_v1.14

4. OLED_I2C

Собственно вопрос:  из всего этого обилия работает только OLED_I2C. Так бы и хорошо, но эта библиотека для экранов 128х64, а у меня 128х32. Эффект интересный - шрифт сплющивается по вертикали в половину. Разобрать не просто. Это если самый крупный выставить. Если мелкий, то то там до 4 точек сжато и вообще не видно ничего. Все остальные библиотеки  (в примерах) вообще ничего не дают. Черный экран и всё. Думал что неправильный адресс - скетч сканирования рисует только заголовок таблицы и не откликается . 

В чем засада может быть? Одна библиотека работает  из коробки а другие (которые рекомендуют использовать) не дают эффекта. В общем то могу обойтись и работающей версией OLED_I2C, но хотелось бы пользоваться в нормальном режиме без костылей.

Фигню наверное спросил...  

PaulIV
Offline
Зарегистрирован: 11.10.2015

Всем привет.

Хорошая работа. Я захотел к ней добавить знак "+" или "-" в зависимости от температуры. Смог лишь мелким размером шрифта. 

  myOLED.clrScr();
  myOLED.setBrightness(0);
  myOLED.setFont(SmallFont);
  myOLED.print(stringOne.substring(0, 5), 98, 0);
  myOLED.print(rtc.getDateStr(), 0, 0);
  myOLED.setFont(RusFont);
  myOLED.print("NTVGTHFNEHF", CENTER, 57);       // температура
  
 if (Temp > 0) {
  myOLED.print("+", 30, 30);
 } else {
  myOLED.print("-", 30, 30);
 }
  
  myOLED.drawBitmap(4, 12, term, 19, 40);
  myOLED.setFont(MegaNumbers);
  myOLED.print(String(Temp), CENTER, 12);
  myOLED.drawBitmap(92, 12, grad, 13, 12); 
  myOLED.update();
  myOLED.clrScr();

Однако, мелковато получается, для глаза неудобно. Двоеточие в коде кодируют "/"

  myOLED.print("/", 51, 12);                        // Отображение двоеточия

Я правильно понял, что крупные знаки "+" и "-" в (MegaNumbers) отсутствуют и знаки надо прорисовывать, подобно рисунку градусника слева от цифры ???

Спасибо

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Согласно заголовку, в фонте 13 символов, начиная с ASCII коде 0x2d, т.е. по идее должны быть "-", ".", "/" и цифры, но, похоже, реально там нарисовано что-то другое. Вместо "-", похоже, пробел.

Опять же по идее - плюса там быть не должно (он имеет код 0x2b), а чтобы попадало двоеточие, должно быть не 13 символов, а 14 (идет сразу после "9").

PaulIV
Offline
Зарегистрирован: 11.10.2015

Я точно так же воспринял, что "-" в MegaNumbers это пробел. Уже нарисовал drawBitmap "+" и "-" большого размера :)

Спасибо

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Вообще-то их можно добавить в фонт.

PaulIV
Offline
Зарегистрирован: 11.10.2015

Увы, не знаю, как это делается. Это уже не так важно. Интересно то, что при отрицательных температурах цифра смещена вправо, т.е. не стоит по центру, как в случае с положительными цифрами.

WaikMan
Offline
Зарегистрирован: 14.11.2015

PaulIV пишет:

 Интересно то, что при отрицательных температурах цифра смещена вправо, т.е. не стоит по центру, как в случае с положительными цифрами.

Это потому что цифра с минусом (-4), а минуса в шрифте нет и поэтому там пустое место выводится (пробел) - поэтому и смещается, но без минуса.

raptoridze
Offline
Зарегистрирован: 10.01.2014

народ помогите, пришел от цитайца экран вот с такими контактами

пытаюсб подрубится по I2C ничего не выходит, суда по всему тут SPI интерфейс, подскажите как его подключать к уно?

 

 

WaikMan
Offline
Зарегистрирован: 14.11.2015

Хорошо бы весь экран видно было или ссылку. По тому куску , что видно это как раз i2c. Подключение стандартное:

Arduino Mega Arduino Uno LCD i2c Цвет проводов на фото
GND GND GND Черный
5V 5V VCC Красный
20 (SDA) A4 SDA Коричневый
21(SCL) A5 SCL Белый
 

 

 

 

 

 

 

Остальные контакты вроде как не разведены. Дальше вопрос какую библиотеку использовать. Я чуть выше писал целый список и у меня только одна заработала и то криво, а с остальными была полнейшая черная тишина.

raptoridze
Offline
Зарегистрирован: 10.01.2014

какая именно библа заработала

у меня даже не запускается на тех библах на которых предыдущие экраны без этих контактов работали

слева нормально рабочий

WaikMan
Offline
Зарегистрирован: 14.11.2015

raptoridze пишет:

какая именно библа заработала

 

Заработла только OLED_I2C

raptoridze
Offline
Зарегистрирован: 10.01.2014

у меня не заработала(( но экран заработал через SPI интерфейс (

 

PaulIV
Offline
Зарегистрирован: 11.10.2015

WaikMan пишет:

PaulIV пишет:

 Интересно то, что при отрицательных температурах цифра смещена вправо, т.е. не стоит по центру, как в случае с положительными цифрами.

Это потому что цифра с минусом (-4), а минуса в шрифте нет и поэтому там пустое место выводится (пробел) - поэтому и смещается, но без минуса.

Именно об этом я интуитивно догадывался. При двузначных минусовые температурах цифра задевает знак градуса :))) Выход один - надо в библиотеке как-то добавить отсутствующий минус... Пока не знаю как, но попробую.

Спасибо