Банальный цифровой термометр.
Банальный цифровой термометр.
пришла нужда скидать термометр, понравился этот http://radiokot.ru/circuit/digital/home/41/ Собственно вопрос. Как доработать программу чтобы температура выводилась в следующем виде:
1) При температуре 0...9ºС, например 5ºС, на индикатор выводится значение температуры в виде: " 5 º С" (первая цифра не светится);
2) При температуре более 9ºС, например 27ºС, на индикатор выводится значение температуры в виде: "2 7 º С";
3) При температуре в диапазоне -1...0ºС на индикатор выводится значение температуры в виде: "- 0 º С";
4) При температуре в диапазоне -9...-1ºС, например при температуре -7ºС на индикатор выводится значение температуры в виде: "- 7 º С";
5) При температуре менее -9ºС, например при температуре -18ºС (т. е. при температуре в диапазоне -19...-18ºС), на индикатор выводится значение температуры в виде: "- 1 8 º".
С микроконтроллерами сталкиваюсь впервые, железки скидать не проблема, а вот с программированием ессно "в танке".
Думаю для Котов это не составит труда, взамен гарантирую безграничную благодарность либо разумное вознаграждение ))
Исходник по ссылке наверху.
С уважением, Антон.
1) При температуре 0...9ºС, например 5ºС, на индикатор выводится значение температуры в виде: " 5 º С" (первая цифра не светится);
2) При температуре более 9ºС, например 27ºС, на индикатор выводится значение температуры в виде: "2 7 º С";
3) При температуре в диапазоне -1...0ºС на индикатор выводится значение температуры в виде: "- 0 º С";
4) При температуре в диапазоне -9...-1ºС, например при температуре -7ºС на индикатор выводится значение температуры в виде: "- 7 º С";
5) При температуре менее -9ºС, например при температуре -18ºС (т. е. при температуре в диапазоне -19...-18ºС), на индикатор выводится значение температуры в виде: "- 1 8 º".
С микроконтроллерами сталкиваюсь впервые, железки скидать не проблема, а вот с программированием ессно "в танке".
Думаю для Котов это не составит труда, взамен гарантирую безграничную благодарность либо разумное вознаграждение ))
Исходник по ссылке наверху.
С уважением, Антон.
Да, вместо десятых долей высвечивать значок "температуры" и "С", как на приложенном фото, а при отрицательных температурах высвечивать "минус, значение, значок температуры": "- 1 8 º". ну и чтобы незначащие нули не светились.
С уважением, Антон.
С уважением, Антон.
- Вложения
-
- IMG_0631.JPG
- (24.94 КБ) 2355 скачиваний
- Сэр Мурр
- Модератор
- Сообщения: 11169
- Зарегистрирован: Чт окт 27, 2005 18:50:07
- Откуда: из мест не столь отдалённых
velant77 Лучше обратиться к Насте с этим вопросом- предложением.
А теперь- мои соображения.
При использовании 4-разрядного индикатора Ваше предложение не реализуемо. Рассмотрим случай, когда на улице -18 градусов.
Индикатор должен бутет индицировать -1 8 ºС. Итого понадобилось пять разрядов. В принципе, не проблема поставить ещё один цифровой индикатор, для постоянного отображения знака градуса, но в этом случае совсем не обязательно управлять им с помощью МК- пусть себе постоянно светится, через гасящие резисторы.
А теперь- мои соображения.
При использовании 4-разрядного индикатора Ваше предложение не реализуемо. Рассмотрим случай, когда на улице -18 градусов.
Индикатор должен бутет индицировать -1 8 ºС. Итого понадобилось пять разрядов. В принципе, не проблема поставить ещё один цифровой индикатор, для постоянного отображения знака градуса, но в этом случае совсем не обязательно управлять им с помощью МК- пусть себе постоянно светится, через гасящие резисторы.
- deinewaffe
- Потрогал лапой паяльник
- Сообщения: 307
- Зарегистрирован: Пн янв 14, 2008 12:36:36
- Откуда: Москва,Санкт-Петербург
- Контактная информация:
собрал термометр...запустился сразу....
вот только жаль что при положительном показании на первом знаке горит ноль.......лечше что бы он вообще не светился........а только минус при отрицательном......
вот только жаль что при положительном показании на первом знаке горит ноль.......лечше что бы он вообще не светился........а только минус при отрицательном......
- Вложения
-
- ...jpg
- (119.36 КБ) 2222 скачивания
-
- .....jpg
- (103.22 КБ) 2216 скачиваний
-
- .......jpg
- (97.79 КБ) 2348 скачиваний
Сэр Мурр писал(а): velant77 Рассмотрим случай, когда на улице -18 градусов. Индикатор должен бутет индицировать -1 8 ºС. Итого понадобилось пять разрядов. В принципе, не проблема поставить ещё один цифровой индикатор, для постоянного отображения знака градуса, но в этом случае совсем не обязательно управлять им с помощью МК- пусть себе постоянно светится, через гасящие резисторы.
5) При температуре менее -9ºС, например при температуре -18ºС (т. е. при температуре в диапазоне -19...-18ºС), на индикатор выводится значение температуры в виде: "- 1 8 º" - ИТОГО 4 РАЗРЯДА
Последний раз редактировалось velant77 Чт ноя 19, 2009 07:02:56, всего редактировалось 1 раз.
deinewaffe писал(а):вот только жаль что при положительном показании на первом знаке горит ноль.......лечше что бы он вообще не светился........а только минус при отрицательном......
вот и я про тоже, схема то хорошая, довести бы прошивку до ума чтобы получилось законченное изделие, не хуже заводского.
- deinewaffe
- Потрогал лапой паяльник
- Сообщения: 307
- Зарегистрирован: Пн янв 14, 2008 12:36:36
- Откуда: Москва,Санкт-Петербург
- Контактная информация:
- deinewaffe
- Потрогал лапой паяльник
- Сообщения: 307
- Зарегистрирован: Пн янв 14, 2008 12:36:36
- Откуда: Москва,Санкт-Петербург
- Контактная информация:
Если автор не против, могу предложить свою прошивку, которую я подогнал под эту схему другого своего устройства. соответствует пожеланиям топикстартера. Правда температуру я не округлял, а просто дропал десятичную часть. Так что 0 градусов будет показывать в диапазоне от 0 до 1 градуса. Программа толерантна к типу датчиков, которые есть у меня ds18s20 и ds18b20. В случае проблемы на дисплей выводится сообщение об ошибке. допускается подключение нескольких датчиков впараллель. Только один момент - вывод MCLR через 10кОм резистор надо соединить с +5 (мой программатор не любит когда этот вывод назначают вводом/выводом. И вообще с этим кристаллом забодался - не шьётся, возможно битая ячейка в озу где-то между 0xa8-0xaf - чегой-та мне не нравятся 628-е с "А" буквой. Те что без буквы - работают без проблем) или при программировании сами установите соответствующий фьюз (тогда и BOD_Enable - заодно. Я его не ставил на случай если захочется питать от 3-х вольтового источника). Ещё неплохо бы соединить вывод portb 1 резистором 4,7кОм тоже с +5, хотя я и включил внутренние подтяжки, но в них я не уверен. Еще: проверка правильности показаний при отрицательных температурах не проводилась, поскольку даже на улице таковая отсутствует. Вроде должно показывать - донором был полностью работоспособный код. Но я мог нечаянно, что-нибудь откусить за много, убирая лишнее.
Последний раз редактировалось uldemir Чт дек 29, 2011 19:01:22, всего редактировалось 2 раза.
- deinewaffe
- Потрогал лапой паяльник
- Сообщения: 307
- Зарегистрирован: Пн янв 14, 2008 12:36:36
- Откуда: Москва,Санкт-Петербург
- Контактная информация:
- deinewaffe
- Потрогал лапой паяльник
- Сообщения: 307
- Зарегистрирован: Пн янв 14, 2008 12:36:36
- Откуда: Москва,Санкт-Петербург
- Контактная информация:
Так это вас радует или огорчает? ну тогда придётся ждать настоящей зимы, тогда и проверим как минусовые температуры выводятся. У меня сейчас на улице +6спасибо uldemir за прошивку, загнал её в протеус, светятся только два разряда, остальные два вообще ничего не показывают
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
А вы можете в протеусе установить, чтобы датчик давал положительную температуру? И посмотреть сколько тогда разрядов будет гореть. У меня, в железе, горят все. Есть стойкое подозрение, что это проблема эмуляции. Может, из-за того что refresh rate у дисплея под 120 герц (помнится, кто-то жаловался, что экран назойливо моргает). А морозиловки у меня нет.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
