8(495) 662-59-14

Главная / Форум
  • РУС / ENG
(495) 662-59-14 Многоканальный телефон Не дозвонились?
Форумы >>ЖК индикаторы >>RE: МТ-10Т7 и ардуино
RE: МТ-10Т7 и ардуино

Mrakos@list.ru
Пользователи

Сообщений: 2
Регистрация: 28.06.2021

Здравствуйте.
Я руководитель радиокружка. Естественно, что мы экспериментируем с ардуино. Попал к нам ЖК мт-10т7. В интернете нет чего то внятного, чтобы можно было повторить, используя только ардуино. Прошу помочь нам, хотя бы самой простой схемой и скетчем.

Имя Для добавления сообщений Вы должны зарегистрироваться или авторизоваться Цитировать Получить ссылку на сообщение

Петухов_Дмитрий
Пользователи

Сообщений: 1370
Регистрация: 25.11.2009

У нас на сайте есть страница Рекомендации по применению ЖК-индикаторов производства компании МЭЛТ, в п.17 которого раздаётся пример программ в том числе и для MT-10T7. Они написаны на языке С и переделать под требования Ардуино несложно (убрать задержки и заменить LCD.A0=1 на digitalWrite(LCD_A0,HIGH)). Такая доработка будет хорошей практикой для начинающих.

Подключать же индикатор можно к любым цифровым выходам Ардуино, удобно WR2 посадить на GND, а строб записи выдавать на WR1 положительной полярности, как и сделано в примере.

Имя Для добавления сообщений Вы должны зарегистрироваться или авторизоваться Цитировать Получить ссылку на сообщение

Mrakos@list.ru
Пользователи

Сообщений: 2
Регистрация: 28.06.2021

Благодарю, программу посмотрел. Я не очень разбираюсь в индикаторах. Ардуино скетч содержит указания контактов к которым подключается индикатор. В этой программе на С я не нашёл таких указаний. Поэтому мне не понятно как подключать индикатор, сколько задействовать контактов и что программа будет выводить? Странно, с компьютера пришла программа на языке ардуино.
Пока так получилось, потом дополню https://youtu.be/V30eZeOCe4U

Имя Для добавления сообщений Вы должны зарегистрироваться или авторизоваться Цитировать Получить ссылку на сообщение

Петухов_Дмитрий
Пользователи

Сообщений: 1370
Регистрация: 25.11.2009

В примере программы специально не указаны многие частности, типа куда что подключать или имя процедуры задержки, потому что это пример программы для любых устройств и любых компиляторов, а не конкретной модели ардуино (надеюсь Вы знаете что ардуино бывают очень разные и для них вовсе не обязательно пользоваться поставляемыми библиотеками, а можно просто писать код на C++ с обращением прямо к регистрам контроллера). Это не готовый скечт для какой-то конкретной платы, а алгоритм работы с индикатором без лишних деталей (зависящих от конкретной ситуации), записанный на языке C. Если Вы занимаетесь информатикой, то точно должны знать разницу между алгоритмом и готовой программой (и между программой в исходном коде, типа скетча, и готовой прошивкой, но это уже другие частности).

Подключить надо 6 цифровых сигналов: 4 вывода шины данных, сигнал A0, сигнал записи (WR1 и/или WR2, на выбор, мне кажется удобнее использовать WR1, а WR2 посадить на GND). Разумеется плюс ещё и питание, это очевидно. Подключать их можно к любым цифровым пинам ардуино. И когда выберете что куда подключено, вот тогда и укажете в начале скетча какие выводы ардуино какие будут иметь имена, т.е. куда подключены к индикатору.
Объявление обычно делается конструкцией типа #define LCD_A0 19 — это чисто для примера, что сигнал индикатора с именем LCD_A0 (а это например вывод A0 индикатора) подключен к пину номер 19 ардуино.
После этого в процедуре setup(), которая есть всегда в любом скетче, указываете что пин LCD_A0 должен быть цифровым выходом командой pinMode(LCD_A0, OUTPUT).
После этого в процедурах обращения к индикатору для установки пина A0 индикатора в 1 пишете вызов digitalWrite(LCD_A0, HIGH) (или LOW для установки в 0).
Для установки пинов шины данных удобнее использовать конструкцию digitalWrite(LCD_D3, (data & 0x08) ? HIGH : LOW) - для записи бита 0x08 в пин LCD_D3. Это запись одного бита младшего полубайта. Это надо будет повторить для всех 4-х (для адреса) или 8-ми (для данных) битов входного аргумента процедур. Удобно это оформить отдельной процедуркой, которая получает на вход 4 бита и выдаёт их на 4 любых пина ардуино, к которым и подключена шина данных индикатора. Именно вызов этой процедурки заменит собой конструкцию LCD.D=... в примере программы.

Что именно должно появиться на индикаторе задано в массиве в конце примера, это надпись "-.M. .E. .L. .t.-" (конечно без кавычек и точки будут не отдельными символами как здесь, а просто точками между символами). Цикл вывода этих 10-ти байтов приведён в самом начале примера в процедуре main().

Я не знаю куда ещё подробнее расписывать код скетча, это уже азы использования ардуино, дальше просто брать и писать готовый код скетча. Я конечно могу это сделать, но может Вы или ваши ученики приложите всё же некоторое усилие и получите радость от получения результата своими силами? Я готов разъяснять непонятные вопросы, но писать готовый код ... Могу, но не хочу, лучше чтобы это сделали вы. Лучше для вас, мне-то и так всё ясно.

В конце концов в инете полно уже готовых решений с MT-10T7 и ардуино, вот найдено за 1 минуту поиска гуглом: https://habr.com/ru/post/343694/ Код там не самый оптимальный, но вполне неплохой, а для начинающих может даже более понятный чем написал бы я. Вот здесь код даже получше, почти нечего существенно улучшить, найдено за вторую минуту в гугле: https://gist.github.com/drdaeman/4148020

Имя Для добавления сообщений Вы должны зарегистрироваться или авторизоваться Цитировать Получить ссылку на сообщение
Сейчас на форуме (гостей: 19, пользователей: 0 , из них : 0 )