• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Нужна помощь NodeMCU + Цифровой дисплей

BlackRaven

New member
Пытаюсь подружиться с ESP и NodeMCU на конекретной задаче по выводу нужных цифр на 4-хзначный дисплей из Китая (вот такой). Нашел на Гитхабе либу (эту), которая написана для этого дисплея, и она правда выводит нужные цифры на дисплей, но у меня не получается менять цифры по ходу работы программы. То есть код
Код:
dofile("qifei.lua")
displaywrite(1234)
выводит все верно, но когда пытаюсь менять цирфы вот таким кодом:
Код:
dofile("qifei.lua")
local i = 100
tmr.alarm(1,500,tmr.ALARM_AUTO,function()
   displaywrite(i)
   i = i + 1
end)
или вот таким:
Код:
dofile("qifei.lua")
for i=1, 100, 1 do
   displaywrite(i)
   tmr.delay(500)
end
то ничего не происходит, горит одна цифра и все. Что я делаю не так и как мне это исправить? заодно что можно почитать, чтобы впредь все работало?
 

NeoroN

Member
А почему не TM1637 - им же в разы проще управлять, чем матрицу через ESP переключать.

Потому и одна цифра горит - потому что там надо гнать переключающие импульсы с другими цифрами.
 

BlackRaven

New member
А почему не TM1637
заказывал с али вместе с платой, это в принципе мои первые подобные устройства, до этого с миром Arduino/ESP не сталкивался. Насчет TM1637 понял - буду использовать его. А с текущим дисплеем можно все-таки что-нибудь сделать?
 

NeoroN

Member
Ну если разобраться с переключением - но производительности LUA тут вряд ли хватит - нужен C++. Матричнаяя схема очень популярна у экономистов, но сейчас когда в китае имс стоят копейки - экономия не оправданна.
Суть дисплея в том что первый байт это цифра а второй это ее место - чтобы светились все цифры надо гнать поток из пар байт - постоянно. Пары байт - потому что там 2 регистра, один отвечает за положение цифры, воторой за саму цифру. Как только вы начинаете опрос сенсоров - поток прекращается и дисплей гаснет что очень неудобно - имхо устаревший метод.

В коде библиотеки постоянно переопределяется таймер - это не верный метод. Таймер должен всегда быть а меняться должен буфер, откуда таймер черпает данные.
 

BlackRaven

New member
В коде библиотеки постоянно переопределяется таймер - это не верный метод. Таймер должен всегда быть а меняться должен буфер, откуда таймер черпает данные.
то есть надо вынести таймер во внешний файл, из которого вызывать просто процедуру однократного вывода на дисплей данных?
 
Сверху Снизу