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

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
xorkrus
Нашел транзистор. Понюхал.
Сообщения: 151
Зарегистрирован: Сб ноя 19, 2011 20:13:47
Откуда: Тамбов
Контактная информация:

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

Сообщение xorkrus »

Про BOD завтра скажу. На работе шил. А DSка... ну... у меня тоже на неё подозрения падали уже. Ибо либо батарейки плохие ставлю (что вполне возможно) либо она сжирает все нафик...
К тому же у меня M41T56 :)
Демократии нет и не будет!
Государство - это я!
Реклама
Аватара пользователя
Ant-RG
Вымогатель припоя
Сообщения: 541
Зарегистрирован: Ср май 05, 2010 20:47:56
Откуда: Украина
Контактная информация:

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

Сообщение Ant-RG »

Так же можете прилепить керамику 0,1 мкФ как можно поближе к дске, мне помогало, и бод лучше на 4V ставить.
За электролиты Вы точно так и неотписались, после кренки не больше 47мкФ
I'am a Rock N' Roll-Aholic
Реклама
Аватара пользователя
Генеральный
Открыл глаза
Сообщения: 61
Зарегистрирован: Пт мар 09, 2012 20:36:27
Откуда: СССР

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

Сообщение Генеральный »

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

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

Сообщение Danko »

Сегменты между собой менять можно.

Файл term_mega8_88.hстроки

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

#define A   1
#define B   4
#define C  16
#define D  64 
#define E 128
#define F   2
#define G   8
ну и если запятая переедет на другой разряд то файл main_mega8_88.c
строки

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

      if (led_s) { PORTB.5=1; }
      else       { PORTB.5=0; }


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

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

   if (led_r) { PORTD |= (1<<cur_dig);  }  // засветить нужный разряд (бит знакоместа - on)
   else       { PORTD &= ~(1<<cur_dig); }
замените на что то подобное, где можно биты между собой поменять.

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

   switch (cur_dig) { 
      case 0:
         PORTD.0 = 1; break;
      case 1:
         PORTD.1 = 1; break;
      case 2:
         PORTD.2 = 1; break;
      case 3:
         PORTD.3 = 1; break;
   }


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

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

Сообщение Nusik1975 »

Прошу помощи автора часов.
Применил семисегментник с общим анодом, питание разделительного двоеточия идет на 9 и 3 ножки (это диоды D5 и D6):
Изображение

Ключи сделал вот такие:

Изображение
При мигании разделительного двоеточия, когда оно загорается, теряется яркость 2 разряда индикатора. После того, как двоеточие потухнет, и 2 разряд нормально горит, как и остальные. Я думаю, что это происходит из-за недостатка питания 2 разряда при зажигании двоеточия. На видео немного заметно мигание 2 разряда.
https://www.youtube.com/watch?v=OVEkI9tzt8I

Посоветуйте, как избавиться от такого дефекта. Спасибо.

P.S. Питание для индикатора наверняка нужно было взять ДО стабилизатора. Но часы будут стоять в машине, а там бортовое напряжение непостоянно, поэтому и запитал после 7805.
Думаю поставить после стабилизатора конденсатор побольше емкости, может, хоть это поможет...
Вложения
2013-01-18_010553.gif
Ключи
(12.54 КБ) 3284 скачивания
2013-01-18_001506.gif
Индикатор
(21.71 КБ) 3273 скачивания
Реклама
Аватара пользователя
Martin76
Друг Кота
Сообщения: 20172
Зарегистрирован: Пт фев 04, 2011 17:57:51
Откуда: Рыбинск

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

Сообщение Martin76 »

Вопрос : зачем в коллекторы ключей на аноды включены резисторы на 470 Ом? Какую они роль выполняют? Нужны только резисторы в сегментах. Да и сегменты у такого индикатора можно напрямую к меге подключать, видно, что это что то типа 0,28" индикатор. 8 транзисторов, 16 резисторов- явный переизбыток деталей для него :kill:
Nusik1975 писал(а):Посоветуйте, как избавиться от такого дефекта. Спасибо.
Избавиться соответственно можно, убрав ненужные резисторы из цепей анодов индикатора, возможно придется подобрать резисторы в сегментах, т к яркость заметно возрастет.

Ну и к 12 В уж точно нельзя с таким подключением транзисторов, ключами, напрямую включать, если с нпн повторителями - то можно.
Реклама
Аватара пользователя
xorkrus
Нашел транзистор. Понюхал.
Сообщения: 151
Зарегистрирован: Сб ноя 19, 2011 20:13:47
Откуда: Тамбов
Контактная информация:

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

Сообщение xorkrus »

Заменил RTC. Поставил обычную DSку. М41... сжирала батарею на раз. Перешил мегу. BOD активирован не был. Активировал на 4В. Пока С000 не наблюдается. Керамика стоит и у дски у ног и у атмеги. электролиты - все по схеме.
Демократии нет и не будет!
Государство - это я!
Аватара пользователя
Nusik1975
Электрический кот
Сообщения: 1023
Зарегистрирован: Чт мар 04, 2010 13:48:56
Откуда: Недалеко от Тулы

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

Сообщение Nusik1975 »

To Martin76
Ну вроде привык в схемах максимально разгружать процессор. А резисторы по разрядам я поставил аналогично схеме, найденной на каком-то сайте.Хорошо, когда знаешь токи через сегменты. А если индикатор китайский и, слава богу, хоть схему подключения нашел на просторах интернета? Я вот даже не знаю, какой ток течет через сегменты. Поэтому и подстраховываюсь. На оригинальность не претендую :)
Это у меня второй экземпляр часов, другие успешно трудятся в детской; они собраны на больших индикаторах, которые запитаны от 14 вольт через полевички с повторителями. Там нет такого мигания.
Martin76, спасибо за совет, удалю эти ненужные резисторы и попробую все же рассчитать токи через сегменты. Придется немного увеличить номиналы резисторов по сегментам.
Аватара пользователя
Генеральный
Открыл глаза
Сообщения: 61
Зарегистрирован: Пт мар 09, 2012 20:36:27
Откуда: СССР

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

Сообщение Генеральный »

Добрый день !!
Danko, спасибо за быстрый ответ, главное, что сегменты просто меняются, а с разрядами гемороиться не буду (их всего 4) :wink: . Ещё подскажите, как сделать, чтобы активным для сегментов был gnd на выходах МК (опять таки с прицелом на ИВ-22)???
СССР, жив !!!!
Аватара пользователя
Danko
Сверлит текстолит когтями
Сообщения: 1287
Зарегистрирован: Пн окт 13, 2008 11:45:54
Откуда: РФ, Крым, г.Бахчисарай
Контактная информация:

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

Сообщение Danko »

Очень просто:
При включении нужно удержать кнопку "-"

А вот еще варианты выбора
Ряд настроек доступ к которым осуществляется удержанием одной из кнопок при включении питания:
Выбор типа индикатора делается удержанием одной из четырех кнопок ("+", "-", "сек", "уст").
Если быть более точным то не выбор индикатора, а выбор активного 0 или 1 для зажигания сегмента и выбор активного 0 или 1 для зажигания разряда.
"+" - сегмент "0", разряд "0"
"-" - сегмент "0", разряд "1"
"сек" - сегмент "1", разряд "0"
"уст" - сегмент "1", разряд "1"
----------
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
Аватара пользователя
Генеральный
Открыл глаза
Сообщения: 61
Зарегистрирован: Пт мар 09, 2012 20:36:27
Откуда: СССР

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

Сообщение Генеральный »

Спасибо! Сейчас пытался скомпилировать HEX, по исходникам из первого архива, первого поста - ничего не вышло - winAVR 20100110 выдал кучу ошибок ??!! А Вы каким компилятором пользовались ??
СССР, жив !!!!
Аватара пользователя
Danko
Сверлит текстолит когтями
Сообщения: 1287
Зарегистрирован: Пн окт 13, 2008 11:45:54
Откуда: РФ, Крым, г.Бахчисарай
Контактная информация:

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

Сообщение Danko »

Я даже не знаю вообще прилично самого себя цитировать
файл main_mega8_88.c

самая первая строка

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

/*******************************************************************************************
CodeVisionAVR V2.05.0 Professional
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
Аватара пользователя
kret_a_v
Мучитель микросхем
Сообщения: 415
Зарегистрирован: Пн фев 02, 2009 15:00:33

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

Сообщение kret_a_v »

спасибо огромное ув. Ant-RG за подсказку и помощь в подключении мощных индикаторов

перепрошивка не помогла - датчики определяются. но вместо температуры показывает дату :( по ходу мега глючная

может кому пригодится - схема и платка в протеусе

Выбор типа индикатора делается удержанием одной из четырех кнопок ("+", "-", "сек", "уст").
выбор активного 0 или 1 для зажигания сегмента и выбор активного 0 или 1 для зажигания разряда.
"+" - сегмент "0", разряд "0"
"-" - сегмент "0", разряд "1"
"сек" - сегмент "1", разряд "0"
"уст" - сегмент "1", разряд "1" в моем случае
Вложения
буфер индикатора.rar
схема и плата в протеусе 7,10
(20.74 КБ) 294 скачивания
Аватара пользователя
xorkrus
Нашел транзистор. Понюхал.
Сообщения: 151
Зарегистрирован: Сб ноя 19, 2011 20:13:47
Откуда: Тамбов
Контактная информация:

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

Сообщение xorkrus »

kret_a_v писал(а):перепрошивка не помогла - датчики определяются. но вместо температуры показывает дату :( по ходу мега глючная

У меня так работает датчик DS1820 (тот, который длинный). Т.е. он типа определился, но вместо температуры - дата. Поставьте другой датчик.
Демократии нет и не будет!
Государство - это я!
Аватара пользователя
kret_a_v
Мучитель микросхем
Сообщения: 415
Зарегистрирован: Пн фев 02, 2009 15:00:33

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

Сообщение kret_a_v »

спасибо xorkrus за подсказку :beer:
ставил, изменений ни каких (у меня их 6 штук - все по одинаковому) :(
все же думаю что мега, т.к. шьется через раз....
сначала полное стирание потом только может записаться прошивка
и то через раз
Аватара пользователя
kret_a_v
Мучитель микросхем
Сообщения: 415
Зарегистрирован: Пн фев 02, 2009 15:00:33

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

Сообщение kret_a_v »

Nusik1975 писал(а):Прошу помощи автора часов.
Посоветуйте, как избавиться от такого дефекта. Спасибо.

P.S. Питание для индикатора наверняка нужно было взять ДО стабилизатора. Но часы будут стоять в машине, а там бортовое напряжение непостоянно, поэтому и запитал после 7805.
Думаю поставить после стабилизатора конденсатор побольше емкости, может, хоть это поможет...

попробуйте так сделать , я долго мучился с питанием больших на ОА
поборол так
Вложения
mega8 big led-111.lay
(169.79 КБ) 693 скачивания
Аватара пользователя
Martin76
Друг Кота
Сообщения: 20172
Зарегистрирован: Пт фев 04, 2011 17:57:51
Откуда: Рыбинск

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

Сообщение Martin76 »

Не нужно там ничего городить для таких маленьких индикаторов, в принципе, до 0,8"( 1 светодиод), да и для 1-1,5"( 2 диода) для большинства случаев тоже, хватит подключения сегментов напрямую к меге, ОА или ОК - через ключи к +5В или земле. На ULN падает порядка 1-1,5В поэтому с ней будет на грани для 2х светодиодов. Индикаторы с числом светодиодов на сегмент больше двух ( 1.8" и более) - другое дело, там без дополнительных ключей и повышенного напряжения питания не обойтись.
Nusik1975 писал(а):Ну вроде привык в схемах максимально разгружать процессор.

Если не превышать ток через 1 выход порта AVR 20-25мА, весь порт 200мА, то ничего страшного не будет, даже заметно нагреваться она не будет. AVR - не древние микроконтроллеры, как КР580 с нагрузочной способностью 1 ТТЛ вход и вполне рассчитаны на нагрузку, такую как светодиодный индикатор.
Nusik1975 писал(а):Хорошо, когда знаешь токи через сегменты. А если индикатор китайский и, слава богу, хоть схему подключения нашел на просторах интернета?
У практически всех не суперярких светодиодов красного, желтого и зеленого цвета падение напряжения составляет 1,8 -2,2В, синие - около 3, белые 3-3,7В. А далее исходя из закона Ома все считается. I=(Uпит - UledxN)/ R , где N - кол-во светодиодов в сегменте, средний для n разрядов еще в n раз меньше. Например: (5-2x1)/100=0,03/4=0,0075, т е 7,5мА. Реальный ток будет меньше из за падения напряжения на ключах. Большинство современных индикаторов при таком токе будут светиться ярко или очень ярко.
Аватара пользователя
Nusik1975
Электрический кот
Сообщения: 1023
Зарегистрирован: Чт мар 04, 2010 13:48:56
Откуда: Недалеко от Тулы

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

Сообщение Nusik1975 »

Martin76,
благодарю Вас за ликбез!
Решилась-таки проблема. Убрал из схемы ключи по катодам, резисторы по коллекторам ключей анодов, оставил только резисторы на 1 кОм по катодам. Все работает четко!
Да я еще нагородил ключей, потому как забыл, что при первом включении можно управляющие 0 или 1 выбрать :)
Изображение

Danko еще раз спасибо за удачную конструкцию! :beer:
Вложения
2013-01-19_174739.gif
(11.05 КБ) 2742 скачивания
Аватара пользователя
kret_a_v
Мучитель микросхем
Сообщения: 415
Зарегистрирован: Пн фев 02, 2009 15:00:33

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

Сообщение kret_a_v »

////вот что за ерунда
собрал часы уже в дип корпусах
история та же .....
датчики определяются. но вместо температуры показывает дату
в чем трабл . ни как не разберу
прош-а с 1й стр. плата приложена (1я фкладка) и индикаторы 9и вольтовые (последняя вкладка)
перепрошивал, датчики менял , меги тоже менял и перепрошивал
ПЛИЗ, что еще может быть ? :shock:
п.с.
трассу от датчика прозвонил на предмет соплей до самой меги - все норма
:dont_know:
Вложения
clock-7seg-v4.lay
(736.48 КБ) 627 скачиваний
Аватара пользователя
Ant-RG
Вымогатель припоя
Сообщения: 541
Зарегистрирован: Ср май 05, 2010 20:47:56
Откуда: Украина
Контактная информация:

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

Сообщение Ant-RG »

Fuse точно правильно стоят? На плате с подкл дотчика вроде поядок, но лучше его питать через RC цепочку 50-100 Ом 4,7-10 мкФ, но и так должен работать
I'am a Rock N' Roll-Aholic
Ответить

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