TM1638 LED&KEY
TM1638 LED&KEY
[ref]Labu559[/ref], хотя ваша идея, изменять яркость только тогда когда она отличается от текущей, думаю очень даже правильная. Лишний раз не надо дёргать дисплей.
TM1638 LED&KEY
там просто запоминается текущее значение яркости, которое функция и возвращает.
хотя не вижу в этом смысла.
это должно реализовываться в коде. функция должна выполнить свое дело.
хотя ни кто не мешает сделать как самому удобно...
-
- Лейтенант
- Сообщения: 391
- Зарегистрирован: 09 апр 2016, 12:17
- Откуда: Кременчуг
- Имя: Сергей
TM1638 LED&KEY
Я тоже не нашёл. Хотя это бы не помешало. Зато узнал, что строка
Код: Выделить всё
currentBrightness = (newBrighness > 8) ? 8 : newBrighness;
Код: Выделить всё
if (newBrighness > 8) {
currentBrightness = 8;
} else {
currentBrightness = newBrighness;
}
Почему-то только после отправки сообщения увидел страницу 6 форума. До этого только 5 отображало.
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 5 раз
- Контактная информация:
TM1638 LED&KEY
называется тернарная условная операция

мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
-
- Лейтенант
- Сообщения: 391
- Зарегистрирован: 09 апр 2016, 12:17
- Откуда: Кременчуг
- Имя: Сергей
TM1638 LED&KEY
Не уверен, что кому-то понадобится, но выкладываю. Мои потребности полностью удовлетворяет.
Выкладываю именно в виде блока и скринов пректов, чтобы открылось у всех в любой версии программы. Для меня актуальная на сегодня FLProg_2-3-2, более новые в ближайшее время устанавливать не буду, хватит экспериментов.
Исправленный блок в посте 108. viewtopic.php?p=77291#p77291
Первый тестовый проект выводит на семисегментный индикатор число 01234567 с минимальной яркостью: Второй проект- на первых 4 разряда выводит состояние кнопок (одна кнопка- один сегмент, причём в довольно хаотичном порядке), остальные разряды- число 4567: Из описания блока: Блок для TM1638.
Работает без библиотек. Выводит на индикацию 8 символов согласно байтовых переменных на входе блока (8 бит каждого байта- соответственно состояние сегментов соответствующего разряда). Разрабатывался для уравления матрицей из 64 одиночных светодиодов.
На выходах блока 4 неполных байта состояния кнопок (2 бита в байтах всегда обнулены). Поддерживает любое количество одновременно замкнутых кнопок/тумблеров (без ущерба для индикации при наличии диодов согласно стандартной схемы).
Для вывода на 8-разрядный семисегментный индикатор с общим катодом цифр от 0 до 9 на входы нужно соответственно подать коды 63, 6, 91, 79, 102, 109, 125, 7, 127, 111 в десятичной системе.
Для индикатора с общим анодом логика другая- любой входной байт будет соответствовать комбинации одного из сегментов во всех 8 разрядах.
Работает также с ТМ1628 (проверено частично, потому как она у меня распаяна с индикатором с ОА), и должен работать с ТМ1668, нет у меня для проверки.
Вопрос к знатокам: как в пользовательском блоке добавить функцию типа
Программа не принимает, пришлось делать с фиктивной переменной:
Выкладываю именно в виде блока и скринов пректов, чтобы открылось у всех в любой версии программы. Для меня актуальная на сегодня FLProg_2-3-2, более новые в ближайшее время устанавливать не буду, хватит экспериментов.
Исправленный блок в посте 108. viewtopic.php?p=77291#p77291
Первый тестовый проект выводит на семисегментный индикатор число 01234567 с минимальной яркостью: Второй проект- на первых 4 разряда выводит состояние кнопок (одна кнопка- один сегмент, причём в довольно хаотичном порядке), остальные разряды- число 4567: Из описания блока: Блок для TM1638.
Работает без библиотек. Выводит на индикацию 8 символов согласно байтовых переменных на входе блока (8 бит каждого байта- соответственно состояние сегментов соответствующего разряда). Разрабатывался для уравления матрицей из 64 одиночных светодиодов.
На выходах блока 4 неполных байта состояния кнопок (2 бита в байтах всегда обнулены). Поддерживает любое количество одновременно замкнутых кнопок/тумблеров (без ущерба для индикации при наличии диодов согласно стандартной схемы).
Для вывода на 8-разрядный семисегментный индикатор с общим катодом цифр от 0 до 9 на входы нужно соответственно подать коды 63, 6, 91, 79, 102, 109, 125, 7, 127, 111 в десятичной системе.
Для индикатора с общим анодом логика другая- любой входной байт будет соответствовать комбинации одного из сегментов во всех 8 разрядах.
Работает также с ТМ1628 (проверено частично, потому как она у меня распаяна с индикатором с ОА), и должен работать с ТМ1668, нет у меня для проверки.
Вопрос к знатокам: как в пользовательском блоке добавить функцию типа
Код: Выделить всё
void updateDisplay(void)
Код: Выделить всё
void updateDisplay(bool a)
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось seri0shka 07 окт 2019, 16:50, всего редактировалось 2 раза.
-
- Лейтенант
- Сообщения: 391
- Зарегистрирован: 09 апр 2016, 12:17
- Откуда: Кременчуг
- Имя: Сергей
TM1638 LED&KEY
Спасибо! Поправил блок:
У вас нет необходимых прав для просмотра вложений в этом сообщении.
TM1638 LED&KEY
Скачал где-то в этой ветке ( автору респект, долго мучался чтобы простучаться к этому шилду) но есть одно НО - не работают кнопки с 9 по 16. Подскажите пожалуйста где и что дописать?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
TM1638 LED&KEY
Это "НО" есть следствием заявленой в то далёкое время поддержки в программе типа данных беззнакового 16-битного word (unsigned int, uint16_t), а по факту её отсутствия до сих пор. Всё надеялся, что вот-вот и исправлю, так как принципиально считаю "костылить", тем более со СТАНДАРТНЫМИ типами данных, дурным методом обучения программированию, тем более если FLProg являлась начальным, закладывающим основы, этапом этого обучения (лично у меня). Библиотечная (оригинальная от с. Батисты) функция сканирования кнопок сохраняет результат именно в переменную типа word. А так как всё сказанное до слова "НО" в реальной жизни не имеет никакого значения, то попробуйте этот [spoiler title= Проект/блок на костылях.] [/spoiler] Оговорюсь сразу, не имею желания устанавливать в системе биб-ку Батисты, на которую матерится компилятор, потому делал по-памяти/склерозу и тестирование за Вами. Если Вы не отпишитесь о результатах- эти проект/сообщение будут удалены, как блок не прошедший проверку и недостоверная информация. Извините, но другого способа борьбы с "мусором" на форуме не вижу. "Чисто там, где не сорят, а не где убирают!". Если не трудно, проверьте пожалуйста нет ли ошибки на опубликованой мной в #83 схеме относительно Вашего модуля QYF-TM1638, в плане наличия диодов IN4148 на кнопках. Спасибо! Кстати, Вам удалось победить SC6928B, в этом драйвере очень похожая система команд с ТМ1638 ?kipsa писал(а): 09 май 2021, 06:43 но есть одно НО - не работают кнопки с 9 по 16. Подскажите пожалуйста где и что дописать?
Удачи!
Начал перечитывать эту ветку, просто удивительно как изменилось за 4 года сообщество форума, и как тогда дружно мы сообща "рожали" блок.

У вас нет необходимых прав для просмотра вложений в этом сообщении.
TM1638 LED&KEY
огромное Вам спасибо за помощь!!!!!!!! кнопки наконец-то заработали все 16 штук. Но сначала я скачал Ваш блок и при компиляции он мне выдал ошибку ( скрин ниже ). После чего я в заголовок добавил подключение библиотеки вот этой " #include <TM1638.h>" и всё отлично скомпилилось и залилось. Работает отлично. ( ниже пример Flprog ). Одна просьба - нет ли у Вас времени чуток допилить блок? Было бы идиально, если бы на входах на каждую точку был бы свой булевский вход.
Отправлено спустя 3 минуты 26 секунд:
Кстати, Вам удалось победить SC6928B, в этом драйвере очень похожая система команд с ТМ1638 ?
К сожалению нет, победить не удалось - не получалось долго, забросил в долгий ящик. Потом как нить попробую опять
По поводу схемы №3 с 16-ю кнопками, у меня вроде всё как на схеме
Отправлено спустя 3 минуты 26 секунд:
Кстати, Вам удалось победить SC6928B, в этом драйвере очень похожая система команд с ТМ1638 ?
К сожалению нет, победить не удалось - не получалось долго, забросил в долгий ящик. Потом как нить попробую опять
По поводу схемы №3 с 16-ю кнопками, у меня вроде всё как на схеме
У вас нет необходимых прав для просмотра вложений в этом сообщении.
TM1638 LED&KEY
Это странно, потому как Вы же раньше его не добавляли, блок работал иkipsa писал(а): 09 май 2021, 19:37 ... сначала я скачал Ваш блок и при компиляции он мне выдал ошибку ( скрин ниже ). После чего я в заголовок добавил подключение библиотеки вот этой " #include <TM1638.h>" и всё отлично скомпилилось и залилось.
[spoiler title= в новом блоке остался со старого include:] [/spoiler]
Нет, не нужно ничего "пилить"- всё распилено до насkipsa писал(а): 09 май 2021, 19:37 ...нет ли у Вас времени чуток допилить блок? Было бы идеально, если бы на входах на каждую точку был бы свой булевский вход.


Значит ли это, что диоды спрятаны под индикаторами? Когда нажимаете кнопки отдельные сегменты не гасятся или мерцают? Этого модуля никогда не имел, а фото тыльной стороны только сегодня нашёл в интернете:[spoiler title= Окочательная схема (исправленная) QYF-TM1638 ] [/spoiler] Спасибо за тестирование и отзыв!kipsa писал(а): 09 май 2021, 19:37 По поводу схемы №3 с 16-ю кнопками, у меня вроде всё как на схеме,
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Labu559 11 май 2021, 11:16, всего редактировалось 2 раза.
TM1638 LED&KEY
у меня плата как на фото выше. Никаких диодов, нигде нет. Схема подключения кнопок вообще другая. На фото с 5-й ноги ( по даташиту это SEG1) и у меня меня идет напрямую на кнопку S1 затем на S2 и дальше куда-то уходит.
Когда нажимаешь одну кнопку - нет, не гаснет не мерцает. А вот если нажать 2 кнопки ( любых ) то зажигаются некоторые сегменты ( не хаотично, а фиксированно, в зависимости от нажатых кнопок. Например 20 раз нажимаем кнопку S1 и S9 - то всегда будут ещё зажигаться 2 одних и тех же сегментов на индикаторах )
Когда нажимаешь одну кнопку - нет, не гаснет не мерцает. А вот если нажать 2 кнопки ( любых ) то зажигаются некоторые сегменты ( не хаотично, а фиксированно, в зависимости от нажатых кнопок. Например 20 раз нажимаем кнопку S1 и S9 - то всегда будут ещё зажигаться 2 одних и тех же сегментов на индикаторах )
TM1638 LED&KEY
Очень хорошо, в том плане, что Вы придя за помощью, сами помогли форуму обнаружив этот аппаратный недостаток платы QYF-TM1638. Это следствие отсутствия диодов, потому как замыкая две/несколько разных кнопок на разных сегментах драйвера ес-но накоротко замыкаются соответствующие аноды (разряды) индикатора. Схему поправил (см.выше) с учётом информации от Вас, вот только S1 и S2 уходят на К1, K2 или K3? Уж, извините за надоедливость, платы у меня нет, и как-бы мне не особо нужно, но информация должна быть достоверной, а без Вас мне схему не поправить никак. В качестве благодарности предоставлю Вам свою биб-ку, если хотите конечно. С библиотекой для именно этой платы от с. Батисты тоже не всё в порядке (с точки зрения компилятора), а другие биб-ки на гитхабе есть по сути репликацией первой. Спасибо!kipsa писал(а): 10 май 2021, 19:45 у меня плата как на фото выше. Никаких диодов, нигде нет... с 5-й ноги ( по даташиту это SEG1) и у меня идет напрямую на кнопку S1 затем на S2 и дальше куда-то уходит.
...если нажать 2 кнопки ( любых ) то зажигаются некоторые сегменты...
TM1638 LED&KEY
ничё ничё, вы ж мне помогли, и не только мне. Я думаю если мы не будем помогать друг другу если есть возможность, то и смысла в форумах нет.
у меня вообще схема кнопок другая. Щас мультиков вызвонил ( фото ниже)
вы и так мне очень помогли - ваш блок отлично подходит для моих потребностей
Отправлено спустя 37 минут 47 секунд:
https://disk.yandex.ru/i/Z3bPqvO3LcKqgQ - вот что получилось на основе Вашего блока. Ещё раз спасибо вам за помощь
Отправлено спустя 1 минуту 45 секунд:
а это тест с Вашим блоком
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 6 гостей