А как подбирали количество витков, что бы вписаться в напряжение/ток на накал? True RMS вольтметр использовали или "на глаз"?
Я когда делал блок питания на 1211ЕУ1 намотал на кольце первичку 7 витков проводом 0,5, вторичку на накал - 1 виток тоже 0,5. На анодное витков 60 0,15.Вполне ярко светит и накал не раскаляется. Если осциллограф есть - то можно и проконтролировать На CD4047 схемка не заработала- грелись полевики. По моему не успевал закрываться один полевик, в то время,как открывался другой.
Когда-то ковырялся с знакосинтезирующими дисплеями 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.
SAU Накал ламп соединён последовательно 3х2 с подпоркой через диоды. Аноды по польской схеме через ULN2003. Плохая схема. Единственное что сделано не через жопу - это DS3231.
Спрошу на вдруг повезёт. Хочу часики замутить на ардуино и 1307, будет мега168 или 328 наверно. Индикация нестандартная 13 сегментная, регистры 595 5 штук. Может кто подкинет кусочек или алгоритм как в этом всём время настраивать. Обычно делают синхронизацию с компа или спутника, но хотелось бы кнопочками
Мне нравится алгоритм, как в часах "Электроника 2-11". Кнопка "Выбор" заставляет мигать очередной разряд. Кнопка "Установ" увеличивает то, что мигает, на 1, если минуты или часы, или сбрасывает в 0, если секунды.
Добавлено after 43 seconds: Если сложно с миганием, то можно сделать как в часах на К176ИЕ13. Одна кнопка увеличивает минуты, другая - часы.
Спрошу на вдруг повезёт. Хочу часики замутить на ардуино и 1307, будет мега168 или 328 наверно. Индикация нестандартная 13 сегментная, регистры 595 5 штук. Может кто подкинет кусочек или алгоритм как в этом всём время настраивать. Обычно делают синхронизацию с компа или спутника, но хотелось бы кнопочками
Ну я вешал на 2 кнопки прерывания. Первая кнопка- вход в режим,переключение настройки часы-минуты, выход из режима и запись в ЧРВ.Контролируется просто- инкрементом байтовой переменной.Например 1-вход и настраиваем часы 2-настраиваем минуты 3-запись в ЧРВ
Ну а второй кнопкой , в зависимости от переменной , увеличиваем по кругу часы или минуты. Прерывание по спаду с обработкой дребезга
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х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); Но всё это смысла не имеет ибо символ у нас не сохранился ( Что делаю не так?
Я как-то разбирался с подобными индикаторами, и научился загружать в них пользовательские символы. У меня было четыре разновидности таких дисплеев, все с некоторыми отличиями в управлении.
С точки зрения пользовательских символов их можно разделить на две группы: 1) Те, в которые можно загрузить не более двух символов с произвольными адресами 2) Те, в которые можно загрузить много символов, но только подряд.
Загрузку Вы производите верно, если Ваш дисплей второго типа. Вот как у меня загружались 4 символа по адресам 0xB0...0xB3: Спойлер
Разрешение использования пользовательских символов работает немного иначе. Команды 0x1B 0x25 0x01 и 0x1B 0x25 0x00 глобально (по всему индикатору) включают и выключают отображение пользовательских символов. (Кстати, у Вас почему-то во второй команде 0x26 - это неверно!) Это влияет на все символы, и на те, что были выведены ранее, и на те, которые выводятся после применения этих команд. Я просто перед загрузкой символов (при инициализации дисплея) выдал первую команду: Спойлер
Код:
//Set (enable) user defined characters uart_putchar(0x1B); uart_putchar(0x25); uart_putchar(0x01);//set (enable)
То, что уже на этапе загрузки на индикатор выводится мусор, может говорить о том, что нужно использовать другой формат загрузки, как для индикаторов группы 1 в моей терминологии. Для них загрузка производится так: Спойлер
То есть указывается не диапазон адресов, а один адрес, и не нужно указывать ширину символа, она всегда равна 5. Для тех индикаторов, которые использовал я, можно было загрузить максимум два символа. При загрузке следующего он заменял собой самый старый загруженный символ.
Наконец, для разных индикаторов различается порядок битов в пяти байтах, описывающих символ. Мне попалось два разных варианта. Но это Вы у себя сами можете определить, когда загрузка заработает.
_________________ Этот пост оказался полезен? Не поленись, нажми слева! Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
(Кстати, у Вас почему-то во второй команде 0x26 - это неверно!)
Всё верно, просто промазал Нашел в загашнике еще дисплей вот такой: Спойлер Совершенно другой агрегат с 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 На втором это переключается командами. Может в этом дело. Вечером засяду за эксперименты...
Последний раз редактировалось AndrewSW Вт янв 28, 2020 21:37:06, всего редактировалось 1 раз.
Насколько я понимаю, в режиме Firich можно грузить много символов (команда с диапазоном адресов), в режиме Epson - загрузка командой с одним адресом и без ширины символа.
Для проверки и поиска верных команд удобно подключить дисплей к ПК и из программы-терминала вручную слать команды. Если отправлять по одному байту, можно увидеть, в каком месте появляется мусор на индикаторе. Я так искал верные команды.
Кстати, в шрифтах тех индикаторов, что попались мне, были перепутны местами буквы "Ь" и "Ъ".
_________________ Этот пост оказался полезен? Не поленись, нажми слева! Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
Сейчас так и делаю. Всё что пытаюсь послать после 1B 26 попадает на дисплей в виде мусора. Предварительно 1B 25 01 отправил, не влияет. Ввожу 1B 26 01 - на дисплей выводится β Если предположить что нужно указывать сразу адрес и байты нового символа то в случае 1B 26 3B 80 - на дисплей выводится "пробел А" то есть по адресу 3В у нас пусть и он попытался его напечатать вместо того чтобы воспринимать его как адрес для нового символа. Получается вообще 1В 26 не работает...
Делать это нужно после подачи питания на индикатор, не отправляя до этого ничего.
Потом проверьте, загрузилось ли что-нибудь по адресу 0xB0.
У меня такой вариант заведомо работает. Возможно, у Вас проблемы с командой 0x1B 0x26 из-за того, что до этого какая-то команда была отправлена неверно, из-за чего нарушилась разбивка входной последовательности байт на команды.
_________________ Этот пост оказался полезен? Не поленись, нажми слева! Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
Спасибо огромное за помощь! Дальше работа нудная но знакомая ) описать побитно нужные символы, прописать функцию преобразования строк и дальше буду писать часы с синхронизацией через инет, погодным информером, преферансом и поэтессами
Наконец то человеческая буква Д! Еще десять тысяч ведер и золотой ключик наш! Спойлер
З.Ы. На третьем символе задолбался... Нет какогонибудь сервиса типа такого: http://arduino.on.kg/redaktor-simvolov-dlya-matric-5h7 чтобы переводил в нужный формат? Задумался что написать такой не сильно сложно, может сначала этим заняться...
Первые три команды - сброс и выбор наборов символов. В принципе, реально мне требовалось только выбрать русский набор символов. У Вас он, наверное, выбран по умолчанию.
Насчёт автоматизации кодирования символов. Я делал так: Спойлер
Для такого простого формата (естественный порядок, символы глазами видно!) наверняка есть готовые программы (я нужные буквы сделал вручную, их не так много, даже для четырёх разных индикаторов), а биты пусть переставляет компилятор.
_________________ Этот пост оказался полезен? Не поленись, нажми слева! Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
Часы из магазинного дисплея покупателя Спойлер В качестве мозгов ESP8266 WEMOS D1 mini. Пока функционала практически никакого. При старте часов создается точка доступа с именем VFDClock и паролем 123456. Нужно подключиться к ней и зайдя на страницу 192.168.4.1 прописать доступ к своей ВайФай сети. После этого часы перезапустятся и подключившись к сети синхронизируются с NTP. Если всё прошло удачно то начинают отображать время на дисплее. Отладка пока в сериал, настройки в скетче, Подключены 4 кнопки, но еще не прописаны. По сути пока заготовка, но уже прикольно )))
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 18
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения