Вторник, 23.05.2017, 09:54    
Главная » Статьи » Часы

8. Часы с двумя DS18x20 с маленькими индикаторами

По просьбе трудящихся была сделана модификация часов из первой статьи.

 
Схема (два индикатора - просто для проверки ОА/ОК в протеусе, в схеме один индикатор ОА или ОК)
 
 
Схема с ОА
Часы-термометр с двумя датчиками DS18B20
 
Схема с ОК
 
Часы-термометр с двумя датчиками DS18B20
 
Меню.
 
1 - будильник
2 - часы/минуты 
3 - минуты/секунды

4 - день недели
5 -
число/месяц (29 февраля не отображает)
6 - время отображения часов (сек)
7 - время отображения дня (сек)
8 - время отображения температуры (сек)
9 - коррекция +/-12 секунд/сутки с шагом 0,1 сек
10 - яркость ночью
11 - время ночи (пониженной яркости)
12 - тон сигнала будильника (условно)
13 - настройка автоповтора будильника
14 - термометр 1 (HET/DS18S20/DS18B20)
15 - термометр 2 (HET/DS18S20/DS18B20)
 
С датчиком DS18S20 дискретность 0,5 ⁰С (-55..+99 ⁰С).
С датчиком DS18B20 дискретность 0,1 ⁰С (-55..+99 ⁰С).

Для прошивки v1.9 - вместо переключателя ЯркостьMin
можно поставить фототранзистор L-3DP3C, резистор R8 10кОм увеличить до 100*кОм. Тем самым получим автоматическое изменение яркости при изменении внешнего освещения (2 уровня яркости).
 
Работа датчиков температуры.   
     
- измерение температуры 1 и 2 осуществляется при переходе отображения от "Температуры 1" к "Температуре 2" и от "Температуры 2" к "Часам" (это уменьшает эффект подмигивания при опросе датчиков температуры).
 
Программирование битов EEPROM.

В связи с нехваткой памяти контроллера придется программировать EEPROM.
При программировании в EEPROM необходимо прописать 
(прошивка v1.7):
 
( 02 02 F0 00 14 14 XX ZZ WW KK MM LL ) дальше по умолчанию FF
Пояснения:
02: 00 - термометра 1 нет, 01 - DS18S20, 02 - DS18B20 (начальная установка, меняется в меню).
02: 00 - термометра 2 нет, 01 - DS18S20, 02 - DS18B20 (начальная установка, меняется в меню).
F0: значение коррекции = 240 (начальная установка, меняется в меню).
00: значение коррекции = 0   (начальная установка, меняется в меню).
14: яркость ночи 20 (начальная установка, меняется в меню).
14: тон звука 20 (начальная установка, меняется в меню).
XX: 00 - 4.000МГц, 01 - 4.096МГц (в меню нельзя поменять).
ZZ:   отображать знак градуса? 00 - нет, 01 - да (в меню нельзя поменять)
WW:  режим звука 00 - постоянно, 01 - один импульс, 02 - через секунду,03 - пищит с частотой TON (в меню нельзя поменять)
KK:    индикаторы с общим катодом? 00 - нет, 01 - да (в меню нельзя поменять)
MM:  что высвечиваем перед температурой в доме? (см ниже)
LL:    что высвечиваем перед температурой на улице? (см ниже)
 
Символы перед температурой
0A - "пробел"  0B - "-"   0C - "градус"    0D - "А"     OE - "C"
OF - "d"          10 - "E"   11 - "F"           12 - "H"     13 - "L"
14 - "t"           15 - "Г"   16 - "b"           17 - "П"     18 - "Р"
19 - "Ц"          1A - "Y"   1B - "o"           1C - "r"     1D - "U"
 

Фото от Ham
 
 
 
 
 
 
Часы-термометр с двумя датчиками DS18B20

 

Кварц с частотой 4.000 МГц лучше не использовать, ход часов будет не точный, это связано с особенностью TMR0, используемого для формирования временных интервалов часов (относится к версиям ниже v1.9).
 
 
Обновление 29.07.2012
Изменения:
- переработан алгоритм контроля напряжения сети
- переработан алгоритм опроса датчика температуры (маскирует мигание индикаторов)
- "минус" при отображении температуры теперь стоит перед цифрами, а не только в левом знакоместе
- Обращение к датчику будет происходить только во время переключения индикации из режима
  "Температура1" в режим "Температура2" и из режима "Температура2" в режим "Время"
- возможность выбора отображения знака градуса
- можно выбрать буквы из знакогенератора перед температурой
- коррекция +/-24,0 секунды в сутки, шаг 0,1 секунда (каждые 6 минут по 0,1 секунде, до 240 раз в сутки)
- запись в EEPROM через 20 секунд после изменения параметра, который надо записывать
- будильник пищит 1 минуту, потом через минуту еще 2 минуты. (по другому я его утром просыпаю :D )
Прошивка, исходник v1.6 - (описание в архиве, читать перед прошивкой в контроллер)
 
Обновление 29.07.2012
Обновление 24.08.2012 - перезалил прошивку (улучшена точность хода с кварцем 4.000МГц)
Изменения:
- будильник пищит 1 минуту, потом автоповторы через каждые 5 минут (период настраивается в меню до 60 минут)
- звук отключается коротким нажатием на минус, будильник полностью отключается длинным нажатием
Прошивка, исходник v1.7 - (описание в архиве, читать перед прошивкой в контроллер)
 
Обновление 14.06.2014
Обновление 16.06.2014 (исправлено отображение и звук в меню "Тон")
Изменения:
- добавлена настройка числа и месяца ("Пont" "Число.Месяц")
- при нажатии кнопки "Меню" отображается "Число.День" на 1 секунду
- при нажатии кнопки "Плюс" отображается "Время будильника" на 1 секунду
- добавлено отображение температуры без десятых долей и со знаком градуса (настраивается в EEPROM)
Прошивка, исходник v1.8 - (описание в архиве, читать перед прошивкой в контроллер)

Обновление 18.05.2015
Изменения:
- полностью устранен неконтролируемый уход времени при использовании кварца 4,000 МГц. TMR0 не предустанавливается.
- начало и конец ночи настраиваются от 0 до 23 часов. При равенстве значений, яркость остается максимальной.
- переделан ШИМ яркости (прерывание).
- диапазон коррекции хода +/-12 секунд в сутки с шагом 0,1.
- добавлена яркость от внешнего освещения с фототранзистором L-3DP3C на 4 ноге (дискретная яркость).
- оптимизирована программа, обрезан знакогенератор, меню перенесено в EEPROM
Прошивка, исходник v1.9 - (описание в архиве, читать перед прошивкой в контроллер)
 
Модификация 1 от 12.06.2014 (+термостат)
Изменения:
- будильника нет
- добавлен термостат с 2мя уставками (вкл/откл нагрузки "L on"/"L oF")
- режим нагреватель/охладитель выбирается автоматом
- джампер на 4й ноге выбирает термометр для термостата
Прошивка, исходник, схема  v1.7 termostat - (описание в архиве, читать перед прошивкой в контроллер)
 
Модификация 2 от 14.06.2014 (автомобильная версия)
Изменения:
- на 4й ноге ключ зажигания (выключаем - индикатор тухнет через 3 секунды, включаем - загорается)
- коротко по кнопке меню: режим "часы"/режим "таймер включеного зажигания"
- сброс таймера включеного зажигания - длинное нажатие на + или - в режиме "таймер включеного зажигания"
- нет звонка, дня недели, будильника, тона звука (ну и соответствующих п/меню)
- яркость общая (нет ночного режима)
- в режиме выключеного зажигания часы могут показывать при нажатии кнопок: часы, температуру1, температуру2
- в режиме выключеного зажигания "таймер включеного зажигания" остановлен.
Прошивка, исходник, схема  v1.7 auto - (с плавным нарастанием и уменьшением яркости)
Прошивка, исходник, схема  v1.7 auto_1 - (описание в архиве, читать перед прошивкой в контроллер)
 

 

 
Категория: Часы | Добавил: Boroda (01.05.2012)
Просмотров: 9186 | Комментарии: 41 | Теги: PIC16F628, Часы-термометр

Всего комментариев: 411 2 »
40 Boroda   (20.04.2014 23:32)
Привет! Кнопка с фиксацией. Ее можно убрать, резистор нужно оставить. Просто был свободный вход - не оставлять же его просто так smile

41 Min   (23.12.2016 11:00)
Здравствуйте уважаемый Борода Собрал сие девайс - отлично   ( Прошивка, исходник v1.9) Но тут же вышла непонятка отключил один датчик температуры, время показа другого поставил 5 сек и теже 5 сек индикатор не светит(получается время второго) Подскажите пожалуйста как убрать время показа второго датчика температуры smile Спасибо за внимание biggrin

38 guslik   (08.02.2014 21:43)
Как обычно  )), косяк с моей стороны ,не той структуры транзистор на точку поставил , заменил  ,все нормально .
Куда можно фото и файл печатки кинуть ?
Может кому и пригодится .
ULN2803 под рукой такой не было .

39 Boroda   (08.02.2014 21:46)
Бывает! Сам так иногда косячу...
На почту кидай d m i t r s t a s с о б а к а я н д е х р у

36 guslik   (08.02.2014 19:32)
Как правильно подключить  точки ? подробней можно ?
С цифрами порядок , с точками запутался (((( wacko

37 Boroda   (08.02.2014 20:58)

А в Вашем случае проще было использовать ULN2803

34 guslik   (08.02.2014 18:43)
Может я не правильно выразился ? 
При показание времени точки моргают ,при дне недели , температурах они горят постоянно , так и должно быть ? 
На какой разряд садить  запятую десятых ? 
Может я че с точками накасячил?

35 Boroda   (08.02.2014 19:06)
При показе времени мигает средняя точка 00.00
При дне недели точек нет
При температуре горит точка 0.0о (-0.0о), либо 00.0 (-00.0), где "о" - знак градуса

33 guslik   (07.02.2014 18:55)
Большое спасибо что отвечаете автор  этих великолепных часов !
Я НАШЕЛ СВОЮ ОШИБКУ ! ВСЕ РАБОТАЕТ !
Единственное с  точкой не разобрался , как мне правильно сделать панель- матрицу  из светодиодов  -я про точку ?

31 guslik   (07.02.2014 04:19)
Здравствуйте уважаемый Boroda !
Прошу прощение за то что не понятно описал свою проблему .
Прошил прошивкой Прошивка, исходник v1.7
Допустил 2 ошибки  в трассировке платы , исправил , все работает .
Есть вопрос по поводу  индикации точки , она у меня светится постоянно при показание температуры , то есть неправильно работает с температурой десятые  градуса  .

32 Boroda   (07.02.2014 09:16)
Привет! Попробуй резистор 4.7кОм на датчике уменьшить до 1..2кОм. Может логическая единица не появляться, т.к. в ULN2003 на входе стоит последовательно 2.7кОм и 2 перехода база-эмиттер на землю.

29 guslik   (06.02.2014 20:57)
Вроде разобрался с  кнопкой меню ,не правильно резистор впаял , заменил,сейчас могу менять параметры .
Но у меня по прежнему не работает 1 датчик температуры , выпаивал рабочий  толку нет .Что может быть ?

30 Boroda   (07.02.2014 01:00)
Повторяю: Какая прошивка? На какой ноге контроллера не работает датчик?

З.Ы.  фраза "1 датчик температуры" значит "один датчик температуры" или "первый датчик температуры" ???

27 guslik   (05.02.2014 20:43)
Здравствуйте !
У меня проблема  , не работает корректно меню ,тоесть я не могу настроить часы .
Также не работает 1 датчик температуры , а так часы работают .
Контроллер у меня  PIC16F628A  ,может все из-за буквы A ?

28 Boroda   (06.02.2014 10:05)
Привет! По какой схеме ОА/ОК? Какая прошивка? На какой ноге не работает датчик? В чем заключается некорректная работа меню?

24 Le_Fleurs   (31.03.2013 18:17)
Добрый день а печатную плату в *.lay есть? подскажите что это за подложка такая синяя, для индикатора?

25 Boroda   (31.03.2013 19:45)
-  Печатку я лично не делал.
-  Насчет корпуса - вот

26 Le_Fleurs   (31.03.2013 20:04)
понятно, очень жаль, буду пробовать развести, Но за схему часов респект очень понравилась.

22 Сергей   (27.12.2012 00:43)
Подскажите как переделать схему включения индикаторов если они с ОК , перепробывал кучу вариантов , чего-то туплю наверное, ничего не выходит.

23 Boroda   (27.12.2012 08:21)
Добавил схему.

15 CRASHER   (29.06.2012 23:23)
Уважаемый Boroda, а можно сделать чтобы температура отображалась со значком градуса от -9.9 до 99.9. Когда бросаю взгляд на часы, не сразу понимаю что отображается время или температура. И выбор режима звука нельзя вернуть в меню? Спасибо.

16 Boroda   (30.06.2012 19:53)
Если памяти хватит, то постараюсь переделать. А как вы используете настройку режимов звука? Кстати, индикатор не подмигивает?

17 CRASHER   (30.06.2012 22:33)
Все отлично работает

18 Boroda   (01.07.2012 00:40)
Ошибку со звуком исправил (туда еще и ошибка с коррекцией затесалась). Отображение температуры тоже подправил.

19 CRASHER   (01.07.2012 22:19)
Уважаемый Boroda! Огромное спасибо за отображение температуры (доволен как мамонт).Багов никаких не заметил,буду еще тестировать. Еще вопросик, можно ли сигнал который звучит каждый час растянуть длительностью в одну секунду? Спасибо.

20 Boroda   (01.07.2012 23:23)
Можно, но чуть попозже.

21 CRASHER   (01.07.2012 23:31)
Отлично, еще раз огромное спасибо!!!

11 Martyanov   (19.05.2012 09:15)
Здравствуйте! Готовый на продажу можете сделать?

12 Boroda   (19.05.2012 20:34)
Времени нет sad

13 @SUS   (19.05.2012 23:00)
если с украины ты то могу сделать))

9 Nikom   (16.05.2012 00:04)
Boroda! А можно изменить прошивку от этих часиков применительно к часам с радиоканалом как с маленьким индикатором, так и с большими индикаторами из 1,2 и 5 статьи? Понравилось отображение дня недели и температуры с десятичной точкой.

10 Boroda   (16.05.2012 00:10)
День недели точно можно поменять, а насчет десятичной точки не скажу, надо экспериментировать. В ближайшее время займусь.

14 Boroda   (25.05.2012 21:04)
Новая прошивка уже выложена

5 Freud_z   (11.05.2012 20:18)
876 просто есть в наличии... ну.. еще лежит 16F84А

6 Boroda   (11.05.2012 20:33)
Плату разводи (layout), на почту кидай, прошивку под нее чуть позже напишу. Возможно надо будет потом плату еще допиливать.

7 Freud_z   (11.05.2012 20:42)
Схема из этой статьи остается, только без пищалки и под 876 камень? или можно под 16F84A развести? у него ног хватит на функционал?

8 Boroda   (11.05.2012 21:26)
Схему любую под 876, как удобнее проводники тащить, так и рисуй (датчики температуры и кнопки на пустые ноги лучше посадить). В 84 нет ацп, ног и памяти.

4 Boroda   (08.05.2012 16:34)
16F876 - а зачем такой большой корпус? Контроллер выбирается в соответствии с поставленной задачей.

1 2 »
Добавлять комментарии могут только зарегистрированные пользователи.
Войдите через свой uID профиль системы Ucoz или зарегистрируйтесь.

[ Регистрация | Вход ]
Форма входа
Файлы
Интересные сайты
Магазины
Яндекс.Метрика




UP