Страница 1 из 1

Блок OLED I2C дисплея для Attiny 85 ( DIGISPARK )

Добавлено: 10 июн 2020, 19:18
Turb0user
Всем привет.
Нашел легкую, интересную библиотеку для работы OLED I2C дисплея для Attiny 85. И после того как переизобрел велосипед в этой теме viewtopic.php?f=42&t=6515 (плохо пользовался поиском), решил наделать блоков.

Библиотека позволяет:
-выводить на экран текст
-цифры
-БОЛЬШИЕ цифры
-картинки bitmap (функция сомнительная учитывая ограниченную память тини-но все-же)
-инвертировать экран
-переворачивать экран.
В идеале это должно выглядеть примерно так[spoiler]
47f7ad92-cb12-4aac-93a4-14f7c79cbd10.jpeg
[/spoiler]

Примеров работы библиотеки (что я нашел) кот наплакал, да и то используют две функции-текст и большие цифры. По этому два блока появилось на свет да и те не уродились :) хотя очевидных причин для этого я не вижу.
Суть проблемы в том что блок текста не выводит переменную или константу, а выводит их идентификатор, а вместо больших цифр шум.
[spoiler]
666f8cd6-1375-4519-ac65-d667ab817665 (1).jpeg
[/spoiler]
Но если прописать значение переменной руками в коде - работает.
По этому прошу помощи сообщества. Надеюсь совместными усилиями мы можем реализовать все функции библиотеки в блоках.
Тестовый проект с блоками.
[spoiler]
Attiny-85--OLED_new.flp
[/spoiler]
Библиотека.
TinyOzOled-master.zip
OneWire.rar
P.S. Обновил блоки с учетом замечаний товарища Айдара спасибо ему. Но обновления зкрана пока нет.

Блок OLED I2C дисплея для Attiny 85 ( DIGISPARK ) HELP

Добавлено: 11 июн 2020, 18:23
aidar_i
Включите получение личных сообщений.

Блок OLED I2C дисплея для Attiny 85 ( DIGISPARK ) HELP

Добавлено: 11 июн 2020, 18:29
aidar_i
Функция в библиотеке void printString(const char *String, byte X=255, byte Y=255, byte numChar=255);
Нужно стринг превратить в const char, в моих блоках это есть.

В декларе секции: char textStr[60]; 60 длина текста в символах, можешь в параметры вывести (как text_length), это буфер, чем больше, тем больше памяти будет занято.
в лооп
if (EN) { IN.toCharArray(textStr, IN.length()+1);
OzOled.printString(textStr, poz, str);
}

if (EN) равносильно if (EN==1)

Блок OLED I2C дисплея для Attiny 85 ( DIGISPARK ) HELP

Добавлено: 11 июн 2020, 22:06
Turb0user
[ref]aidar_i[/ref], Спасибо заработало. Еще вопрос как сделать очистку зкрана по EN. Позксперементировал с OzOled.clearDisplay(); не получилось.

Блок OLED I2C дисплея для Attiny 85 ( DIGISPARK ) HELP

Добавлено: 11 июн 2020, 22:31
aidar_i
Вот примерно так
Attiny-85+OLED.flp
[spoiler]
Attiny85+OLED.png
[/spoiler]
В Протеус
Attiny+OLED 128x64.rar

Блок OLED I2C дисплея для Attiny 85 ( DIGISPARK ) HELP

Добавлено: 12 июн 2020, 11:55
Turb0user
[ref]aidar_i[/ref], Обновил блоки в шапке с учетом text_length. но очистки эрана по EN все таки нет, остается старая инфа и накладывается сверху новая (Proteus не рулит).
Видео[spoiler][bbvideo]https://youtu.be/dOECL53lDhI[/bbvideo][/spoiler]

2020 тоже должно мигать
[spoiler]
2020-06-12_12-54-01.png
[/spoiler]
В библиотеке что то про страницы (page) идет речь, но для меня на китайском :)
P.S. можно просто словом помочь как в #3 :) на этом уровне еще могу сам руками чтото делать :D

Блок OLED I2C дисплея для Attiny 85 ( DIGISPARK ) HELP

Добавлено: 12 июн 2020, 22:45
aidar_i
Можно так
Attiny-85+OLED_1.flp

Блок OLED I2C дисплея для Attiny 85 ( DIGISPARK ) HELP

Добавлено: 15 июн 2020, 18:01
Turb0user
Отлично. Проблема решена. Спасибо.

Блок OLED I2C дисплея для Attiny 85 ( DIGISPARK )

Добавлено: 14 ноя 2021, 19:18
aleksys77
На какой частоте тиньку запускать то ? Что то на 8мгц не работает. Разобрался, работает. У меня на макетке светики стояли на выходах на цемлю через резистры на 1к. Так не работает.