TM1638 LED&KEY

Использование дисплеев и обсуждение пользовательских блоков к ним
edyapd
Капитан
Сообщения: 768
Зарегистрирован: 20 сен 2019, 11:38
Имя: Эдуард

TM1638 LED&KEY

Сообщение edyapd »

[ref]Labu559[/ref], хотя ваша идея, изменять яркость только тогда когда она отличается от текущей, думаю очень даже правильная. Лишний раз не надо дёргать дисплей.
pan
Полковник
Сообщения: 2860
Зарегистрирован: 13 апр 2017, 11:57
Имя: noname

TM1638 LED&KEY

Сообщение pan »

Labu559 писал(а): 04 окт 2019, 00:16 только при его изменении по сравнению с предыдущим значением,
там просто запоминается текущее значение яркости, которое функция и возвращает.
хотя не вижу в этом смысла.
edyapd писал(а): 04 окт 2019, 09:23 изменять яркость только тогда когда она отличается от текущей
это должно реализовываться в коде. функция должна выполнить свое дело.

хотя ни кто не мешает сделать как самому удобно...
seri0shka
Лейтенант
Сообщения: 391
Зарегистрирован: 09 апр 2016, 12:17
Откуда: Кременчуг
Имя: Сергей

TM1638 LED&KEY

Сообщение seri0shka »

edyapd писал(а): 04 окт 2019, 05:49 в каких строчках это реализовано?
Я тоже не нашёл. Хотя это бы не помешало. Зато узнал, что строка

Код: Выделить всё

currentBrightness = (newBrighness > 8) ? 8 : newBrighness;
эквивалентна строкам

Код: Выделить всё

  if (newBrighness > 8) {
    currentBrightness = 8;
  } else {
    currentBrightness = newBrighness;
  }
Отправлено спустя 4 минуты 47 секунд:
Почему-то только после отправки сообщения увидел страницу 6 форума. До этого только 5 отображало.
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

TM1638 LED&KEY

Сообщение Sancho »

seri0shka писал(а): 04 окт 2019, 23:45 Зато узнал, что строка
называется тернарная условная операция :)
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
seri0shka
Лейтенант
Сообщения: 391
Зарегистрирован: 09 апр 2016, 12:17
Откуда: Кременчуг
Имя: Сергей

TM1638 LED&KEY

Сообщение seri0shka »

Не уверен, что кому-то понадобится, но выкладываю. Мои потребности полностью удовлетворяет.
Выкладываю именно в виде блока и скринов пректов, чтобы открылось у всех в любой версии программы. Для меня актуальная на сегодня FLProg_2-3-2, более новые в ближайшее время устанавливать не буду, хватит экспериментов.
Исправленный блок в посте 108. viewtopic.php?p=77291#p77291
Первый тестовый проект выводит на семисегментный индикатор число 01234567 с минимальной яркостью:
0123.png
Второй проект- на первых 4 разряда выводит состояние кнопок (одна кнопка- один сегмент, причём в довольно хаотичном порядке), остальные разряды- число 4567:
0124.png
Из описания блока: Блок для 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 раза.
pan
Полковник
Сообщения: 2860
Зарегистрирован: 13 апр 2017, 11:57
Имя: noname

TM1638 LED&KEY

Сообщение pan »

seri0shka писал(а): 05 окт 2019, 21:41 как в пользовательском блоке добавить функцию типа
уберите в скобках void
оно там не нужно
seri0shka
Лейтенант
Сообщения: 391
Зарегистрирован: 09 апр 2016, 12:17
Откуда: Кременчуг
Имя: Сергей

TM1638 LED&KEY

Сообщение seri0shka »

Спасибо! Поправил блок:
TM1638_28_T_R_01_(CODE).ubi
У вас нет необходимых прав для просмотра вложений в этом сообщении.
kipsa
Рядовой
Сообщения: 40
Зарегистрирован: 25 фев 2019, 17:11
Имя: Игорь

TM1638 LED&KEY

Сообщение kipsa »

Скачал где-то в этой ветке ( автору респект, долго мучался чтобы простучаться к этому шилду) но есть одно НО - не работают кнопки с 9 по 16. Подскажите пожалуйста где и что дописать?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Labu559
Лейтенант
Сообщения: 359
Зарегистрирован: 25 янв 2018, 22:23
Откуда: Bukovyna
Имя: Василий

TM1638 LED&KEY

Сообщение Labu559 »

kipsa писал(а): 09 май 2021, 06:43 но есть одно НО - не работают кнопки с 9 по 16. Подскажите пожалуйста где и что дописать?
Это "НО" есть следствием заявленой в то далёкое время поддержки в программе типа данных беззнакового 16-битного word (unsigned int, uint16_t), а по факту её отсутствия до сих пор. Всё надеялся, что вот-вот и исправлю, так как принципиально считаю "костылить", тем более со СТАНДАРТНЫМИ типами данных, дурным методом обучения программированию, тем более если FLProg являлась начальным, закладывающим основы, этапом этого обучения (лично у меня). Библиотечная (оригинальная от с. Батисты) функция сканирования кнопок сохраняет результат именно в переменную типа word. А так как всё сказанное до слова "НО" в реальной жизни не имеет никакого значения, то попробуйте этот [spoiler title= Проект/блок на костылях.]
QYF-TM1638_Test16Keys.flp
[/spoiler] Оговорюсь сразу, не имею желания устанавливать в системе биб-ку Батисты, на которую матерится компилятор, потому делал по-памяти/склерозу и тестирование за Вами. Если Вы не отпишитесь о результатах- эти проект/сообщение будут удалены, как блок не прошедший проверку и недостоверная информация. Извините, но другого способа борьбы с "мусором" на форуме не вижу. "Чисто там, где не сорят, а не где убирают!". Если не трудно, проверьте пожалуйста нет ли ошибки на опубликованой мной в #83 схеме относительно Вашего модуля QYF-TM1638, в плане наличия диодов IN4148 на кнопках. Спасибо! Кстати, Вам удалось победить SC6928B, в этом драйвере очень похожая система команд с ТМ1638 ?
Удачи!
Начал перечитывать эту ветку, просто удивительно как изменилось за 4 года сообщество форума, и как тогда дружно мы сообща "рожали" блок. :)
У вас нет необходимых прав для просмотра вложений в этом сообщении.
kipsa
Рядовой
Сообщения: 40
Зарегистрирован: 25 фев 2019, 17:11
Имя: Игорь

TM1638 LED&KEY

Сообщение kipsa »

огромное Вам спасибо за помощь!!!!!!!! кнопки наконец-то заработали все 16 штук. Но сначала я скачал Ваш блок и при компиляции он мне выдал ошибку ( скрин ниже ). После чего я в заголовок добавил подключение библиотеки вот этой " #include <TM1638.h>" и всё отлично скомпилилось и залилось. Работает отлично. ( ниже пример Flprog ). Одна просьба - нет ли у Вас времени чуток допилить блок? Было бы идиально, если бы на входах на каждую точку был бы свой булевский вход.

Отправлено спустя 3 минуты 26 секунд:
Кстати, Вам удалось победить SC6928B, в этом драйвере очень похожая система команд с ТМ1638 ?
К сожалению нет, победить не удалось - не получалось долго, забросил в долгий ящик. Потом как нить попробую опять


По поводу схемы №3 с 16-ю кнопками, у меня вроде всё как на схеме
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Labu559
Лейтенант
Сообщения: 359
Зарегистрирован: 25 янв 2018, 22:23
Откуда: Bukovyna
Имя: Василий

TM1638 LED&KEY

Сообщение Labu559 »

kipsa писал(а): 09 май 2021, 19:37 ... сначала я скачал Ваш блок и при компиляции он мне выдал ошибку ( скрин ниже ). После чего я в заголовок добавил подключение библиотеки вот этой " #include <TM1638.h>" и всё отлично скомпилилось и залилось.
Это странно, потому как Вы же раньше его не добавляли, блок работал и
[spoiler title= в новом блоке остался со старого include:]
QTY-TM1638_Batista.png
[/spoiler]
kipsa писал(а): 09 май 2021, 19:37 ...нет ли у Вас времени чуток допилить блок? Было бы идеально, если бы на входах на каждую точку был бы свой булевский вход.
Нет, не нужно ничего "пилить"- всё распилено до нас :) , всего лишь разобраться в работе демо-проекта, сделал описание в блок. А также учтите, что байтовая переменная занимают ровно столько же памяти как и булевая- один байт и соответственно экономней собрать в одну байтовую 8 булевых переменных (точек) и тратить 1 байт против 8-ми. Если Вы обратите внимание на входные данные блока- сроку Lab.U55 (я специально вставил точку для лучшего понимания), то узнаете, что точка изъята из входящей строки блоком ParseString с детектором изменения и находится в положеном месте (бите) байта на входе div_pos (позиции разрядов/дробных точек).Таким образом решаются все возможные задачи наименее ресурсозатратным способом, ведь с поддержкой структур/битовых полей в блоках программы такая-же грустная ситуация, как и с word. В итоге, Вы вполне можете перед входом div_pos поставить штатный блок из папки "Операции с битами" Bits->Byte получив привычные Вам [spoiler title= "на каждую точку свой булевский вход"]
Dots_Position.png
QYF-TM1638_16Keys.flp
[/spoiler] Именно экономией памяти/оптимизацией кода мотивируются изменения и с выходами кнопок блока. Для сравнения: [spoiler title=Комбайн-монстр 11-й версии.]
TM1638_LED&KEY(version11.x.x).png
Осталось ещё добавить все 24 кнопки, которые поддерживает микросхема и ещё 8 светодиодов, чтобы на рабочем поле программы не осталось свободного места :no: [/spoiler] Ведь ничего не потерялось с переходом с булевых 16-ти выходов кнопок на 2-а байтовых.
kipsa писал(а): 09 май 2021, 19:37 По поводу схемы №3 с 16-ю кнопками, у меня вроде всё как на схеме,
Значит ли это, что диоды спрятаны под индикаторами? Когда нажимаете кнопки отдельные сегменты не гасятся или мерцают? Этого модуля никогда не имел, а фото тыльной стороны только сегодня нашёл в интернете:[spoiler title= Окочательная схема (исправленная) QYF-TM1638 ]
Module_QYF-TM1638.jpg
[/spoiler] Спасибо за тестирование и отзыв!
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Labu559 11 май 2021, 11:16, всего редактировалось 2 раза.
kipsa
Рядовой
Сообщения: 40
Зарегистрирован: 25 фев 2019, 17:11
Имя: Игорь

TM1638 LED&KEY

Сообщение kipsa »

у меня плата как на фото выше. Никаких диодов, нигде нет. Схема подключения кнопок вообще другая. На фото с 5-й ноги ( по даташиту это SEG1) и у меня меня идет напрямую на кнопку S1 затем на S2 и дальше куда-то уходит.

Когда нажимаешь одну кнопку - нет, не гаснет не мерцает. А вот если нажать 2 кнопки ( любых ) то зажигаются некоторые сегменты ( не хаотично, а фиксированно, в зависимости от нажатых кнопок. Например 20 раз нажимаем кнопку S1 и S9 - то всегда будут ещё зажигаться 2 одних и тех же сегментов на индикаторах )
Labu559
Лейтенант
Сообщения: 359
Зарегистрирован: 25 янв 2018, 22:23
Откуда: Bukovyna
Имя: Василий

TM1638 LED&KEY

Сообщение Labu559 »

kipsa писал(а): 10 май 2021, 19:45 у меня плата как на фото выше. Никаких диодов, нигде нет... с 5-й ноги ( по даташиту это SEG1) и у меня идет напрямую на кнопку S1 затем на S2 и дальше куда-то уходит.
...если нажать 2 кнопки ( любых ) то зажигаются некоторые сегменты...
Очень хорошо, в том плане, что Вы придя за помощью, сами помогли форуму обнаружив этот аппаратный недостаток платы QYF-TM1638. Это следствие отсутствия диодов, потому как замыкая две/несколько разных кнопок на разных сегментах драйвера ес-но накоротко замыкаются соответствующие аноды (разряды) индикатора. Схему поправил (см.выше) с учётом информации от Вас, вот только S1 и S2 уходят на К1, K2 или K3? Уж, извините за надоедливость, платы у меня нет, и как-бы мне не особо нужно, но информация должна быть достоверной, а без Вас мне схему не поправить никак. В качестве благодарности предоставлю Вам свою биб-ку, если хотите конечно. С библиотекой для именно этой платы от с. Батисты тоже не всё в порядке (с точки зрения компилятора), а другие биб-ки на гитхабе есть по сути репликацией первой. Спасибо!
kipsa
Рядовой
Сообщения: 40
Зарегистрирован: 25 фев 2019, 17:11
Имя: Игорь

TM1638 LED&KEY

Сообщение kipsa »

Labu559 писал(а): 11 май 2021, 07:33 Уж, извините за надоедливость, платы у меня нет,
ничё ничё, вы ж мне помогли, и не только мне. Я думаю если мы не будем помогать друг другу если есть возможность, то и смысла в форумах нет.
Labu559 писал(а): 11 май 2021, 07:33 обнаружив этот аппаратный недостаток
у меня вообще схема кнопок другая. Щас мультиков вызвонил ( фото ниже)
Labu559 писал(а): 11 май 2021, 07:33 В качестве благодарности предоставлю Вам свою биб-ку
вы и так мне очень помогли - ваш блок отлично подходит для моих потребностей

Отправлено спустя 37 минут 47 секунд:
https://disk.yandex.ru/i/Z3bPqvO3LcKqgQ - вот что получилось на основе Вашего блока. Ещё раз спасибо вам за помощь

Отправлено спустя 1 минуту 45 секунд:
а это тест с Вашим блоком
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Ответить

Вернуться в «Дисплеи и индикаторы»

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

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