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

Вывод на экран текст, цифры, БОЛЬШИЕ цифры. (Решено.)

Создаем свой блок. Вопросы, помощь знатоков.
Ответить
Turb0user
Рядовой
Сообщения: 44
Зарегистрирован: 20.03.2017{, 19:33}
Репутация: 10
Имя: Евгений

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

#1

Сообщение Turb0user » 10.06.2020{, 19:18}

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

Библиотека позволяет:
-выводить на экран текст
-цифры
-БОЛЬШИЕ цифры
-картинки bitmap (функция сомнительная учитывая ограниченную память тини-но все-же)
-инвертировать экран
-переворачивать экран.
В идеале это должно выглядеть примерно так
СпойлерПоказать
47f7ad92-cb12-4aac-93a4-14f7c79cbd10.jpeg
Примеров работы библиотеки (что я нашел) кот наплакал, да и то используют две функции-текст и большие цифры. По этому два блока появилось на свет да и те не уродились :) хотя очевидных причин для этого я не вижу.
Суть проблемы в том что блок текста не выводит переменную или константу, а выводит их идентификатор, а вместо больших цифр шум.
СпойлерПоказать
666f8cd6-1375-4519-ac65-d667ab817665 (1).jpeg
Но если прописать значение переменной руками в коде - работает.
По этому прошу помощи сообщества. Надеюсь совместными усилиями мы можем реализовать все функции библиотеки в блоках.
Тестовый проект с блоками.
СпойлерПоказать
Attiny-85--OLED_new.flp
(638.46 КБ) 86 скачиваний
Библиотека.
TinyOzOled-master.zip
(7.9 КБ) 158 скачиваний
OneWire.rar
(16.75 КБ) 100 скачиваний
P.S. Обновил блоки с учетом замечаний товарища Айдара спасибо ему. Но обновления зкрана пока нет.
Последний раз редактировалось Turb0user 15.06.2020{, 18:03}, всего редактировалось 3 раза.

aidar_i
Полковник
Сообщения: 3120
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 674
Откуда: Уфа
Имя: Айдар
Контактная информация:

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

#2

Сообщение aidar_i » 11.06.2020{, 18:23}

Включите получение личных сообщений.

aidar_i
Полковник
Сообщения: 3120
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 674
Откуда: Уфа
Имя: Айдар
Контактная информация:

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

#3

Сообщение aidar_i » 11.06.2020{, 18:29}

Функция в библиотеке 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)

Turb0user
Рядовой
Сообщения: 44
Зарегистрирован: 20.03.2017{, 19:33}
Репутация: 10
Имя: Евгений

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

#4

Сообщение Turb0user » 11.06.2020{, 22:06}

aidar_i, Спасибо заработало. Еще вопрос как сделать очистку зкрана по EN. Позксперементировал с OzOled.clearDisplay(); не получилось.

aidar_i
Полковник
Сообщения: 3120
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 674
Откуда: Уфа
Имя: Айдар
Контактная информация:

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

#5

Сообщение aidar_i » 11.06.2020{, 22:31}

Вот примерно так
Attiny-85+OLED.flp
(1.5 МБ) 105 скачиваний
СпойлерПоказать
Attiny85+OLED.png
В Протеус
Attiny+OLED 128x64.rar
(40.65 КБ) 91 скачивание

Turb0user
Рядовой
Сообщения: 44
Зарегистрирован: 20.03.2017{, 19:33}
Репутация: 10
Имя: Евгений

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

#6

Сообщение Turb0user » 12.06.2020{, 11:55}

aidar_i, Обновил блоки в шапке с учетом text_length. но очистки эрана по EN все таки нет, остается старая инфа и накладывается сверху новая (Proteus не рулит).
Видео
СпойлерПоказать
2020 тоже должно мигать
СпойлерПоказать
2020-06-12_12-54-01.png
В библиотеке что то про страницы (page) идет речь, но для меня на китайском :)
P.S. можно просто словом помочь как в #3 :) на этом уровне еще могу сам руками чтото делать :D

aidar_i
Полковник
Сообщения: 3120
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 674
Откуда: Уфа
Имя: Айдар
Контактная информация:

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

#7

Сообщение aidar_i » 12.06.2020{, 22:45}

Можно так
Attiny-85+OLED_1.flp
(1.54 МБ) 174 скачивания

Turb0user
Рядовой
Сообщения: 44
Зарегистрирован: 20.03.2017{, 19:33}
Репутация: 10
Имя: Евгений

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

#8

Сообщение Turb0user » 15.06.2020{, 18:01}

Отлично. Проблема решена. Спасибо.

aleksys77
Рядовой
Сообщения: 5
Зарегистрирован: 04.09.2021{, 18:47}
Репутация: 0
Имя: Алексей

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

#9

Сообщение aleksys77 » 14.11.2021{, 19:18}

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

Ответить

Вернуться в «Разработка пользовательских блоков»