Каталог статей


Выбранная схема!!!


3663
Простой барометр/термометр на МК.

Автор: Алексей Спиренков , home@alexsp.ru


Данная конструкция была разработана по просьбе моего друга - любителя автомобильных путешествий и offroad. Им (другу и сотоварищам) в походах уж очень хочется знать в какую сторону и с какой скоростью меняется атмосферное давление, дабы попытаться понять, что будет с погодой. Он выбрал недорогой индикатор ME-GLCD128x64 представленный на фото:

Устройство собрано на двусторонней ПП, изготовленной методом ЛУТ:

 

Микроконтроллер был выбран ATMega32 в дип корпусе по причинам: он у меня был, найти другое применение такому большому корпусу (DIP40) я не смог, т.к. в последнее время делаю практически все на SMD.

Датчик давления фирмы HopeRF - HP03M, общающийся с МК по протоколу TWI. Датчики температуры DS18S20 фирмы Maxim.

Часы реального времени были выбраны на микросхеме M41T81 по причинам: наличие коррекции времени и наличие Timekeeper - позволяющего читать текущее время без потерь тактов основного счетчика.

В качестве источника питания решено использовать автомобильный адаптер USB - он выдает 5В при токе до 0.5А. В связи с тем, что при старте двигателя "провалы" в бортовой сети авто довольно большие, то была необходима схема аварийной записи текущих значений в eeprom. Для этого используется развязка питания МК и остальной схемы. Питание МК поддерживается конденсатором 1000 мкф, которого, как показали испытания, достаточно (более чем в два раза) для того, что-бы МК успел записать 6 байт текущих значений датчиков в eeprom. Контроль наличия питания и цепь сброса МК обеспечивают два супервизора питания. Первый следит за напряжением на входе схемы и при пропадании питания выдает лог.0 на int0, тем самым запуская процедуру сохранения. Второй обеспечивает "жесткий" сброс самого МК при понижении его питания - для исключения повреждения eeprom.

В обычном режиме данные записываются в eeprom каждые полчаса. Всего хранятся значения за 2-е суток. Текущее время, полученное с m41t81 преобразуется в кол-во секунд от 2000 года, и на основе этого значения вычисляется текущий адрес для записи (один из 96). После несложных вычислений можно увидеть, что ресурс eeprom выработается приблизительно за 540 лет (каждая ячейка перезаписывается раз в 2-е суток) или при ежеминутном выключении питания за 18 лет. Получасовые данные - это средние значения давления, температуры по каждому датчику, время в секундах (кратное 96) и контрольная сумма CRC16. При старте данные читаются из eeprom и проверяется контрольная сумма каждого блока, если сумма не верна - данные игнорируются. Так-же данные игнорируются если дата их записи превышает 2-е суток (нам такие старые данные не нужны). Аналогично считается и контрольная сумма основных настроек, и если она не верна - считаем, что это первый запуск программы и выставляем все значения по дефолту.

Далее пример работы устройства.

В верхнем левом углу текущее давление в мм.рт.ст и после стрелочки - изменение давления за последние 3 часа. Ниже показания двух датчиков температуры и max/min значения за прошедшие 24 часа. Совсем внизу график изменения давления. (провал в графике - специально на эти полчаса устройство было выключено - следовательно данных нет и показывать нечего)

 

Меню настроек:

Возможны установки: даты и времени, "поправки" хода часов, поправки давления (для приведения его к текущей высоте), регулировка максимальной и минимальной яркости, время, через которое яркость переключится с максимума на минимум.

Все настройки выполняются тремя кнопками Enter,+,- Для входа в меню настроек необходимо удерживать + и - более секунды.

В основном режиме кнопки + и - не работают и потому сделаны скрытыми. Кнопка Enter переключает яркость экрана с макс. на мин. и наоборот. При длительном удержании подсветка экрана полностью отключается.

Собственно схема устройства:

В архиве: Прошивка, схема, плата, плата в diptrace. Плюс набор различных цифр и символов с сишными кодами.

PS: проект будет развиваться, т.к. впереди еще зимние испытания на морозоустойчивость :)


Файлы:
Бонус: много цифирок с "C"шными массивами 
Прошивка, исходники, схема, плата 





Категория: Термометры | Добавил: brys99 (04.12.2011)
Просмотров: 11589 | Теги: Простой барометр/термометр на МК. | Рейтинг: 3.0/2


Всего комментариев: 0

Все ссылки на книги и журналы, представлены на этом сайте, исключительно для ознакомления, авторские права на эти публикации принадлежат авторам книг и издательствам журналов! Подробно тут!
Жалоба

ьте свои комментарии !!!!

Имя *:
Email:
Код *:

Copyright Zloy Soft (Company) © 2008 - 2024