1. Двухканальный таймер / часы / термометр на STM32F103

  2. STM32F103

    Nokia 5110

    DS18B20

Этот таймер был собран для управления бытовыми приборами. Обычное применение - это включение ночью стиральной машинки или, скажем, йогуртницы. Если дома есть мелкая живность или растения, то всегда есть потребность включить по расписанию какую-нибудь лампу. Вобщем, этот таймер поможет во многих подобных ситуациях.

Возможности устройства:

- Часы (дата, время)
- Термометр. Измерение температуры двумя датчиками на разных шлейфах
- Два независимых канала таймера
- Режим однократного запуска канала и режим с повторением
- Четыре настраиваемых интервала времени для каждого канала
- Четыре выхода для каждого канала, полярность настраивается для каждого выхода индивидуально

Главный экран таймера

В таймере использована купленная на Али пару лет назад плата с микроконтроллером STM32F103C8T6.
Сейчас точно такой платы с продаже нет, но подойдет практически любая аналогичная плата. Главное, чтоб на разъём были выведены ноги микроконтроллера, которые нужны для подключения кнопок, дисплея, датчиков температуры и выходы для подключения нагрузки.

Это следующие ноги:

- дисплей: PB11, PB12, PB13, PB14, PB15
- кнопки: PA0, PA2, PA3, PA4
- датчики температуры: PA9 и PB10
- управление нагрузкой: PB4, PB5, PA5, PA6
- вывод для подключения внешней резервной батарейки VBAT (VB)

Подобные платы обычно укладываются по стоимости от 100 до 300 рублей.

Это может быть плата, типа такой:

STM32F103C8T6 плата 1

посмотреть на Али

Или такой:

STM32F103C8T6 плата  2

посмотреть на Али

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

На плате кроме основного резонатора на 8 МГц должен быть установлен часовой кварц на 32768, либо предусмотрено место под его установку. Без часового кварца таймер работать не будет. Если место под кварц предусмотрено, но кварц не стоит, то могут быть не установлены так-же и два конденсатора от кварца на землю. Обычно это 7pF.

Вместо микроконтроллера с индексом c8t6 на плате может быть установлен микроконтроллер с индексом cbt6, разница только в объёме флеш-памяти ( в последнем её вдвое больше).

Вопросы заливки прошивки в микроконтроллер в этом посте подробно рассматривать не буду. В принципе, в интернете легко найти необходимую информацию. Скажу только, что я заливаю прошивки с помощью самодельного ST-Link/V2. Его можно сделать из точно такой же платы, как и сам таймер, добавив несколько резисторов. Вопрос первоначальной прошивки программатора остаётся, но он решается программированием через последовательный порт.

В таймере используется графический дисплей Nokia 5110 84x48 пикселей. Стоит недорого, приобрести тоже несложно. Мой дисплей с Али, качество средненькое, но, зато, цена низкая.

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

Датчики температуры - DS1820, DS18B20 или DA18S20. Конкретный тип датчика выбирается в настройках.

Принципиальная схема

Принципиальная схема таймера

Принципиальная схема в формате Splan7: (доступно зарегистрированным пользователям)

Прошивка

Версия 1.0.134 (19.05.2018)

Версия 1.0.134 от 19.05.2018: (доступно зарегистрированным пользователям)

Ниже идут несколько несколько фотографий экрана таймера в разных режимах:

1. Главный экран. На нём вся основная информация.
В верхней строке выводится время следующего изменения уровня на выходе каналов 1 (слева) и 2 (справа). На чёрном фоне означает предстоящее отключение, на светлом - включение (для выходов, настроенных как "нормальные").

Таймер. Главный экран.

2-3. Подробная информация по режиму работы первого и второго канала таймеров.
Режим работы канала (верхняя строка)
Четыре интервала времени канала и их использование ( +/- это вкл/выкл )

Таймер. Информация по первому каналу.
Таймер. Информация по второму каналу.

4. Экран с температурой крупно.

Таймер. Экран с температурой крупно.

5-6. С главного экрана (экран 1) можно перейти в установку даты и времени

Таймер. Установка даты.

Таймер. Установка времени.

С экранов с подробной информацией о каналах (экраны 2-3) можно перейти в их настройки:

7. Общая настройка режима работы канала и четырех выходов канала (на фото показан Канал 1)

При выборе режима "1 РАЗ" - канал отрабатывает все активные интервалы в течение суток с момента выхода из настройки. После этого канал переходит в состояние "Выкл".

Выходы могут быть настроены как "Нормальный", т.е. высокий уровень при включении и низки при выключении. "Инверсный" - наоборот. "Вкл" - потоянно высокий на выходе и "Выкл" - постоянно низкий соответственно.

Таймер. Настройка режима работы канала.

8. Настройка интервалов времени канала (на фото Канал 1 Интервал 2)

Таймер. Настройка интервала времени 2 канала 1.

9. С экрана температуры (экран 4) можно перейти в настройку датчиков температуры. Выбирается тип установленного датчика. Если датчик отключен, то показания на экран не выводятся. Если включен, но отсутствует или неистравен, то вместо температуры выводятся прочерки.

Таймер. Настройка датчиков температуры.

Это еще не всё, что я собирался написать об этом таймере. В свободное время буду дописывать этот пост.

Продолжение следует...

Дата создания: 2018-04-29
Модификация: 2018-05-19

Добавить комментарий

Filtered HTML

  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и параграфы переносятся автоматически.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.
CommentFile
Максимальный размер файла: 5 МБ.
Разрешённые типы файлов: jpg png.
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы Человеком или представляете из себя автоматическую спам-рассылку :)
CAPTCHA на основе изображений
Введите код с картинки