Оглавление:

Термохромный дисплей температуры и влажности - Версия для печатной платы: 6 шагов (с изображениями)
Термохромный дисплей температуры и влажности - Версия для печатной платы: 6 шагов (с изображениями)

Видео: Термохромный дисплей температуры и влажности - Версия для печатной платы: 6 шагов (с изображениями)

Видео: Термохромный дисплей температуры и влажности - Версия для печатной платы: 6 шагов (с изображениями)
Видео: Вебинар "Цифровые технологии и интеллектуальные материалы в высокотехнологичном производстве" 2024, Июль
Anonim
Image
Image
Проектирование печатной платы нагревателя
Проектирование печатной платы нагревателя

Некоторое время назад я разработал проект под названием Thermochromic Temperature & Humidity Display, в котором я построил 7-сегментный дисплей из медных пластин, которые нагревались / охлаждались элементами Пельтье. Медные пластины были покрыты термохромной фольгой, меняющей цвет в зависимости от температуры. Этот проект представляет собой уменьшенную версию дисплея, в которой вместо Пельтье используется печатная плата со следами нагрева, как было предложено пользователем DmitriyU2 в разделе комментариев. Использование нагревателя для печатной платы позволяет получить гораздо более простую и компактную конструкцию. Нагрев также более эффективен, что приводит к более быстрому изменению цвета.

Посмотрите видео, чтобы увидеть, как работает дисплей.

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

Запасы

  • Плата нагревателя (файлы Gerber см. В моем GitHub)
  • Плата управления (см. Мой GitHub для файлов Gerber и BoM)
  • Датчик DHT22 (например, ebay.de)
  • Напечатанная на 3D-принтере подставка (файл stl см. В моем GitHub)
  • Термохромный клейкий лист, 150x150 мм, 30-35 ° C (SFXC)
  • Болт M2x6 + гайка
  • 2 штекерных разъема 1x9, 2,54 мм (например, mouser.com)
  • 2x разъема для платы SMD 1x9, 2,54 мм (например, mouser.com)

Шаг 1: проектирование печатной платы нагревателя

Проектирование печатной платы нагревателя
Проектирование печатной платы нагревателя
Проектирование печатной платы нагревателя
Проектирование печатной платы нагревателя

Печатная плата нагревателя была разработана в Eagle. Размеры печатной платы составляют 100x150 мм, потому что 150x150 мм - это стандартный размер термохромных листов, которые я использовал. Сначала я сделал набросок сегментов в Fusion360, который был сохранен как dxf, а затем импортирован в Eagle. Сегменты имеют между собой фрезерованные зазоры и соединяются только небольшими перемычками. Это улучшает теплоизоляцию отдельных сегментов и, следовательно, обеспечивает более быстрый нагрев и снижает «перекрестные тепловые помехи». Сегменты были заполнены дорожками печатной платы на верхнем слое (показано красным) с помощью меандра в Eagle. Я использовал ширину дорожек и расстояние между ними 6 мил, что является минимальным размером, который PCBWay может изготовить без дополнительных затрат. Каждая дорожка извилистая между двумя переходными отверстиями, которые затем соединяются с выводами через нижний слой (показано синим цветом) с использованием гораздо более толстых дорожек размером 32 мил. Все сегменты имеют общую основу.

Я не делал никаких расчетов мощности нагрева, необходимой для определенного повышения температуры, и не рассчитывал ожидаемое сопротивление сегмента. Я подумал, что любую регулировку мощности нагрева можно выполнить, используя сигнал ШИМ с изменяющимся рабочим циклом. Позже я обнаружил, что сегменты нагреваются достаточно быстро при питании через USB-порт 5 В с рабочим циклом ~ 5%. Суммарный ток при нагреве всех 17 сегментов составляет около 1,6 А.

Все файлы досок можно найти на моем GitHub.

Шаг 2: проектирование печатной платы контроллера

Проектирование печатной платы контроллера
Проектирование печатной платы контроллера
Проектирование печатной платы контроллера
Проектирование печатной платы контроллера
Проектирование печатной платы контроллера
Проектирование печатной платы контроллера

Для управления нагревателем печатной платы я выбрал микроконтроллер SAMD21E18, который я также использовал в своем проекте GlassCube. Этот микроконтроллер имеет достаточно контактов для управления всеми 17 сегментами нагревателя и считывания показаний датчика DHT22. Он также имеет собственный USB и может быть прошит загрузчиком Adafruit CircuitPython. Разъем micro USB использовался в качестве источника питания и для программирования микроконтроллера. Сегменты нагревателя управляются 9 двухканальными полевыми МОП-транзисторами (SP8K24FRATB). Они могут выдерживать ток до 6 А и иметь пороговое напряжение затвора <2,5 В, поэтому их можно переключать с помощью логического сигнала 3,3 В от MCU. Я нашел эту ветку очень полезной, чтобы помочь мне спроектировать схему управления нагревателем.

Я заказал печатные платы в PCBWay, а электронные компоненты отдельно от Mouser и собрал печатные платы самостоятельно, чтобы сэкономить средства. Я использовал дозатор паяльной пасты, поместил детали вручную и припаял их инфракрасным нагревателем IC. Однако из-за относительно большого количества задействованных компонентов и необходимой доработки это было довольно утомительно, и я собираюсь использовать услуги сборки в будущем.

Снова файлы доски можно найти на моем GitHub. Там вы можете найти улучшенную версию печатной платы, которая использует разъем USB-C вместо micro USB. Я также скорректировал расстояние между сквозными отверстиями для датчика DHT22 и добавил 10-контактный разъем для упрощения прошивки загрузчика через J-Link.

Шаг 3. Загрузчик CircuitPython

Сначала я прошил SAMD21 загрузчиком UF2 на основе Trinket M0 от Adafruit. Загрузчик пришлось немного изменить, потому что у Trinket есть светодиод, подключенный к одному из контактов, который я использую для нагрева. В противном случае на этом выводе на короткое время после загрузки будет высокий уровень, и подключенный сегмент будет нагреваться на полную мощность. Перепрошивка загрузчика выполняется путем подключения J-Link к MCU через порты SWD и SWC. Весь процесс подробно описан на сайте Adafruit. После установки загрузчика MCU распознается как флэш-накопитель при подключении через порт micro USB, и последующие загрузчики можно просто установить, перетащив файл UF2 на накопитель.

В качестве следующего шага я хотел установить загрузчик CircuitPython. Однако, поскольку моя плата использует много контактов, которые не подключены к Trinket M0, мне сначала пришлось немного изменить конфигурацию платы. Опять же, на сайте Adafruit есть отличный учебник. По сути, нужно просто закомментировать несколько игнорируемых контактов в mpconfigboard.h, а затем все перекомпилировать. Пользовательские файлы загрузчика также доступны на моем GitHub.

Шаг 4: Код CircuitPython

Код CircuitPython
Код CircuitPython
Код CircuitPython
Код CircuitPython

После установки загрузчика CircuitPython вы можете просто запрограммировать плату, сохранив свой код в виде файла code.py непосредственно на USB-накопитель. Написанный мной код считывает датчик DHT22, а затем поочередно отображает температуру и влажность, нагревая соответствующие сегменты. Как уже упоминалось, нагрев осуществляется путем переключения полевых МОП-транзисторов с помощью сигнала ШИМ. Вместо того, чтобы настраивать контакты как выходы ШИМ, я сгенерировал «фальшивый» ШИМ-сигнал с низкой частотой переключения 100 Гц в коде с использованием задержек. Чтобы еще больше снизить потребление тока, я включаю сегменты не одновременно, а последовательно, как показано на схеме выше. Также есть несколько хитростей, чтобы сделать нагрев сегментов более равномерным. Во-первых, рабочий цикл немного отличается для каждого сегмента. Например, тире знака «%» требует гораздо большего рабочего цикла из-за его более высокого сопротивления. Также я обнаружил, что сегменты, окруженные множеством других сегментов, нужно меньше нагревать. Кроме того, если сегмент был нагрет в предыдущем «прогоне», рабочий цикл может быть уменьшен в следующем. Наконец, время нагрева и охлаждения адаптируется к температуре окружающей среды, которую удобно измерять датчиком DHT22. Чтобы найти разумные постоянные времени, я фактически откалибровал дисплей в климатической камере, к которой у меня, к счастью, есть доступ на работе.

Вы можете найти полный код на моем GitHub.

Шаг 5: Сборка

сборка
сборка
сборка
сборка
сборка
сборка

Сборка дисплея довольно проста и может быть разделена на следующие этапы.

  1. Припаяйте гнездовые штыревые разъемы к печатной плате нагревателя
  2. Прикрепите самоклеящийся термохромный лист к печатной плате нагревателя.
  3. Припаяйте датчик DHT22 к плате контроллера и закрепите болтом и гайкой M2.
  4. Припаяйте штыревые разъемы к плате контроллера
  5. Подключите обе печатные платы и поместите в подставку для 3D-печати.

Шаг 6: Готовый проект

Готовый проект
Готовый проект
Готовый проект
Готовый проект

Я вполне доволен законченным дипломом, который теперь постоянно работает в нашей гостиной. Цель создания уменьшенной и более простой версии моего оригинального термохромного дисплея была определенно достигнута, и я хотел бы еще раз поблагодарить пользователя DmitriyU2 за предложение. Этот проект также помог мне улучшить свои навыки проектирования печатных плат в Eagle, и я узнал об использовании полевых МОП-транзисторов в качестве переключателей.

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

Если вам нравится этот проект, вы можете просто переделать его или купить в моем магазине Tindie. Также подумайте о том, чтобы проголосовать за меня в конкурсе на проектирование печатной платы.

Задача проектирования печатных плат
Задача проектирования печатных плат
Задача проектирования печатных плат
Задача проектирования печатных плат

Приз жюри конкурса PCB Design Challenge

Рекомендуемые: