Часы, будильник, термометр (ATmega8).

Автор: Soir. Опубліковано в Годинники


  – часы с цифровой коррекцией точности.
  – будильник.
  – термометр.
  – индикация на семисегментный индикатор.
  – автоматическая регулировка яркости индикатора.

1. Функции.

– часы, формат отображения времени 24-х часовый, часы:минуты.

– цифровая коррекция точности. Возможна ежесуточная коррекция ±25 сек.  Установленное значение в 1 час 0 минут 30 сек будет прибавлено/вычтено из текущего времени.

– будильник. В заданное время в течении одной минуты раздаются короткие двойные  сигналы. Отключить звук досрочно можно нажатием на любую из кнопок. Когда  работа будильника разрешена, при отображении времени в младшем разряде  индицируется точка.

– термометр. Диапазон измеряемой температуры -55,0 ÷ 125,0 оС. Если  температура выше 99,9 или ниже -9,9 оС десятые доли градуса не отображаются.

– индикация. Поочередная.

– настраиваемая анимация смены показаний.

– использование энергонезависимой памяти микроконтроллера для сохранения настроек  при отключении питания.

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

– автоматическая регулировка яркости индикатора в зависимости от освещенности.

2. Настройка.

2.1. При включении питания часы в основном режиме.

2.2. Нажатием на кнопку MENU производится  вход в режим настроек и выбора группы параметров для установки. В пределах  группы выбор параметра для установки производится кнопкой SET.  По-очереди доступны для установки:

Группа CLOC:

– минуты;

– часы;

– секунды (обнуляются при нажатии на кнопки PLUS или MINUS);

– величина коррекции. В старшем разряде символ "с".

Группа ALAr:

– активация будильника. На индикаторе "On",  если работа будильника разрешена, "OFF", если запрещена;

– минуты срабатывания будильника;

– часы срабатывания будильника.

Группа diSP:

– время индикации текущего времени. В старших разрядах  символы "tc". Диапазон установки 0÷99 сек. Если установлен  0, то время отображаться не будет;

– время индикации температуры. В старших разрядах символы "tt". Диапазон установки 0÷99 сек. Если установлен 0, то температура отображаться не будет;

– выбор эффекта анимации. В старших разрядах символы "EF". Если установлен 0, смена информации будет проводиться без эффектов, если выбран автоматический режим (символ "А"), то будет производиться поочередная смена эффектов. Если выбран режим r, то смена эффектов будет производиться случайным образом.

– выбор скорости анимации. В старшем разряде символ "P". Диапазон установки 0÷99. Одна единица соответствует примерно 2 мсек, чем выше величина, тем медленнее идет анимация.

Группа LiGH:

– включение автоматического управления яркостью индикатора. В старшим разряде символ "A",  в младших "On", если автоматическое регулирование разрешено, "OF", если яркость устанавливается вручную;

– минимальный порог яркости для автоматического режима. В старших разрядах символы "L_".

– максимальный порог яркости для автоматического режима. В старших разрядах символы "L¯".

– уровень яркости в ручном режиме. В старших разрядах символы "L".

2.3. Устанавливаемый параметр мигает.

2.4. Удержанием кнопок PLUS/MINUS производится ускоренная установка параметра.

3. Примечания.

1. Для минимального и максимального порогов яркости диапазон установки 0 ÷ 99, но программой вводятся ограничения: минимальный не может быть больше либо равным максимальному и наоборот.

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

3.Необходимо соизмерять скорость анимации и время отображения информации. Если выбрана медленная анимация и малое время отображения, то может оказаться, что информация не успевает полностью обновиться до очередной смены.

Схема

4. Особенности схемы.

1. Если предполагается использовать функцию автоматической регулировки яркости индикатора, то вместо RV1 устанавливается фоторезистор. А значение  резистора R17 следует подобрать для получения нужной чувствительности системы.

2. Датчик температуры может работать и по 2-х проводной схеме подключения. Если планируется измерять температуру в помещении, где установлены часы, то датчик все равно следует выносить за корпус часов.

3. Пищалка BUZ1 должна быть со встроенным генератором. В зависимости от тока потребления возможно придется установить усилитель (транзисторный ключ).

4. Индикатор с общим катодом. Если яркость окажется недостаточной, тогда следует установить дополнительные ключи. Если ключи будут инвертировать сигнал, тогда нужно вносить изменения в прошивку.

5. При прошивке МК следует установить FUSE для работы от внутреннего тактового генератора частотой 8 МГц. Пример установки FUSE для программы PONYPROGна скриншоте.

фьюзы

6. В проекте (это по сути уже схема) не показаны выводы питания микросхем.

7. Файл screen.png является скриншотом проекта на тот случай, если Proteus не установлен.

8. Архив файлов: схема, прошивка, протеус.

Для обсуждения материалов статьи создана тема.

Видео работы программы, от пользователя wolf2000