Часы на AtMega8
|
|
| Сообщение # 21
|
WELL_85
Постов: 639
Друзья |
Наконец-то дождался контроллера из китая (долго шёл) Собрал эти часики. Всё работает, но вот яркость очень слабая. Что характерно, ниже 6 вольт яркость уменьшается, а при увеличении напряжения питания с 6в до 12в яркость остаётся прежней ,может это дело в прошивке?. На катодных цепях, напряжение почти равно напряжению питания. А на сегментах , анодных цепях, при питании 12в, всего 9в напряжение. Подскажите пожалуйста как повысить яркость.
P.S. Светодиодные сегменты собирал параллельно, поэтому для напряжения питания 12 в, поставил резисторы на 150ом (7 шт) . Но когда пробовал их коротить, результата никакого не заметил.
|
|
| Сообщение # 22
|
Сергей-78
Постов: 6050
U |
Цитата WELL_85 ( ) Что характерно, ниже 6 вольт яркость уменьшается, а при увеличении напряжения питания с 6в до 12в яркость остаётся прежней ,может это дело в прошивке?. Дело в ключах. Не по той схеме сделали.
|
|
| Сообщение # 23
|
WELL_85
Постов: 639
Друзья |
|
|
| Сообщение # 24
|
ert_zeb
Постов: 99
ОК |
1. Для начала нужно поставить затеняющее стекло. Внешний свет будет проходить сквозь него внутрь, а затем обратно. В то время как от светодиодов только в одну сторону. Это повысит контрастность. 2. Нужно покрасить подложку в чёрный цвет. Это повысит контрастность. 3. Убрать микроконтроллер и подать постоянные уровни на управление. Тогда увидите на что вообще способны эти светодиоды на постоянном токе без динамической индикации.
ПС: Кстати забыл написать почему добавление питания ничего не даёт. У вас транзисторы включены эмиттерными повторителями. Причём все. Без дополнительных мер они не выдадут больше чем может микруха (+5 вольт).
|
|
| Сообщение # 25
|
Сергей-78
Постов: 6050
U |
Цитата ert_zeb ( ) Убрать микроконтроллер и подать постоянные уровни на управление. Тогда увидите на что вообще способны эти светодиоды на постоянном токе без динамической индикации С такими ключами ничего не изменится. Это повторители. Поступил управляющий сигнал 5 вольт с контролера на базу транзистора, с эмиттера сняли те же 5 вольт. Надо полностью переделывать схему ключей. Удобно использовать микросхемы ULN 2003 и ULN 2803. Либо каждый ключ собирать на двух транзисторах. Вечером нарисую схемы ключей, если надо. Или сами догадаетесь?
|
|
| Сообщение # 26
|
ert_zeb
Постов: 99
ОК |
Повторители повторителями, но ток-то они усиливают. Можно переделать на больший ток вместо напряжения.
При желании можно выбросить резисторы и понаставить диодов. И подпитать базы уровнем > 5 вольт. Можно и часть ключей нормальным образом включить. Или разной проводимости. И т.д.
Тут уж веское слово за автором. Я не берусь доказывать правильность какого-либо способа. Что же до прошивки... Наверное есть смысл самому что-нибудь написать. Хотя бы для тренировки.
|
|
| Сообщение # 27
|
WELL_85
Постов: 639
Друзья |
К сожалению сам не догадаюсь, да и прошивки писать не умею((( в наличии пару штук есть ULN2803
|
|
| Сообщение # 28
|
ert_zeb
Постов: 99
ОК |
Тогда ждите рисунка. А с диодами я так репу почесал вряд ли выйдет, нужны стабилитроны. Короче тухлятина.
Что же до прошивки, то поставьте какой-нибудь CodeWarrior или на чём там под Атмелы пишут и тренируйтесь. Сначала просто все сегменты зажечь. Константы в порты записав. Потом "бегущую единицу" (или ноль) добавить. И отфонарное постоянное число из массива.
Что-то вроде:
массив_сеток [] = {1, 2, 4, 8} массив_числа [] = {1, 2, 3, 4};
портX = массив_сеток [регистр_таймера & 3] портY = массив_числа [регистр_таймера & 3]
Потом счёт числа и копки.
Что-то вроде:
void schet_chisla (bait * chis/*, bait pred*/) { (*chis) ++; if (((*chis) & 0xf)==10) { *chis &= 0xf0; *chis += 0x10; } // if (*chis==pred) { *chis = 0; return (1); } else return(0); }
void schet_vrem () { /*sec++; if ((sec & 0xf)==10) { sec &= 0xf0; sec += 0x10; if ((sec & 0xf0)==0x60) { sec = 0; minuty++; if ((minuty & 0xf)==10) { minuty &= 0xf0; minuty += 0x10; if ((minuty & 0xf0)==0x60) { minuty = 0; chas++; if ((chas & 0xf)==10) { chas &= 0xf0; chas += 0x10; } else if (chas==0x24) chas = 0; } } } }*/
schet_chisla(&sec); if (sec==0x60) { schet_chisla(&minuty); sec = 0; } if (minuty==0x60) { schet_chisla(&chas); minuty = 0; } if (chas==0x24) chas = 0; }
Так по-маленьку и освоите.
|
|
| Сообщение # 29
|
Сергей-78
Постов: 6050
U |
WELL_85, Вот вам схема. Привязал все к нумерации меги 8 в вашей схеме. Проверьте на всякий случай, может где и ошибся.
|
|
| Сообщение # 30
|
WELL_85
Постов: 639
Друзья |
Если я правильно понял исходя из измерений, 4 транзистора, которые подают общий сигнал на цифру, можно оставить без изменений. А сигнал на сегменты усилить микросхемой uln2003. ????Добавлено (26.09.2016, 18:27) --------------------------------------------- Сергей-78, В моём случае, какие транзисторы подойдут? (пример: кт3102 и кт814 можно поставить?)
|
|