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

Создаем свой блок. Вопросы, помощь знатоков.
Ответить
Turb0user
Рядовой
Сообщения: 46
Зарегистрирован: 20 мар 2017, 19:33
Имя: Евгений

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

Сообщение 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. Обновил блоки с учетом замечаний товарища Айдара спасибо ему. Но обновления зкрана пока нет.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Turb0user 15 июн 2020, 18:03, всего редактировалось 3 раза.
aidar_i
Полковник
Сообщения: 3357
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 13 раз
Поблагодарили: 100 раз
Контактная информация:

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

Сообщение aidar_i »

Включите получение личных сообщений.
aidar_i
Полковник
Сообщения: 3357
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 13 раз
Поблагодарили: 100 раз
Контактная информация:

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

Сообщение 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)
Turb0user
Рядовой
Сообщения: 46
Зарегистрирован: 20 мар 2017, 19:33
Имя: Евгений

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

Сообщение Turb0user »

[ref]aidar_i[/ref], Спасибо заработало. Еще вопрос как сделать очистку зкрана по EN. Позксперементировал с OzOled.clearDisplay(); не получилось.
aidar_i
Полковник
Сообщения: 3357
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 13 раз
Поблагодарили: 100 раз
Контактная информация:

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

Сообщение aidar_i »

Вот примерно так
Attiny-85+OLED.flp
[spoiler]
Attiny85+OLED.png
[/spoiler]
В Протеус
Attiny+OLED 128x64.rar
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Turb0user
Рядовой
Сообщения: 46
Зарегистрирован: 20 мар 2017, 19:33
Имя: Евгений

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

Сообщение 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
У вас нет необходимых прав для просмотра вложений в этом сообщении.
aidar_i
Полковник
Сообщения: 3357
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 13 раз
Поблагодарили: 100 раз
Контактная информация:

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

Сообщение aidar_i »

Можно так
Attiny-85+OLED_1.flp
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Turb0user
Рядовой
Сообщения: 46
Зарегистрирован: 20 мар 2017, 19:33
Имя: Евгений

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

Сообщение Turb0user »

Отлично. Проблема решена. Спасибо.
aleksys77
Рядовой
Сообщения: 5
Зарегистрирован: 04 сен 2021, 18:47
Имя: Алексей

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

Сообщение aleksys77 »

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

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

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей