Начало этой истории хранится здесь:
Выдалось немного времени и я решил доделать проект, оформленный в виде монтажной платы. Я уже собрался разводить печатную плату, но мой опыт подсказал, что нужно сперва проверить необходимые комплектующие на доступность в свободной продаже.
И мой опыт меня не подвел!
В первой версии этого проекта я применил OLED-дисплей с диагональю 0.66 дюйма разрешением 64 х 48 пикселей на драйвере SSD1306 с интерфейсом SPI.
На тот момент, когда писалась первая часть публикации, - это был доступный, дешевый и весьма популярный индикатор! Сейчас, если попытаться найти эти дисплеи в продаже, то вы увидите, что их во-первых, почти нет у поставщиков, во-вторых, у них безумные цены доставки, раза в 4 превышающие стоимость самого индикатора.
Сразу возникает вопрос: "И кому нужен будет такой проект?".
Меня не устроила перспектива использования труднодоступных деталей, поэтому пришлось много переделывать и фактически начинать с начала.
В настоящее время рынок завоевали OLED-дисплеи с диагональю 0.96 дюйма разрешением 128 х 64 пикселя на том же драйвере SSD1306 и интерфейсом I2C.
Например, вот.
Средняя цена за такой дисплей - 100 р. с бесплатной доставкой!
При этом еще можно выбрать цвет дисплея (белый, желтый, голубой и даже двухцветный желтый/голубой, который и был выбран для этого проекта).
Также стоит отметить, что применение интерфейса I2C против SPI позволяет высвободить 2 функциональных пина контроллера, а это значит, что итоговое устройство может стать интереснее и конкурентоспособнее.
Я снова пошел по пути макетирования на монтажной плате, прежде чем заниматься разводкой печатной платы. В очередной раз хотел убедиться, что все получилось, прежде чем отдавать плату в исполнение на производство.
Итак, что у меня вышло. Для наглядности можете сравнить два фото по принципу "было --> стало".
Предыдущий вариант исполнения счетчика времени наработки (моточасов).
Новый вариант исполнения счетчика времени наработки (моточасов).
Как можете видеть по фото - дисплей чуть крупнее (0,96" против 0,66"). Отображаемые цифры счетчика крупнее, текстовая информация меньше, чтобы исключить их "склеивание" и улучшить визуальное восприятие. Я применил двухцветный дисплей (желто/голубой), хотя без каких либо изменений можно установить любой монохромный дисплей из ранее представленных.
Для управления дисплеем используется только два сигнала (SCL/SDA) за счет чего в новой версии счетчика освободились два 10-bit АЦП, которые можно задействовать для измерения различных параметров. Будем считать, что эта универсальность - задел на будущее этого проекта!
Основной функционал счетчика остался без изменений относительно первого проекта.
На дисплее мы видим (сверху вниз):
- название устройства "Hours Meter";
- счетчик "USER:" - пользовательский счетчик, который может быть обнулен пользователем;
- счетчик "MAIN:" - главный (основной) счетчик, который не может быть обнулен.
Оба счетчика работают в диапазоне от 0 до 999999.9 часов с дискретом записи 6 минут (0.1 часа) в eeprom контроллера.
999999.9 часов - это 100 с лишним лет )))
Сброс времени наработки пользовательского счетчика осуществляется путем выключения устройства, нажатия и удержания кнопки "СБРОС" и последующего включения устройства.
Нажатие кнопки "СБРОС" во время работы устройства не приводит к выполнению каких-либо действий.
Ну а теперь несколько слов о том, как это сделано. Полная схема связей, по которой разводилась печатная плата, представлена ниже.
Небольшие пояснения по схеме устройства.
- Разъем J7 - разъем питания устройства, на него подается входное напряжение питания.
- Защитный диод D4 - "защита от дурака" от случайной неправильной полярности подключения, что иногда случается! Поможет спасти жизнь устройству, которое планируется выпускать как внешний модуль для установки где угодно.
- D3/R9 - индикация подачи питания на устройство.
А теперь зададимся вопросом, а какое должно быть входное напряжение питания?
В зависимости от поставленной задачи входное напряжение может быть разным.
1. В случае, если устройство планируется использовать по основному назначению в качестве счетчика времени наработки устройства, входное напряжение должно быть стабилизированным 5±0,5 В. В этом включении источники опорного напряжения (U4/U5) не используются и шунтируются резистором R10 = 0R.
2. Если мы планируем использовать два измерительных канала АЦП, то контроллер следует питать от источника опорного напряжения (U4/U5).
- (U4/U5) - источник опорного напряжения (ИОН). Схемотехнически заложены ИОН из серии REF19x. Два представлены на схеме в качестве дублирования. Фактически устанавливается и используется только один из возможных вариантов: U4 - REF19x в корпусе SO-8 или U5 - REF19x в корпусе DIP-8.
В случае использования ИОН, входное напряжение может находиться в диапазоне от 4.5 до 15 В в зависимости от применяемого ИОН (см. datasheet на конкретную применяемую модель).
- U2/U3 - микроконтроллер фирмы Microchip Attiny85. U2 - в корпусе DIP-8, U3 - в корпусе SO-8, опять дублирование и опять используется либо тот, либо другой.
- Разъем J6 - для программирования ICSP микроконтроллера U2/U3.
- U1 - OLED-индикатор с I2C интерфейсом и драйвером SSD1306. Разрешение 128х64 пикселя, диагональ 0,96 дюйма.
Обвязка каналов АЦП1 и АЦП2 устанавливается при необходимости и только в случае расширения функционала устройства.
- Делители R1/R3 и R2/R4 - делители напряжения до допустимого уровня АЦП каналов 1 и 2, рассчитываются индивидуально под входное измеряемое напряжение.
- D1/D2 - защитные элементы (стабилитроны), которые спасут наши АЦП при выходе за допустимый диапазон измерений.
- R6/C2 и R7C3 - интегрирующие цепочки, для устранения мелких колебаний входных сигналов.
Как и в предыдущем проекте к этому модулю можно подключить внешний цифровой датчик температуры типа DS18B20. Для этих целей используется разъем J5. В случае, если датчик температуры не используется и устройство собирается по своему основному назначению, - устанавливается кнопка сброса пользовательского счетчика S1.
На основе представленной полной схемы связей была спроектирована печатная плата устройства.
С лицевой стороны печатной платы (Top) размещается только индикатор и контроллер + ИОН в случае их исполнения в DIP-корпусе.
Выводные контроллер и ИОН отлично прячутся под модулем OLED-индикатора.
Все остальные детали размещаются с обратной (Bottom) стороны платы.
Печатные платы уже запущены в производство, а собранные модули счетчиков времени наработки устройства (моточасов) скоро будут доступны для заказа!
Продолжение следует!