Часы-календарь-термометр (Mega8+DS1307+DS18B20+4LED)

Обсуждаем контроллеры компании Atmel.
Ответить
Электрический кот
Аватара пользователя
Сообщения: 1023
Зарегистрирован: Чт мар 04, 2010 13:48:56
Откуда: Недалеко от Тулы

Сообщение Nusik1975 »

Спасибо, Danko! То, что нужно. Скажите, а какие по умолчанию уровни на выходах МК на сегменты и на общие аноды? И нормально ли использование полевиков без ограничительных резисторов по затворам?
Реклама
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1287
Зарегистрирован: Пн окт 13, 2008 11:45:54
Откуда: РФ, Крым, г.Бахчисарай

Сообщение Danko »

Активные уровни (т.е. для зажигания) - лог."1" и для сегментов и для разрядов.

И если использовать тр.ключи в сегментах и разрядах никаких доп.настроек не нужно.
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
Контактная информация:
Реклама
Электрический кот
Аватара пользователя
Сообщения: 1023
Зарегистрирован: Чт мар 04, 2010 13:48:56
Откуда: Недалеко от Тулы

Сообщение Nusik1975 »

Огромное Вам спасибо! Буду повторять конструкцию!
Электрический кот
Аватара пользователя
Сообщения: 1023
Зарегистрирован: Чт мар 04, 2010 13:48:56
Откуда: Недалеко от Тулы

Сообщение Nusik1975 »

Для тех, кто желает собрать часы на индикаторах с общим катодом на больших индикаторах (по 4 светодиода на сегмент). вот проверенная в железе схема на полевичках. Затворы транзисторов через ограничительные резисторы напрямую подключаются к портам МК.

P.S. Резистор на 1 кОм лучше заменить на 10 кОм
Вложения
Ключи.png
(15.61 КБ) 1080 скачиваний
Последний раз редактировалось Nusik1975 Пт авг 19, 2011 02:05:55, всего редактировалось 1 раз.
Реклама
Эиком - электронные компоненты и радиодетали
Мучитель микросхем
Аватара пользователя
Сообщения: 415
Зарегистрирован: Пн фев 02, 2009 15:00:33

Сообщение kret_a_v »

Nusik1975 писал(а):Для тех, кто желает собрать часы на индикаторах с общим катодом на больших индикаторах (по 4 светодиода на сегмент). вот проверенная в железе схема на полевичках. Затворы транзисторов через ограничительные резисторы напрямую подключаются к портам МК.
интересно с ОА - высота цифры 101 мм, для такого проверенного не найдется?
Реклама
Электрический кот
Аватара пользователя
Сообщения: 1023
Зарегистрирован: Чт мар 04, 2010 13:48:56
Откуда: Недалеко от Тулы

Сообщение Nusik1975 »

Так для ОА и та схема, что на 1 странице отлично подходит. Только вычислить ток сегментов по максимуму, и подобрать транзистор по анодам. А по катодам стоит ULN, у нее ток около 500 мА. Думаю, у Вас не более 500 мА ток будет.
Реклама
Мучитель микросхем
Аватара пользователя
Сообщения: 415
Зарегистрирован: Пн фев 02, 2009 15:00:33

Сообщение kret_a_v »

Nusik1975 писал(а):Так для ОА и та схема, что на 1 странице отлично подходит. Только вычислить ток сегментов по максимуму, и подобрать транзистор по анодам. А по катодам стоит ULN, у нее ток около 500 мА. Думаю, у Вас не более 500 мА ток будет.
да не получается так ..... почему то .... то засвечиваются все сегменты то еле горят , уже и подстроичники впаивал , ни в какую...
и я не один.... с 101мм знаками
Электрический кот
Аватара пользователя
Сообщения: 1023
Зарегистрирован: Чт мар 04, 2010 13:48:56
Откуда: Недалеко от Тулы

Сообщение Nusik1975 »

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

Если на биполярниках, то примерно так
Вложения
2011-08-01_182545.png
(6.31 КБ) 910 скачиваний
Открыл глаза
Аватара пользователя
Сообщения: 59
Зарегистрирован: Чт апр 22, 2010 08:59:25
Откуда: г. Бавлы РТ РФ

Сообщение Azamat »

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
Мучитель микросхем
Аватара пользователя
Сообщения: 415
Зарегистрирован: Пн фев 02, 2009 15:00:33

Сообщение kret_a_v »

Azamat какого размера у Вас индикаторы? (маркировка)
выложите пож. свой проект ,
интересует сопряжение индикаторов и номиналы резисторов

заранее благодарен :beer:
Открыл глаза
Аватара пользователя
Сообщения: 59
Зарегистрирован: Чт апр 22, 2010 08:59:25
Откуда: г. Бавлы РТ РФ

Сообщение 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 писал(а):
Azamat писал(а):12 ровно
если яркости мало резисторы можно уменьшить до 51 и 180ом соответственно.
тоже можно, чуть ярче....
Вложения
Danko_clock_rev_Azamat.lay
(102.95 КБ) 644 скачивания
Мучитель микросхем
Аватара пользователя
Сообщения: 415
Зарегистрирован: Пн фев 02, 2009 15:00:33

Сообщение kret_a_v »

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ом соответственно.
тоже можно, чуть ярче....
:beer: :beer: :beer:
супер то что нужно!!!
спасибо огромное
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1287
Зарегистрирован: Пн окт 13, 2008 11:45:54
Откуда: РФ, Крым, г.Бахчисарай

Сообщение Danko »

В версии от 06 июля 2011 (та которая была на 71 странице) есть ошибка в программе:
при индикации положительной корректировки не удалялся символ из первого разряда (в отрицательной там знак минус) и по сему вместо корректировки 0,1 на экране было 10,1 если корректировку смотреть с 10 до 19 часов и 20,1 соответственно вечером.

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

Все исправлено. Программа выросла на 2 байта :) .

Спасибо форумчанам за терпеливость.

Ваш Danko.
Вложения перезалил.
Смотреть на 1 стр.
12-08-2011
Последний раз редактировалось Danko Пт авг 12, 2011 11:50:46, всего редактировалось 1 раз.
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
Контактная информация:
cAc
Открыл глаза
Аватара пользователя
Сообщения: 46
Зарегистрирован: Сб июн 27, 2009 09:50:48
Откуда: Украина, Каменец-Подольский

Сообщение cAc »

Только что попробовал увидеть эту ошибку, (у меня именно эта версия), ничего такого не увидел. Установил максимально +5,5 потом вернул на ноль и поставил -5,5. Я не увидел лишнего разряда
Контактная информация:
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1287
Зарегистрирован: Пн окт 13, 2008 11:45:54
Откуда: РФ, Крым, г.Бахчисарай

Сообщение Danko »

устанавливаем корректировку в 0,0 выходим.
опять заходим и устанавливаем +0,1 и выходим.
затем заходим и ...
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
Контактная информация:
cAc
Открыл глаза
Аватара пользователя
Сообщения: 46
Зарегистрирован: Сб июн 27, 2009 09:50:48
Откуда: Украина, Каменец-Подольский

Сообщение cAc »

Danko писал(а):устанавливаем корректировку в 0,0 выходим.
опять заходим и устанавливаем +0,1 и выходим.
затем заходим и ...
... и действительно есть лишняя еденичка :) , понял, нужно будет перепрошить.
Но это легко устраняется, и как я понял это только индикация которая не меняет ничего в коррекции?
Контактная информация:
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1287
Зарегистрирован: Пн окт 13, 2008 11:45:54
Откуда: РФ, Крым, г.Бахчисарай

Сообщение Danko »

да.
глюк индикации, а не корректировки.
не очищается первый разряд индикатора при положительной корректировке.
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
Контактная информация:
cAc
Открыл глаза
Аватара пользователя
Сообщения: 46
Зарегистрирован: Сб июн 27, 2009 09:50:48
Откуда: Украина, Каменец-Подольский

Сообщение cAc »

Я хотел спросить еще, что делает функция bcd2bin() ? Она находится в составе самого CodeVision?
Как я понял, она преобразовывает число из десятичной формы в двоичную?
Т.е. например число 5 будет представлено как 0101
Контактная информация:
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1287
Зарегистрирован: Пн окт 13, 2008 11:45:54
Откуда: РФ, Крым, г.Бахчисарай

Сообщение Danko »

не из десятичной, а из двоично-десятичной bcd2bin.

И 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. Рассказ нечаянного революционера"
Контактная информация:
cAc
Открыл глаза
Аватара пользователя
Сообщения: 46
Зарегистрирован: Сб июн 27, 2009 09:50:48
Откуда: Украина, Каменец-Подольский

Сообщение cAc »

Большое спасибо за такое подробное объяснение!
Тут сразу еще вопрос появился. Во втором случае:

ch_2 = ch & 0x0F; // ch_2 - единицы числа

я думаю, что также можно и десятки числа получить

ch_1 = ch & 0xF0; // ch_1 - десятки числа

... или я тут ошибся? Это я для того что-бы не делать сдвиг.
Контактная информация:
Ответить

Вернуться в «AVR»