Часы Super Clock - VFD

Вопросы и замечания по статьям и схемам, представленным на нашем сайте

При поддержке РадиоКОТструктор.ру


Аватара пользователя
Kotto
Опытный кот
Сообщения: 795
Зарегистрирован: Чт ноя 08, 2012 22:28:05
Откуда: Ижевск
Контактная информация:

Re: Часы Super Clock - VFD

Сообщение Kotto »

Есть еще эффектик, те лампы, что не севшие и светят ярко, ощущение что их свет отражается от внутренней стороны колбы и создает еще засветку. У ламп с подсевшим люминофором такого эффекта нет
Аватара пользователя
Kotto
Опытный кот
Сообщения: 795
Зарегистрирован: Чт ноя 08, 2012 22:28:05
Откуда: Ижевск
Контактная информация:

Re: Часы Super Clock - VFD

Сообщение Kotto »

Продолжаю возиться с часиками. Все работает, но никак не могу опять же побороть в некоторых лампах паразитное свечение. Не понятно от чего это зависит (( Запирающее напряжение есть, резисторы перепробовал от 400 кОм до 240 кОм. Если менять лампы, в некоторых оно сильнее, в некоторых слабее, бывает если лампу трогать пальцем, засветка усиливается. Заметно это на минимуме яркости. Транзисторы пробовал DTA114 без обвязки, напрямую от контроллера и BC857 npn с базовым резистором 10 кОм. Флюс отмачивал в тазике с изопропанолом зубной щеткой, после сушил феном, плата блестит.

Наиболее заметно засветка проявляется между 1й лампой (десятки часов) и 6й лампой (единицы секунд).

Алгоритм индикации следующий:
// Timer 0 overflow interrupt service routine
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
// Reinitialize Timer 0 value
TCNT0=0xFE;
switch (a) {
case 0:
print (hours / 10);
break;
case 1:
print (hours % 10);
break;
.
.
.
case 5:
print (seconds % 10);
break;
}

c++;
if (c > 10) {
off_all_setka ();
off_all_segment ();
a++;
if (a > 5) {a = 0;}
}
}

немного сокращенно, но суть думаю понятна. В основной части программы ничего пока особо нет, только чтение времени с ds3231.

Эффект конечно крайне не значительный, но люто бесит. Помогите пожалуйста что нибудь сделать с этим (

PS функция print включает нужные сегменты в зависимости от того, какая цифра на входе. Функции off_all выключают либо все сегменты сразу, либо все сетки. Добавление каких либо delay в этих местах эффекта не дает никакого.

Лампы ИВ-12.

Изображение Изображение Изображение

На фото конечно не видно абсолютно, но оно есть
Аватара пользователя
RoboC
Мудрый кот
Сообщения: 1795
Зарегистрирован: Ср апр 04, 2012 09:55:53
Откуда: Северодонецк
Контактная информация:

Re: Часы Super Clock - VFD

Сообщение RoboC »

Вы бы лучше весь исходник приложили.
Может вы в print сначала сегменты включаете , а потом сетки?
Почему 2 прерывания не использовали по совпадению и переполнения, как обычно это делают?

не заметил где "с" обнуляется.
У того, кто делает — получается редко. У того, кто не делает — не получается никогда.
Аватара пользователя
Kotto
Опытный кот
Сообщения: 795
Зарегистрирован: Чт ноя 08, 2012 22:28:05
Откуда: Ижевск
Контактная информация:

Re: Часы Super Clock - VFD

Сообщение Kotto »

Вот мой код, немного стыдно за него, ибо программист из меня так себе... Да, действительно я сначала включаю сегменты, потом сетки, это сильно критично? А то уже не знаю за что взяться, разобрал трансформатор, с целью понизить анодное. Подумал может завысил чуток...
---

И да, зачем два прерывания?
Вложения
Часы на ИВ-12.rar
(59.29 КБ) 254 скачивания
ncbelov
Потрогал лапой паяльник
Сообщения: 338
Зарегистрирован: Чт апр 02, 2015 17:04:07
Откуда: Тольятти

Re: Часы Super Clock - VFD

Сообщение ncbelov »

[uquote="Kotto",url="/forum/viewtopic.php?p=3303332#p3303332"]Вот мой код[/uquote]
архив битый
Аватара пользователя
Kotto
Опытный кот
Сообщения: 795
Зарегистрирован: Чт ноя 08, 2012 22:28:05
Откуда: Ижевск
Контактная информация:

Re: Часы Super Clock - VFD

Сообщение Kotto »

скачал архив отсюда, который залил, все открылось отлично
Изображение
ncbelov
Потрогал лапой паяльник
Сообщения: 338
Зарегистрирован: Чт апр 02, 2015 17:04:07
Откуда: Тольятти

Re: Часы Super Clock - VFD

Сообщение ncbelov »

Скачать я тоже скачал да вот открыть его не могу,ну да ладно.
Последний раз редактировалось ncbelov Ср фев 07, 2018 18:11:50, всего редактировалось 1 раз.
Аватара пользователя
Kotto
Опытный кот
Сообщения: 795
Зарегистрирован: Чт ноя 08, 2012 22:28:05
Откуда: Ижевск
Контактная информация:

Re: Часы Super Clock - VFD

Сообщение Kotto »

Перезалил в zip
Вложения
hex.zip
(85.11 КБ) 250 скачиваний
Аватара пользователя
RoboC
Мудрый кот
Сообщения: 1795
Зарегистрирован: Ср апр 04, 2012 09:55:53
Откуда: Северодонецк
Контактная информация:

Re: Часы Super Clock - VFD

Сообщение RoboC »

[uquote="Kotto",url="/forum/viewtopic.php?p=3303332#p3303332"]Вот мой код, немного стыдно за него, ибо программист из меня так ..
И да, зачем два прерывания?[/uquote]
Я тоже не программист, для меня єто хобби :tea:
Вы прочитали эту статью, и надо было еще эту прочитать.

используя одно прерывание я бы написал его так, примерно:
Спойлер

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

volatile unsigned char  brightness = 0;
volatile unsigned char	Trigger = 0;
volatile unsigned char out[6] = {10, 10, 10, 10, 10, 10};
volatile unsigned char dig;

// Timer 0 overflow interrupt service routine
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
    // Reinitialize Timer 0 value
    if (Trigger == 1)
    {
    TCNT0=brightness; // brightness = 20 // 235 тиков счетчика будет гореть 1 сегмент
		
		// получаем из массива out[а] число
		//номер числа в массиве  указывает "а" - номер сегмента
		dig = out[а];
		//обрабатываем число диг  dig , обычно это взять из массива маску для порта для нужной цифры и записать ее в порт;
		print (dig); // только вывод в порты!!!
		// только не расклавывайте числа в прерывании как в примере по моей ссылке . Оно, прерывание, должно быть как        можно короче!!!!!
                // все вычисления, конвертации должны быть сделаны в основной программе!!!!
		// дальше открываем нужную сетку	
       if (dig!=10)  //  если dig  равно 10 то это пробел, мы не зажигаем лампу
      {
        switch (a) {
            case 0: 
                    PORTA.4 = 0;
                    break;
            case 1: 
                    PORTA.5 = 0;
                    break;  
            case 2: 
                    PORTA.6 = 0;
                    break;
            case 3: 
                    PORTB.2 = 0;
                    break;
            case 4: 
                    PORTB.3 = 0;
                    break;  
            case 5: 
                    PORTB.4 = 0;
                    break; 
                
        }    
       }
        a++;  // следующий сегмеент
        if (a == 6) {a = 0;}
        Trigger = 0;
      }else
      {
        TCNT0=255-brightness; // 20 тиков счетчика  все индикаторы будут выключены для подавления засветки
		Trigger = 1;
		//тут выключаем сначала сетки , потом аноды.
      }
  
}
Изменяя в основной программе brightness, вы меняете яркость
Изменяя числа в массиве out[6], вы меняете символы на лампах. :)

Таймер надо настроить делителями на частоту = 2*частота индикации*кол-во ламп
У того, кто делает — получается редко. У того, кто не делает — не получается никогда.
Аватара пользователя
Kotto
Опытный кот
Сообщения: 795
Зарегистрирован: Чт ноя 08, 2012 22:28:05
Откуда: Ижевск
Контактная информация:

Re: Часы Super Clock - VFD

Сообщение Kotto »

RoboC, спасибо за ссылки, их как раз читал ) Все это конечно хорошо, но как это связано с засветкой? Попробовал перемотать трансформатор, намотал всего 35 витков вторички для анодов, засветка все равно осталась, хотя и видно ее теперь разве что под микроскопом :)) Зато очень сильно упала максимальная яркость.

Есть ли разница, когда включать сегменты, до включенной сетки или после? Я как то думал, что если сетка у лампы не включена, то на сегменты можно хоть что выводить, видно это не будет.

Ну вот и написал так: все погасить, выставить нужные сегменты, включить сетку, изображение появится. Дальше выключить сетку, выставить новую цифру, включить следующую сетку и т.д.

Может я конечно вообще сильно придираюсь сам к себе, но на чужих видео я вообще не вижу никаких спецэффектов в виде засветок. Впрочем если снимать и мои часы на видео, видно этого не будет. Или может забить и так и должно быть? Свечение то едва заметно, нужно специально внимательно вглядеться, чтобы заметить легкую засветку люминофора не той цифрой.
akl
Друг Кота
Сообщения: 4444
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

Re: Часы Super Clock - VFD

Сообщение akl »

При включенной сетке погасить сегменты - пауза для исчезновения тока - выключить сетку - включить сегменты следующего индикатора - включить сетку оного.
Аватара пользователя
aivcon
Вымогатель припоя
Сообщения: 588
Зарегистрирован: Пн ноя 04, 2013 09:43:14
Откуда: Подольск.

Re: Часы Super Clock - VFD

Сообщение aivcon »

Если паразитная засветка в некоторых лампах, посмотрите еще в сторону чистоты плат. Флюсы из за высоких частот и повышенного напряжения частенько дают сопротивление.
Аватара пользователя
RoboC
Мудрый кот
Сообщения: 1795
Зарегистрирован: Ср апр 04, 2012 09:55:53
Откуда: Северодонецк
Контактная информация:

Re: Часы Super Clock - VFD

Сообщение RoboC »

Выключить сетку,погасить сегмент,пауза, включить сегменты следующего индикатора,включить сетку оного.
aivcon, человек писал что все отмыл.

Если нет паузы, то на следующем индикаторе чуть видно предыдущий.
Если засветка общая, то, скорее всего, это при включенной сетке у вас меняются сегменты.
У того, кто делает — получается редко. У того, кто не делает — не получается никогда.
Аватара пользователя
Kotto
Опытный кот
Сообщения: 795
Зарегистрирован: Чт ноя 08, 2012 22:28:05
Откуда: Ижевск
Контактная информация:

Re: Часы Super Clock - VFD

Сообщение Kotto »

А сильно ли критично анодное напряжение? Под нагрузкой накала и 6 ламп на анодах было изначально 45 Вольт. Так же с некоторыми лампами было достаточно трогать их за колбу для появления посторонней засветки.

Флюс отмыт в тазике со спиртом зубной щеткой и все тщательно вымыто. При работе с газоразрядными лампами такого эффекта никогда не встречал. На счет LED не знаю, никогда на них ничего не делал.
akl
Друг Кота
Сообщения: 4444
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

Re: Часы Super Clock - VFD

Сообщение akl »

[uquote="RoboC",url="/forum/viewtopic.php?p=3303665#p3303665"]Выключить сетку,погасить сегмент,пауза...[/uquote]
Kotto писал(а):выключить сетку, выставить новую цифру, включить следующую сетку и т.д.
Ваше право, но когда вы выключаете сетку перед выключением сегментов зарядам некуда стекать. Вот и появляется "туева хуча" резисторов.
Аватара пользователя
Kotto
Опытный кот
Сообщения: 795
Зарегистрирован: Чт ноя 08, 2012 22:28:05
Откуда: Ижевск
Контактная информация:

Re: Часы Super Clock - VFD

Сообщение Kotto »

akl О как оказывается, просто никогда не работал с ВЛИ, не знал такого эффекта, получается гасим сегменты до выключения сетки. А на счет туевой хучи резисторов не понял. Не так уж у меня их много, а при использовании DTA114 вообще нет никаких, ну кроме тех что внутри транзистора стоят. Если использую BC857, то только на базах резисторы.
akl
Друг Кота
Сообщения: 4444
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

Re: Часы Super Clock - VFD

Сообщение akl »

Имелись ввиду разрядные резисторы между анодом-сегментом и потенциалом накала. Хотя... Они всё равно желательны.
Аватара пользователя
RoboC
Мудрый кот
Сообщения: 1795
Зарегистрирован: Ср апр 04, 2012 09:55:53
Откуда: Северодонецк
Контактная информация:

Re: Часы Super Clock - VFD

Сообщение RoboC »

между коллектором bc857 и - 35v резистора нет?
У того, кто делает — получается редко. У того, кто не делает — не получается никогда.
Аватара пользователя
Kotto
Опытный кот
Сообщения: 795
Зарегистрирован: Чт ноя 08, 2012 22:28:05
Откуда: Ижевск
Контактная информация:

Re: Часы Super Clock - VFD

Сообщение Kotto »

RoboC, Разумеется есть, запирающее напряжение, по показаниям тестера там все нормально. Если измерять относительно 5 вольт напряжения питания логики, то при погашенном сегменте/сетке там будет -сколько-то вольт, при включенном сегменте/сетке 0 вольт. Резисторы я эти брал от 240 кОм до 400 кОм.
---

Наконец то дошло, как использовать два прерывания, надеюсь получится и все это поможет избавиться от хоть и крохотной, но неприятной засветки
---

Что лучше использовать, DTA 114 или BC857 с 10 кОм на базе? В плане припаять они для меня равнозначны, в плане изготовления платы в общем то тоже.

Добавлено after 8 hours 45 minutes 57 seconds:
Уважаемые коты! Сделал на двух прерываниях, при минимуме яркости все равно есть засветка. Вот так выглядит при комнатном рассеянном свете.

Изображение

А вот так в полной темноте

Изображение

Транзисторы DTA114, число витков вторичной обмотки 52.

Исходник во вложении. Посмотрите пожалуйста, так и должно быть или где то я накосячил? Все сделал по статье http://radioparty.ru/prog-avr/program-c ... egment-avr

Правда код пришлось немного изменить, переключение сегмента сделал при переполнении и добавил задержки после отключения сегментов и сеток иначе засветка была очень уж сильной.

Если где то не верно, подскажите, где именно в моем коде. Хочется понять до конца как надо.
Вложения
исходник.zip
(83.26 КБ) 219 скачиваний
Аватара пользователя
Grey1975
Опытный кот
Сообщения: 854
Зарегистрирован: Ср май 06, 2015 01:32:36
Откуда: Москва

Re: Часы Super Clock - VFD

Сообщение Grey1975 »

Похоже "перенакал"... Поиграйтесь с накальной обмоткой.
Изображение Инь и Янь - без выпендрежа.
Ответить

Вернуться в «Статьи»