Часы-календарь-термометр (Mega8+DS1307+DS18B20+4LED)
Спасибо, Danko! То, что нужно. Скажите, а какие по умолчанию уровни на выходах МК на сегменты и на общие аноды? И нормально ли использование полевиков без ограничительных резисторов по затворам?
- Реклама
Активные уровни (т.е. для зажигания) - лог."1" и для сегментов и для разрядов.
И если использовать тр.ключи в сегментах и разрядах никаких доп.настроек не нужно.
И если использовать тр.ключи в сегментах и разрядах никаких доп.настроек не нужно.
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
Огромное Вам спасибо! Буду повторять конструкцию!
Для тех, кто желает собрать часы на индикаторах с общим катодом на больших индикаторах (по 4 светодиода на сегмент). вот проверенная в железе схема на полевичках. Затворы транзисторов через ограничительные резисторы напрямую подключаются к портам МК.
P.S. Резистор на 1 кОм лучше заменить на 10 кОм
P.S. Резистор на 1 кОм лучше заменить на 10 кОм
- Вложения
-
- Ключи.png
- (15.61 КБ) 1080 скачиваний
Последний раз редактировалось Nusik1975 Пт авг 19, 2011 02:05:55, всего редактировалось 1 раз.
- Сообщения: 415
- Зарегистрирован: Пн фев 02, 2009 15:00:33
интересно с ОА - высота цифры 101 мм, для такого проверенного не найдется?Nusik1975 писал(а):Для тех, кто желает собрать часы на индикаторах с общим катодом на больших индикаторах (по 4 светодиода на сегмент). вот проверенная в железе схема на полевичках. Затворы транзисторов через ограничительные резисторы напрямую подключаются к портам МК.
- Реклама
Так для ОА и та схема, что на 1 странице отлично подходит. Только вычислить ток сегментов по максимуму, и подобрать транзистор по анодам. А по катодам стоит ULN, у нее ток около 500 мА. Думаю, у Вас не более 500 мА ток будет.
- Сообщения: 415
- Зарегистрирован: Пн фев 02, 2009 15:00:33
да не получается так ..... почему то .... то засвечиваются все сегменты то еле горят , уже и подстроичники впаивал , ни в какую...Nusik1975 писал(а):Так для ОА и та схема, что на 1 странице отлично подходит. Только вычислить ток сегментов по максимуму, и подобрать транзистор по анодам. А по катодам стоит ULN, у нее ток около 500 мА. Думаю, у Вас не более 500 мА ток будет.
и я не один.... с 101мм знаками
Значит, транзистор полностью не закрывается, и нужно применять составной. Я сам до этого делал часы на PIC, намучился с этими индикаторами. Применил составной транзистор. Примените лучше полевичок аналогично ключам, которые я нарисовал, верхнюю часть. Должно все получиться.
Если на биполярниках, то примерно так
Если на биполярниках, то примерно так
- Вложения
-
- 2011-08-01_182545.png
- (6.31 КБ) 910 скачиваний
http://radiokot.ru/forum/viewtopic.php?p=919395#p919395
Еще раз благодарность Danko за хорошую схему, запустилась сразу после прошивки.
Благадарность Gordon Shumway за разводку Atmega8au, часть обвязки из его LAY...

http://xmages.net/storage/10/1/0/4/a/up ... 4f8484.jpg

http://xmages.net/storage/10/1/0/2/9/up ... fc6dbc.jpg
Со вспышкой хрен снимешь нормально, положил кусок красного стекла
Без вспышки:

http://xmages.net/storage/10/1/0/1/6/up ... e0d1a7.jpg
Еще раз благодарность Danko за хорошую схему, запустилась сразу после прошивки.
Благадарность Gordon Shumway за разводку Atmega8au, часть обвязки из его LAY...
http://xmages.net/storage/10/1/0/4/a/up ... 4f8484.jpg
http://xmages.net/storage/10/1/0/2/9/up ... fc6dbc.jpg
Со вспышкой хрен снимешь нормально, положил кусок красного стекла
Без вспышки:
http://xmages.net/storage/10/1/0/1/6/up ... e0d1a7.jpg
- Сообщения: 415
- Зарегистрирован: Пн фев 02, 2009 15:00:33
Azamat какого размера у Вас индикаторы? (маркировка)
выложите пож. свой проект ,
интересует сопряжение индикаторов и номиналы резисторов
заранее благодарен
выложите пож. свой проект ,
интересует сопряжение индикаторов и номиналы резисторов
заранее благодарен
Часы не мои, меня ketchoop66 попросил собрать..
Дисплеи GNS-40011AS, http://www.radiodetali.com/td/displ/gns40011.htm, 101 мм.
Плату ловите, транзисторы на сегменты КТ315, КТ626а, на катодах КТ972(просто такие были в наличии)
Резисторы: база КТ315 4,7 к, КТ626: на базе 8,2к, с базы на +12V 3,3 к, КТ972 - на базу, база-эмиттер - 4,7 к.
DS1307 в DIP, просто у меня такой был, емкость на питании 2200 мкф, 7805 со стороны дорожек, остальное все стандартно

http://xmages.net/storage/10/1/0/2/2/up ... fd44e2.jpg
Резистор сегмент 100 Ом., точка 470 Ом. при питании 12 V.
Дисплеи GNS-40011AS, http://www.radiodetali.com/td/displ/gns40011.htm, 101 мм.
Плату ловите, транзисторы на сегменты КТ315, КТ626а, на катодах КТ972(просто такие были в наличии)
Резисторы: база КТ315 4,7 к, КТ626: на базе 8,2к, с базы на +12V 3,3 к, КТ972 - на базу, база-эмиттер - 4,7 к.
DS1307 в DIP, просто у меня такой был, емкость на питании 2200 мкф, 7805 со стороны дорожек, остальное все стандартно
http://xmages.net/storage/10/1/0/2/2/up ... fd44e2.jpg
Резистор сегмент 100 Ом., точка 470 Ом. при питании 12 V.
тоже можно, чуть ярче....O-LED писал(а):если яркости мало резисторы можно уменьшить до 51 и 180ом соответственно.Azamat писал(а):12 ровно
- Вложения
-
- Danko_clock_rev_Azamat.lay
- (102.95 КБ) 645 скачиваний
- Сообщения: 415
- Зарегистрирован: Пн фев 02, 2009 15:00:33
Azamat писал(а):Часы не мои, меня ketchoop66 попросил собрать..
Дисплеи GNS-40011AS, http://www.radiodetali.com/td/displ/gns40011.htm, 101 мм.
Плату ловите, транзисторы на сегменты КТ315, КТ626а, на катодах КТ972(просто такие были в наличии)
Резисторы: база КТ315 4,7 к, КТ626: на базе 8,2к, с базы на +12V 3,3 к, КТ972 - на базу, база-эмиттер - 4,7 к.
DS1307 в DIP, просто у меня такой был, емкость на питании 2200 мкф, 7805 со стороны дорожек, остальное все стандартно
http://xmages.net/storage/10/1/0/2/2/up ... fd44e2.jpg
Резистор сегмент 100 Ом., точка 470 Ом. при питании 12 V.тоже можно, чуть ярче....O-LED писал(а): если яркости мало резисторы можно уменьшить до 51 и 180ом соответственно.
супер то что нужно!!!
спасибо огромное
В версии от 06 июля 2011 (та которая была на 71 странице) есть ошибка в программе:
при индикации положительной корректировки не удалялся символ из первого разряда (в отрицательной там знак минус) и по сему вместо корректировки 0,1 на экране было 10,1 если корректировку смотреть с 10 до 19 часов и 20,1 соответственно вечером.
Программы пишутся мной чаще всего за полночь и по сему возникают такие ошибки.
Все исправлено. Программа выросла на 2 байта
.
Спасибо форумчанам за терпеливость.
Ваш Danko.
Вложения перезалил.
Смотреть на 1 стр.
12-08-2011
при индикации положительной корректировки не удалялся символ из первого разряда (в отрицательной там знак минус) и по сему вместо корректировки 0,1 на экране было 10,1 если корректировку смотреть с 10 до 19 часов и 20,1 соответственно вечером.
Программы пишутся мной чаще всего за полночь и по сему возникают такие ошибки.
Все исправлено. Программа выросла на 2 байта
Спасибо форумчанам за терпеливость.
Ваш Danko.
Вложения перезалил.
Смотреть на 1 стр.
12-08-2011
Последний раз редактировалось Danko Пт авг 12, 2011 11:50:46, всего редактировалось 1 раз.
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
Только что попробовал увидеть эту ошибку, (у меня именно эта версия), ничего такого не увидел. Установил максимально +5,5 потом вернул на ноль и поставил -5,5. Я не увидел лишнего разряда
устанавливаем корректировку в 0,0 выходим.
опять заходим и устанавливаем +0,1 и выходим.
затем заходим и ...
опять заходим и устанавливаем +0,1 и выходим.
затем заходим и ...
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
... и действительно есть лишняя еденичкаDanko писал(а):устанавливаем корректировку в 0,0 выходим.
опять заходим и устанавливаем +0,1 и выходим.
затем заходим и ...
Но это легко устраняется, и как я понял это только индикация которая не меняет ничего в коррекции?
да.
глюк индикации, а не корректировки.
не очищается первый разряд индикатора при положительной корректировке.
глюк индикации, а не корректировки.
не очищается первый разряд индикатора при положительной корректировке.
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
Я хотел спросить еще, что делает функция bcd2bin() ? Она находится в составе самого CodeVision?
Как я понял, она преобразовывает число из десятичной формы в двоичную?
Т.е. например число 5 будет представлено как 0101
Как я понял, она преобразовывает число из десятичной формы в двоичную?
Т.е. например число 5 будет представлено как 0101
не из десятичной, а из двоично-десятичной bcd2bin.
И bin2bcd соответственно обратно.
т.е. bin2bcd(25) вернет 0x25
очень удобно для ухода от деления на 10 и умножения на 10.
Я применяю когда нужно вывести на экран десятки и единицы числа.
классический пример
если в программе нужно всего один раз произвести выделение десятков и единиц то лучше использовать первый пример, а если в программе очень часто то второй лучше т.к. в первом каждый день раз будет производится деление, а во втором будет вызываться функция и это экономит память МК.
И bin2bcd соответственно обратно.
т.е. bin2bcd(25) вернет 0x25
очень удобно для ухода от деления на 10 и умножения на 10.
Я применяю когда нужно вывести на экран десятки и единицы числа.
классический пример
Код: Выделить всё
// tmp - двоичное число
ch_1 = tmp /10; // ch_1 - десятки числа
ch_2 = tmp % 10; // ch_2 - единицы числаКод: Выделить всё
ch = bin2bcd(tmp);
ch_1 = ch >> 4; // ch_1 - десятки числа
ch_2 = ch & 0x0F; // ch_2 - единицы числаПервое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
Большое спасибо за такое подробное объяснение!
Тут сразу еще вопрос появился. Во втором случае:
ch_2 = ch & 0x0F; // ch_2 - единицы числа
я думаю, что также можно и десятки числа получить
ch_1 = ch & 0xF0; // ch_1 - десятки числа
... или я тут ошибся? Это я для того что-бы не делать сдвиг.
Тут сразу еще вопрос появился. Во втором случае:
ch_2 = ch & 0x0F; // ch_2 - единицы числа
я думаю, что также можно и десятки числа получить
ch_1 = ch & 0xF0; // ch_1 - десятки числа
... или я тут ошибся? Это я для того что-бы не делать сдвиг.


