Часы на люминесцентных индикаторах.
Re: Часы на люминесцентных индикаторах.
А как подбирали количество витков, что бы вписаться в напряжение/ток на накал?
True RMS вольтметр использовали или "на глаз"?
True RMS вольтметр использовали или "на глаз"?
- Реклама
Re: Часы на люминесцентных индикаторах.
[uquote="Vasily_s",url="/forum/viewtopic.php?p=3773405#p3773405"]А как подбирали количество витков, что бы вписаться в напряжение/ток на накал?
True RMS вольтметр использовали или "на глаз"?[/uquote]
Я когда делал блок питания на 1211ЕУ1 намотал на кольце первичку 7 витков проводом 0,5, вторичку на накал - 1 виток тоже 0,5.
На анодное витков 60 0,15.Вполне ярко светит и накал не раскаляется.
Если осциллограф есть - то можно и проконтролировать
На CD4047 схемка не заработала- грелись полевики. По моему не успевал закрываться один полевик, в то время,как открывался другой.
True RMS вольтметр использовали или "на глаз"?[/uquote]
Я когда делал блок питания на 1211ЕУ1 намотал на кольце первичку 7 витков проводом 0,5, вторичку на накал - 1 виток тоже 0,5.
На анодное витков 60 0,15.Вполне ярко светит и накал не раскаляется.
Если осциллограф есть - то можно и проконтролировать
На CD4047 схемка не заработала- грелись полевики. По моему не успевал закрываться один полевик, в то время,как открывался другой.
Re: Часы на люминесцентных индикаторах.
Когда-то ковырялся с знакосинтезирующими дисплеями Futaba и просто ради интереса вывел на них дату/время получаемые с DS3231.
По многочисленным просьбам трудящихся выкладываю скетч с программкой. Для работы требуется библиотека DS3231M, которую можно скачать из меню "Tools - Manage libraries..." в Arduino IDE, либо с github, либо из архива со скетчем. Библиотеку поместить в папку "Документы/Arduino/libraries"
Модуль DS3231 подключается к портам I2C (для arduino nano это A4(SDA) и A5(SCL).
Установка даты времени осуществляется через терминал при помощи команды "SETDATE гггг-мм-дд ЧЧ:ММ:СС". К примеру SETDATE 2020-01-19 02:50:02. Обязательно должен быть символ конца строки Newline или Both NL&CR. Скорость 9600.

По многочисленным просьбам трудящихся выкладываю скетч с программкой. Для работы требуется библиотека DS3231M, которую можно скачать из меню "Tools - Manage libraries..." в Arduino IDE, либо с github, либо из архива со скетчем. Библиотеку поместить в папку "Документы/Arduino/libraries"
Модуль DS3231 подключается к портам I2C (для arduino nano это A4(SDA) и A5(SCL).
Установка даты времени осуществляется через терминал при помощи команды "SETDATE гггг-мм-дд ЧЧ:ММ:СС". К примеру SETDATE 2020-01-19 02:50:02. Обязательно должен быть символ конца строки Newline или Both NL&CR. Скорость 9600.
- Вложения
-
- Futaba_clock.zip
- (279.02 КБ) 359 скачиваний
Re: Часы на люминесцентных индикаторах.
SAU
Накал ламп соединён последовательно 3х2 с подпоркой через диоды. Аноды по польской схеме через ULN2003.
Плохая схема. Единственное что сделано не через жопу - это DS3231.
Накал ламп соединён последовательно 3х2 с подпоркой через диоды. Аноды по польской схеме через ULN2003.
Плохая схема. Единственное что сделано не через жопу - это DS3231.
Re: Часы на люминесцентных индикаторах.
Спрошу на вдруг повезёт.
Хочу часики замутить на ардуино и 1307, будет мега168 или 328 наверно.
Индикация нестандартная 13 сегментная, регистры 595 5 штук.
Может кто подкинет кусочек или алгоритм как в этом всём время настраивать.
Обычно делают синхронизацию с компа или спутника, но хотелось бы кнопочками
Хочу часики замутить на ардуино и 1307, будет мега168 или 328 наверно.
Индикация нестандартная 13 сегментная, регистры 595 5 штук.
Может кто подкинет кусочек или алгоритм как в этом всём время настраивать.
Обычно делают синхронизацию с компа или спутника, но хотелось бы кнопочками
- Реклама
- Sergei Frolov
- Опытный кот
- Сообщения: 769
- Зарегистрирован: Вт дек 08, 2009 18:24:20
- Откуда: Питер
- Контактная информация:
Re: Часы на люминесцентных индикаторах.
Мне нравится алгоритм, как в часах "Электроника 2-11". Кнопка "Выбор" заставляет мигать очередной разряд. Кнопка "Установ" увеличивает то, что мигает, на 1, если минуты или часы, или сбрасывает в 0, если секунды.
Добавлено after 43 seconds:
Если сложно с миганием, то можно сделать как в часах на К176ИЕ13. Одна кнопка увеличивает минуты, другая - часы.
Добавлено after 43 seconds:
Если сложно с миганием, то можно сделать как в часах на К176ИЕ13. Одна кнопка увеличивает минуты, другая - часы.
Re: Часы на люминесцентных индикаторах.
[uquote="74LS00",url="/forum/viewtopic.php?p=3779151#p3779151"]Спрошу на вдруг повезёт.
Хочу часики замутить на ардуино и 1307, будет мега168 или 328 наверно.
Индикация нестандартная 13 сегментная, регистры 595 5 штук.
Может кто подкинет кусочек или алгоритм как в этом всём время настраивать.
Обычно делают синхронизацию с компа или спутника, но хотелось бы кнопочками[/uquote]
Ну я вешал на 2 кнопки прерывания.
Первая кнопка- вход в режим,переключение настройки часы-минуты, выход из режима и запись в ЧРВ.Контролируется просто- инкрементом байтовой переменной.Например
1-вход и настраиваем часы
2-настраиваем минуты
3-запись в ЧРВ
Ну а второй кнопкой , в зависимости от переменной , увеличиваем по кругу часы или минуты.
Прерывание по спаду с обработкой дребезга
Хочу часики замутить на ардуино и 1307, будет мега168 или 328 наверно.
Индикация нестандартная 13 сегментная, регистры 595 5 штук.
Может кто подкинет кусочек или алгоритм как в этом всём время настраивать.
Обычно делают синхронизацию с компа или спутника, но хотелось бы кнопочками[/uquote]
Ну я вешал на 2 кнопки прерывания.
Первая кнопка- вход в режим,переключение настройки часы-минуты, выход из режима и запись в ЧРВ.Контролируется просто- инкрементом байтовой переменной.Например
1-вход и настраиваем часы
2-настраиваем минуты
3-запись в ЧРВ
Ну а второй кнопкой , в зависимости от переменной , увеличиваем по кругу часы или минуты.
Прерывание по спаду с обработкой дребезга
Re: Часы на люминесцентных индикаторах.
iiiytn1k, Тоже ковыряюсь с дисплеями от касс. Нужна помощь котов. Попался дисплейчик типа RGVFD9CB1010, подключил его к 8266 без проблем, текст выводится. Но русский шрифт там вот такого плана:

В принципе норм но некоторые символы просто выбешивают.
Нашел на него мануал, там говорится что можно создавать кастомные символы. Это выход, кривых в шрифте не так много, можно поправить. Но не получается. Управляется эта мандула через сериал. Чтобы убедиться что вообще управление работает пробуем порулить яркостью. Мануал нам говорит следующее:
adjust brightness: 1F 58 n (01h<=n<=04h)
Проверяем. Выведем на дисплей чтонибудь чтобы видеть изменения:
mySerial.println(" \217\220\205\202\205\204");
Появляется надпись "ПРЕВЕД". Далее отправляем последовательность команд
mySerial.write(0x1F);
mySerial.write(0x58);
mySerial.write(0x01); //(01-20%, 02-40%, 03-60%, 04-100%)
Яркость замечательно изменяется. Значит мы на верном пути. Можно тоже самое запилить одной строкой:
mySerial.print("\37\130\1");//яркость минимум
mySerial.print("\37\130\4");//яркость максимум
С этим разобрались. Курим мануал далее...
define user-defined character:
1B 26 01 n m ...
20h<n<=m<=FFh
01h<=a<=05h
00h<=p<=FFh
Ага... Тут уже сложнее
для начала: 0х1B 0х26 0х01 : говорим что будем добавлять символ
далее: 0х20 0х20 0х05 : код с 20h по 20h, будет наш символ 5 байтов
и потом передаем те самые 5 байтов описывающих новый символ: 0х12 0х2A 0х7F 0х2A 0х24 (тут для примера нарисован символ €)
Как расчитать символ 5х7 тут писать не буду, инфа есть в инете. Ну или если комуто будет интересно напишу, сейчас суть не в этом.
Тоесть подав эту последовательность команд мы создадим новый кастомный символ € с кодом 0х20. Пробуем
mySerial.write(0х1B);
mySerial.write(0х26);
mySerial.write(0х01);
mySerial.write(0х20);
mySerial.write(0х20);
mySerial.write(0х05);
mySerial.write(0х12);
mySerial.write(0х2A);
mySerial.write(0х7F);
mySerial.write(0х2A);
mySerial.write(0х24);
и уже на этом этапе понимаем что нифига не получилось так как на дисплей вылазит мусор. Соответственно добавление не удалось.
Соответственно попытки напечатать символ
mySerial.write(0х20);
ничего не дают. В мануале сказано что
select/cancel user-defined character set: 1B 25 n n=00h, 01h
Следовательно чтобы использовать сохраненные символы нужно сначала сделать
mySerial.write(0х1B);
mySerial.write(0х25);
mySerial.write(0х01);
Потом вывести символ и после этого вернуться к обычному шрифту
mySerial.write(0х1B);
mySerial.write(0х26);
mySerial.write(0х00);
Но всё это смысла не имеет ибо символ у нас не сохранился (
Что делаю не так?

В принципе норм но некоторые символы просто выбешивают.
Нашел на него мануал, там говорится что можно создавать кастомные символы. Это выход, кривых в шрифте не так много, можно поправить. Но не получается. Управляется эта мандула через сериал. Чтобы убедиться что вообще управление работает пробуем порулить яркостью. Мануал нам говорит следующее:
adjust brightness: 1F 58 n (01h<=n<=04h)
Проверяем. Выведем на дисплей чтонибудь чтобы видеть изменения:
mySerial.println(" \217\220\205\202\205\204");
Появляется надпись "ПРЕВЕД". Далее отправляем последовательность команд
mySerial.write(0x1F);
mySerial.write(0x58);
mySerial.write(0x01); //(01-20%, 02-40%, 03-60%, 04-100%)
Яркость замечательно изменяется. Значит мы на верном пути. Можно тоже самое запилить одной строкой:
mySerial.print("\37\130\1");//яркость минимум
mySerial.print("\37\130\4");//яркость максимум
С этим разобрались. Курим мануал далее...
define user-defined character:
1B 26 01 n m ...
20h<n<=m<=FFh
01h<=a<=05h
00h<=p<=FFh
Ага... Тут уже сложнее
для начала: 0х1B 0х26 0х01 : говорим что будем добавлять символ
далее: 0х20 0х20 0х05 : код с 20h по 20h, будет наш символ 5 байтов
и потом передаем те самые 5 байтов описывающих новый символ: 0х12 0х2A 0х7F 0х2A 0х24 (тут для примера нарисован символ €)
Как расчитать символ 5х7 тут писать не буду, инфа есть в инете. Ну или если комуто будет интересно напишу, сейчас суть не в этом.
Тоесть подав эту последовательность команд мы создадим новый кастомный символ € с кодом 0х20. Пробуем
mySerial.write(0х1B);
mySerial.write(0х26);
mySerial.write(0х01);
mySerial.write(0х20);
mySerial.write(0х20);
mySerial.write(0х05);
mySerial.write(0х12);
mySerial.write(0х2A);
mySerial.write(0х7F);
mySerial.write(0х2A);
mySerial.write(0х24);
и уже на этом этапе понимаем что нифига не получилось так как на дисплей вылазит мусор. Соответственно добавление не удалось.
Соответственно попытки напечатать символ
mySerial.write(0х20);
ничего не дают. В мануале сказано что
select/cancel user-defined character set: 1B 25 n n=00h, 01h
Следовательно чтобы использовать сохраненные символы нужно сначала сделать
mySerial.write(0х1B);
mySerial.write(0х25);
mySerial.write(0х01);
Потом вывести символ и после этого вернуться к обычному шрифту
mySerial.write(0х1B);
mySerial.write(0х26);
mySerial.write(0х00);
Но всё это смысла не имеет ибо символ у нас не сохранился (
Что делаю не так?
- Вложения
-
- Custom Displ.ay VFD Manual.pdf
- (1.29 МБ) 310 скачиваний
Re: Часы на люминесцентных индикаторах.
Я как-то разбирался с подобными индикаторами, и научился загружать в них пользовательские символы.
У меня было четыре разновидности таких дисплеев, все с некоторыми отличиями в управлении.
С точки зрения пользовательских символов их можно разделить на две группы:
1) Те, в которые можно загрузить не более двух символов с произвольными адресами
2) Те, в которые можно загрузить много символов, но только подряд.
Загрузку Вы производите верно, если Ваш дисплей второго типа. Вот как у меня загружались 4 символа по адресам 0xB0...0xB3:
Разрешение использования пользовательских символов работает немного иначе. Команды 0x1B 0x25 0x01 и 0x1B 0x25 0x00 глобально (по всему индикатору) включают и выключают отображение пользовательских символов. (Кстати, у Вас почему-то во второй команде 0x26 - это неверно!)
Это влияет на все символы, и на те, что были выведены ранее, и на те, которые выводятся после применения этих команд. Я просто перед загрузкой символов (при инициализации дисплея) выдал первую команду:
То, что уже на этапе загрузки на индикатор выводится мусор, может говорить о том, что нужно использовать другой формат загрузки, как для индикаторов группы 1 в моей терминологии. Для них загрузка производится так:
То есть указывается не диапазон адресов, а один адрес, и не нужно указывать ширину символа, она всегда равна 5.
Для тех индикаторов, которые использовал я, можно было загрузить максимум два символа. При загрузке следующего он заменял собой самый старый загруженный символ.
Наконец, для разных индикаторов различается порядок битов в пяти байтах, описывающих символ. Мне попалось два разных варианта. Но это Вы у себя сами можете определить, когда загрузка заработает.
У меня было четыре разновидности таких дисплеев, все с некоторыми отличиями в управлении.
С точки зрения пользовательских символов их можно разделить на две группы:
1) Те, в которые можно загрузить не более двух символов с произвольными адресами
2) Те, в которые можно загрузить много символов, но только подряд.
Загрузку Вы производите верно, если Ваш дисплей второго типа. Вот как у меня загружались 4 символа по адресам 0xB0...0xB3:
Спойлер
Код: Выделить всё
//Loading user chars
uart_putchar(0x1B);
uart_putchar(0x26);
uart_putchar(0x01);
uart_putchar(0xB0);
uart_putchar(0xB3);
uart_putchar(0x05); //Columns in one char
uart_putchar(pgm_read_byte(&char_pattern_rus_yo[0]));
uart_putchar(pgm_read_byte(&char_pattern_rus_yo[1]));
uart_putchar(pgm_read_byte(&char_pattern_rus_yo[2]));
uart_putchar(pgm_read_byte(&char_pattern_rus_yo[3]));
uart_putchar(pgm_read_byte(&char_pattern_rus_yo[4]));
uart_putchar(0x05);
uart_putchar(pgm_read_byte(&char_pattern_rus_YO[0]));
uart_putchar(pgm_read_byte(&char_pattern_rus_YO[1]));
uart_putchar(pgm_read_byte(&char_pattern_rus_YO[2]));
uart_putchar(pgm_read_byte(&char_pattern_rus_YO[3]));
uart_putchar(pgm_read_byte(&char_pattern_rus_YO[4]));
uart_putchar(0x05);
uart_putchar(pgm_read_byte(&char_pattern_rus_zh[0]));
uart_putchar(pgm_read_byte(&char_pattern_rus_zh[1]));
uart_putchar(pgm_read_byte(&char_pattern_rus_zh[2]));
uart_putchar(pgm_read_byte(&char_pattern_rus_zh[3]));
uart_putchar(pgm_read_byte(&char_pattern_rus_zh[4]));
uart_putchar(0x05);
uart_putchar(pgm_read_byte(&char_pattern_rus_ZH[0]));
uart_putchar(pgm_read_byte(&char_pattern_rus_ZH[1]));
uart_putchar(pgm_read_byte(&char_pattern_rus_ZH[2]));
uart_putchar(pgm_read_byte(&char_pattern_rus_ZH[3]));
uart_putchar(pgm_read_byte(&char_pattern_rus_ZH[4]));Это влияет на все символы, и на те, что были выведены ранее, и на те, которые выводятся после применения этих команд. Я просто перед загрузкой символов (при инициализации дисплея) выдал первую команду:
Спойлер
Код: Выделить всё
//Set (enable) user defined characters
uart_putchar(0x1B);
uart_putchar(0x25);
uart_putchar(0x01); //set (enable) Спойлер
Код: Выделить всё
uart_putchar(0x1B);
uart_putchar(0x26);
uart_putchar(address);
uart_putchar(pgm_read_byte(&pattern[0]));
uart_putchar(pgm_read_byte(&pattern[1]));
uart_putchar(pgm_read_byte(&pattern[2]));
uart_putchar(pgm_read_byte(&pattern[3]));
uart_putchar(pgm_read_byte(&pattern[4]));Для тех индикаторов, которые использовал я, можно было загрузить максимум два символа. При загрузке следующего он заменял собой самый старый загруженный символ.
Наконец, для разных индикаторов различается порядок битов в пяти байтах, описывающих символ. Мне попалось два разных варианта. Но это Вы у себя сами можете определить, когда загрузка заработает.
Этот пост оказался полезен? Не поленись, нажми
слева!

Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
слева!Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
Re: Часы на люминесцентных индикаторах.
*Trigger*, Спасибо! По крайней мере понятно что я на верном пути )
[uquote="*Trigger*",url="/forum/viewtopic.php?p=3781205#p3781205"](Кстати, у Вас почему-то во второй команде 0x26 - это неверно!)[/uquote]
Всё верно, просто промазал
Нашел в загашнике еще дисплей вот такой:
Совершенно другой агрегат с USB интерфейсом(ну как ЮСБ, внутри пролифик юсб-ком и преобразователь 5в-12в) совершенно другой платой и такимже угробищным шрифтом.
Но всё дело в том что именно этот дисплей стоял на кассе в магазине и "Добро пожаловать" на нем было совершенно другим красивым шрифтом. Это наводит на мысль что в эту сволочь таки можно заливать пользовательские шрифты.
Пока особо времени не было, попробовал на скорую руку
mySerial.write(0x1B);
mySerial.write(0x26);
mySerial.write(0xB0);
mySerial.write(0х12);
mySerial.write(0х2A);
mySerial.write(0х7F);
mySerial.write(0х2A);
mySerial.write(0х24);
К сожалению толку тоже не добился. Чувствую что-то не так делаю... На первом дисплее есть переключатели
Firich/CD5220
Epson
Aedex
DSP800
На втором это переключается командами. Может в этом дело. Вечером засяду за эксперименты...
[uquote="*Trigger*",url="/forum/viewtopic.php?p=3781205#p3781205"](Кстати, у Вас почему-то во второй команде 0x26 - это неверно!)[/uquote]
Всё верно, просто промазал
Нашел в загашнике еще дисплей вот такой:
Спойлер


Но всё дело в том что именно этот дисплей стоял на кассе в магазине и "Добро пожаловать" на нем было совершенно другим красивым шрифтом. Это наводит на мысль что в эту сволочь таки можно заливать пользовательские шрифты.
Пока особо времени не было, попробовал на скорую руку
mySerial.write(0x1B);
mySerial.write(0x26);
mySerial.write(0xB0);
mySerial.write(0х12);
mySerial.write(0х2A);
mySerial.write(0х7F);
mySerial.write(0х2A);
mySerial.write(0х24);
К сожалению толку тоже не добился. Чувствую что-то не так делаю... На первом дисплее есть переключатели
Firich/CD5220
Epson
Aedex
DSP800
На втором это переключается командами. Может в этом дело. Вечером засяду за эксперименты...
Последний раз редактировалось AndrewSW Вт янв 28, 2020 21:37:06, всего редактировалось 1 раз.
Re: Часы на люминесцентных индикаторах.
Насколько я понимаю, в режиме Firich можно грузить много символов (команда с диапазоном адресов), в режиме Epson - загрузка командой с одним адресом и без ширины символа.
Для проверки и поиска верных команд удобно подключить дисплей к ПК и из программы-терминала вручную слать команды. Если отправлять по одному байту, можно увидеть, в каком месте появляется мусор на индикаторе.
Я так искал верные команды.
Кстати, в шрифтах тех индикаторов, что попались мне, были перепутны местами буквы "Ь" и "Ъ".
Для проверки и поиска верных команд удобно подключить дисплей к ПК и из программы-терминала вручную слать команды. Если отправлять по одному байту, можно увидеть, в каком месте появляется мусор на индикаторе.
Я так искал верные команды.
Кстати, в шрифтах тех индикаторов, что попались мне, были перепутны местами буквы "Ь" и "Ъ".
Этот пост оказался полезен? Не поленись, нажми
слева!

Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
слева!Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
Re: Часы на люминесцентных индикаторах.
Сейчас так и делаю. Всё что пытаюсь послать после 1B 26 попадает на дисплей в виде мусора.
Предварительно 1B 25 01 отправил, не влияет.
Ввожу 1B 26 01 - на дисплей выводится β
Если предположить что нужно указывать сразу адрес и байты нового символа то в случае
1B 26 3B 80 - на дисплей выводится "пробел А" то есть по адресу 3В у нас пусть и он попытался его напечатать вместо того чтобы воспринимать его как адрес для нового символа. Получается вообще 1В 26 не работает...
Предварительно 1B 25 01 отправил, не влияет.
Ввожу 1B 26 01 - на дисплей выводится β
Если предположить что нужно указывать сразу адрес и байты нового символа то в случае
1B 26 3B 80 - на дисплей выводится "пробел А" то есть по адресу 3В у нас пусть и он попытался его напечатать вместо того чтобы воспринимать его как адрес для нового символа. Получается вообще 1В 26 не работает...
Re: Часы на люминесцентных индикаторах.
Переведите переключателями дисплей в режим Firich (важно!) и отправьте вот эту последовательность (в кавычках - обычные символы):
Делать это нужно после подачи питания на индикатор, не отправляя до этого ничего.
Потом проверьте, загрузилось ли что-нибудь по адресу 0xB0.
У меня такой вариант заведомо работает. Возможно, у Вас проблемы с командой 0x1B 0x26 из-за того, что до этого какая-то команда была отправлена неверно, из-за чего нарушилась разбивка входной последовательности байт на команды.
Код: Выделить всё
0x1B 0x40
0x63 'R'
0x1B 0x66 'A'
0x1B 0x25 0x01
0x1B 0x26 0x01 0xB0 0xB0 0x05 0x12 0x2A 0x7F 0x2A 0x24Потом проверьте, загрузилось ли что-нибудь по адресу 0xB0.
У меня такой вариант заведомо работает. Возможно, у Вас проблемы с командой 0x1B 0x26 из-за того, что до этого какая-то команда была отправлена неверно, из-за чего нарушилась разбивка входной последовательности байт на команды.
Этот пост оказался полезен? Не поленись, нажми
слева!

Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
слева!Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
Re: Часы на люминесцентных индикаторах.
В режиме Firich заработало!
Даже без этого:
0x1B 0x40
0x63 'R'
0x1B 0x66 'A'
Вот эта конструкция отрабатывает без проблем:
0x1B 0x25 0x01
0x1B 0x26 0x01 0xB0 0xB0 0x05 0x12 0x2A 0x7F 0x2A 0x24
Спасибо огромное за помощь! Дальше работа нудная но знакомая ) описать побитно нужные символы, прописать функцию преобразования строк и дальше буду писать часы с синхронизацией через инет, погодным информером, преферансом и поэтессами
Наконец то человеческая буква Д! Еще десять тысяч ведер и золотой ключик наш!
З.Ы. На третьем символе задолбался... Нет какогонибудь сервиса типа такого: http://arduino.on.kg/redaktor-simvolov-dlya-matric-5h7 чтобы переводил в нужный формат? Задумался что написать такой не сильно сложно, может сначала этим заняться... 
Даже без этого:
0x1B 0x40
0x63 'R'
0x1B 0x66 'A'
Вот эта конструкция отрабатывает без проблем:
0x1B 0x25 0x01
0x1B 0x26 0x01 0xB0 0xB0 0x05 0x12 0x2A 0x7F 0x2A 0x24
Спасибо огромное за помощь! Дальше работа нудная но знакомая ) описать побитно нужные символы, прописать функцию преобразования строк и дальше буду писать часы с синхронизацией через инет, погодным информером, преферансом и поэтессами
Наконец то человеческая буква Д! Еще десять тысяч ведер и золотой ключик наш!
Спойлер

Re: Часы на люминесцентных индикаторах.
Первые три команды - сброс и выбор наборов символов. В принципе, реально мне требовалось только выбрать русский набор символов. У Вас он, наверное, выбран по умолчанию.
Насчёт автоматизации кодирования символов. Я делал так:
Для такого простого формата (естественный порядок, символы глазами видно!) наверняка есть готовые программы (я нужные буквы сделал вручную, их не так много, даже для четырёх разных индикаторов), а биты пусть переставляет компилятор.
Насчёт автоматизации кодирования символов. Я делал так:
Спойлер
Код: Выделить всё
#define MV_BIT(data, src, dst) (((data) & (1 << (src))) ? (1 << (dst)) : 0)
#define VFD_CHAR_PATTERN(row0, row1, row2, row3, row4, row5, row6, spec) \
0 | MV_BIT(row0, 4, 6) | MV_BIT(row1, 4, 5) | MV_BIT(row2, 4, 4) | \
MV_BIT(row3, 4, 3) | MV_BIT(row4, 4, 2) | MV_BIT(row5, 4, 1) | MV_BIT(row6, 4, 0) ,\
0 | MV_BIT(row0, 3, 6) | MV_BIT(row1, 3, 5) | MV_BIT(row2, 3, 4) | \
MV_BIT(row3, 3, 3) | MV_BIT(row4, 3, 2) | MV_BIT(row5, 3, 1) | MV_BIT(row6, 3, 0) ,\
0 | MV_BIT(row0, 2, 6) | MV_BIT(row1, 2, 5) | MV_BIT(row2, 2, 4) | \
MV_BIT(row3, 2, 3) | MV_BIT(row4, 2, 2) | MV_BIT(row5, 2, 1) | MV_BIT(row6, 2, 0) ,\
0 | MV_BIT(row0, 1, 6) | MV_BIT(row1, 1, 5) | MV_BIT(row2, 1, 4) | \
MV_BIT(row3, 1, 3) | MV_BIT(row4, 1, 2) | MV_BIT(row5, 1, 1) | MV_BIT(row6, 1, 0) ,\
0 | MV_BIT(row0, 0, 6) | MV_BIT(row1, 0, 5) | MV_BIT(row2, 0, 4) | \
MV_BIT(row3, 0, 3) | MV_BIT(row4, 0, 2) | MV_BIT(row5, 0, 1) | MV_BIT(row6, 0, 0)
const PROGMEM uint8_t char_pattern_rus_sh[] =
{
VFD_CHAR_PATTERN
(
0b00000,
0b00000,
0b10101,
0b10101,
0b10101,
0b10101,
0b11111,
0b000
)
};
const PROGMEM uint8_t char_pattern_rus_shch[] =
{
VFD_CHAR_PATTERN
(
0b00000,
0b00000,
0b10101,
0b10101,
0b10101,
0b11111,
0b00001,
0b000
)
};Этот пост оказался полезен? Не поленись, нажми
слева!

Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
слева!Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
Re: Часы на люминесцентных индикаторах.
*Trigger*, Спасибо еще раз! Возьму на вооружение.
Начал причесывать шрифт. Сверху было, снизу стало:
Уже чтото нарисовывается )

Начал причесывать шрифт. Сверху было, снизу стало:
Спойлер

Спойлер

-
watchmaker
- Поставщик валерьянки для Кота
- Сообщения: 2183
- Зарегистрирован: Вс ноя 15, 2009 23:13:59
- Откуда: Харьков
- Контактная информация:
Re: Часы на люминесцентных индикаторах.
Ъ и Ь специально в обратном порядке или так было в прошивке дисплея?
Иногда мой питомец уходит в такую спячку, что разбудить его можно только щелчком по первой ноге...
Re: Часы на люминесцентных индикаторах.
[uquote="watchmaker",url="/forum/viewtopic.php?p=3781640#p3781640"]Ъ и Ь специально в обратном порядке или так было в прошивке дисплея?[/uquote]
В дисплеях перепутано ) У меня сейчас разобрано два совершенно разных по железу, так в обоих
В дисплеях перепутано ) У меня сейчас разобрано два совершенно разных по железу, так в обоих
Re: Часы на люминесцентных индикаторах.
Часы из магазинного дисплея покупателя
В качестве мозгов ESP8266 WEMOS D1 mini. Пока функционала практически никакого. При старте часов создается точка доступа с именем VFDClock и паролем 123456. Нужно подключиться к ней и зайдя на страницу 192.168.4.1 прописать доступ к своей ВайФай сети. После этого часы перезапустятся и подключившись к сети синхронизируются с NTP. Если всё прошло удачно то начинают отображать время на дисплее.
Отладка пока в сериал, настройки в скетче, Подключены 4 кнопки, но еще не прописаны. По сути пока заготовка, но уже прикольно )))
Спойлер

Отладка пока в сериал, настройки в скетче, Подключены 4 кнопки, но еще не прописаны. По сути пока заготовка, но уже прикольно )))
Re: Часы на люминесцентных индикаторах.
А подробнее можно?


