Оглавление:

Цифровое питание Bluetooth с питанием от USB C: 8 шагов (с изображениями)
Цифровое питание Bluetooth с питанием от USB C: 8 шагов (с изображениями)

Видео: Цифровое питание Bluetooth с питанием от USB C: 8 шагов (с изображениями)

Видео: Цифровое питание Bluetooth с питанием от USB C: 8 шагов (с изображениями)
Видео: Как подключить USB C к HDMI? | Обсудим варианты передачи изображения с телефона на телевизор 2024, Июль
Anonim
Цифровой источник питания Bluetooth с питанием от USB C
Цифровой источник питания Bluetooth с питанием от USB C
Цифровой источник питания Bluetooth с питанием от USB C
Цифровой источник питания Bluetooth с питанием от USB C
Цифровой источник питания Bluetooth с питанием от USB C
Цифровой источник питания Bluetooth с питанием от USB C
Цифровой источник питания Bluetooth с питанием от USB C
Цифровой источник питания Bluetooth с питанием от USB C

Вы когда-нибудь хотели получить источник питания, которым можно пользоваться в дороге, даже если поблизости нет розетки? И было бы здорово, если бы он был очень точным, цифровым и управляемым с ПК и телефона?

В этой инструкции я покажу вам, как построить именно это: цифровой источник питания, который питается через USB C. Он совместим с Arduino и может управляться через ПК через USB или через телефон через Bluetooth.

Этот проект является развитием моего предыдущего источника питания, который работал от батареи и имел дисплей и ручки. Посмотрите здесь! Однако я хотел стать меньше, поэтому и сделал это!

Источник питания может питаться от аккумуляторной батареи USB C или зарядного устройства для телефона. Это обеспечивает мощность до 15 Вт, чего достаточно для питания большинства маломощных электронных устройств! Чтобы иметь хороший интерфейс на таком маленьком устройстве, я включил Bluetooth и приложение для Android для элементов управления, что делает его сверхпортативным!

Я покажу весь процесс проектирования, и все файлы проекта можно найти на моей странице GitHub:

Давайте начнем!

Шаг 1. Характеристики и стоимость

Особенности и стоимость
Особенности и стоимость

Функции

  • Питание от USB C
  • Управляется через приложение Android через Bluetooth
  • Управляется через Java через USB C
  • Режимы постоянного напряжения и постоянного тока
  • Использует малошумящий линейный регулятор, которому предшествует трекинг-предварительный регулятор для минимизации рассеиваемой мощности.
  • Работает на ATMEGA32U4, запрограммирован с помощью Arduino IDE
  • Может питаться от аккумуляторной батареи USB C, что делает его портативным
  • Обнаружение USB C и зарядного устройства Apple
  • Разъемы типа «банан» с шагом 18 мм для совместимости с адаптерами BNC

Характеристики

  • 0 - 1A, шаг 1 мА (10-битный ЦАП)
  • 0-25 В, шаг 25 мВ (10-битный ЦАП) (истинный режим 0 В)
  • Измерение напряжения: разрешение 25 мВ (10-битный АЦП)
  • Измерение тока: <40 мА: разрешение 10 мкА (ina219) <80 мА: разрешение 20 мкА (ina219) <160 мА: разрешение 40 мкА (ina219) <320 мА: разрешение 80 мкА (ina219)> 320 мА: разрешение 1 мА (10-битный АЦП)

Расходы

Полный блок питания обошелся мне примерно в 100 долларов, со всеми одноразовыми компонентами. Хотя это может показаться дорогим, блоки питания с гораздо меньшей производительностью и функциями часто стоят дороже. Если вы не против заказать компоненты на ebay или aliexpress, цена упадет примерно до 70 долларов. Доставка деталей занимает больше времени, но это приемлемый вариант.

Шаг 2: Схема и теория работы

Схема и теория работы
Схема и теория работы

Чтобы понять работу схемы, нам нужно будет взглянуть на схему. Я разделил его на функциональные блоки, чтобы было легче понять; Таким образом, я также объясню операцию шаг за шагом. Эта часть довольно глубокая и требует хороших знаний в области электроники. Если вы просто хотите узнать, как построить схему, вы можете перейти к следующему шагу.

Главный блок

Работа основана на микросхеме LT3080: это линейный стабилизатор напряжения, который может понижать напряжение на основе управляющего сигнала. Этот управляющий сигнал будет генерироваться микроконтроллером; как это делается, будет подробно объяснено позже.

Настройка напряжения

Схема LT3080 генерирует соответствующие управляющие сигналы. Сначала посмотрим, как устанавливается напряжение. Настройка напряжения с микроконтроллера представляет собой сигнал ШИМ (PWM_Vset), который фильтруется фильтром нижних частот (C23 и R32). Это создает аналоговое напряжение - от 0 до 5 В - пропорциональное желаемому выходному напряжению. Поскольку наш выходной диапазон составляет 0–25 В, нам придется усилить этот сигнал с коэффициентом 5. Это делается с помощью неинвертирующей конфигурации операционного усилителя U7C. Коэффициент усиления установленного штифта определяется R31 и R36. Эти резисторы имеют допуск 0,1%, чтобы минимизировать ошибки. R39 и R41 здесь не имеют значения, поскольку они являются частью контура обратной связи.

Текущая настройка

Этот установочный штифт также может использоваться для второй настройки: текущего режима. Мы хотим измерить потребляемый ток и выключить выход, когда он превысит требуемый ток. Поэтому мы снова начинаем с сигнала ШИМ (PWM_Iset), генерируемого микроконтроллером, который теперь фильтруется и ослабляется, чтобы перейти от диапазона 0-5 В к диапазону 0-2,5 В. Это напряжение теперь сравнивается с падением напряжения на резисторе считывания тока (ADC_Iout, см. Ниже) конфигурацией компаратора операционного усилителя U1B. Если ток слишком велик, это включит светодиод, а также потянет установленную линию LT3080 на землю (через Q1), тем самым отключив выход. Измерение тока и генерация сигнала ADC_Iout выполняется следующим образом. Выходной ток протекает через резистор R22. Когда через этот резистор протекает ток, он создает падение напряжения, которое мы можем измерить, и он помещается перед LT3080, поскольку падение напряжения на нем не должно влиять на выходное напряжение. Падение напряжения измеряется с помощью дифференциального усилителя (U7B) с коэффициентом усиления 5. Это дает диапазон напряжения 0 - 2,5 В (подробнее об этом позже), следовательно, делитель напряжения на ШИМ-сигнале тока. Буфер (U7A) нужен для того, чтобы ток, протекающий через резисторы R27, R34 и R35, не проходил через резистор считывания тока, что могло бы повлиять на его показания. Также обратите внимание, что это должен быть операционный усилитель с питанием от шины питания к сети, поскольку входное напряжение на положительном входе равно напряжению питания. Неинвертирующий усилитель предназначен только для измерения курса, хотя для очень точных измерений у нас есть микросхема INA219 на борту. Этот чип позволяет нам измерять очень малые токи и адресуется через I2C.

Дополнительные вещи

На выходе LT3080 есть еще кое-что. Во-первых, есть сток тока (LM334). Он потребляет постоянный ток 677 мкА (устанавливается резистором R46) для стабилизации LT3080. Однако он подключен не к земле, а к VEE, отрицательному напряжению. Это необходимо для того, чтобы LT3080 мог работать при понижении напряжения до 0 В. При подключении к земле минимальное напряжение будет около 0,7 В. Это кажется достаточно низким, но имейте в виду, что это не позволяет нам полностью отключить источник питания. К сожалению, эта схема находится на выходе LT3080, что означает, что ее ток будет влиять на выходной ток, который мы хотим измерить. К счастью, он постоянный, поэтому мы можем откалибровать этот ток. Стабилитрон D7 используется для ограничения выходного напряжения, если оно превышает 25 В, а резисторный делитель понижает диапазон выходного напряжения с 0-25 В до 0-2,5 В (ADC_Vout). Буфер (U7D) гарантирует, что резисторы не потребляют ток на выходе.

Зарядный насос

Отрицательное напряжение, о котором мы упоминали ранее, генерируется любопытной маленькой схемой: накачкой заряда. Он питается 50% -ным ШИМ микроконтроллера (ШИМ).

Повышающий преобразователь

Давайте теперь посмотрим на входное напряжение нашего основного блока: VCC. Мы видим, что это 5 - 27В, но подождите, USB выдает максимум 5 В? В самом деле, именно поэтому нам нужно повысить напряжение с помощью так называемого повышающего преобразователя. Мы всегда можем поднять напряжение до 27 В независимо от того, какой выход мы хотим; однако это привело бы к потере энергии LT3080, и все стало бы очень жарко! Поэтому вместо этого мы повысим напряжение немного больше, чем выходное напряжение. Примерно на 2,5 В выше подходит, чтобы учесть падение напряжения на резисторе считывания тока и падение напряжения LT3080. Напряжение устанавливается резисторами на выходном сигнале повышающего преобразователя. Чтобы изменить это напряжение на лету, мы используем цифровой потенциометр MCP41010, который управляется через SPI.

USB C

Это приводит нас к реальному входному напряжению: порту USB! Причина использования USB C (точнее, USB типа 3.1, USB C - это просто тип разъема), заключается в том, что он допускает ток 3 А при 5 В, это уже довольно большая мощность. Но есть одна загвоздка: устройство должно быть совместимым, чтобы потреблять этот ток и «согласовывать» с хост-устройством. На практике это делается путем подключения двух понижающих резисторов 5,1 кОм (R12 и R13) к линии CC1 и CC2. В отношении совместимости с USB 2 документация менее ясна. Вкратце: вы берете любой ток, который хотите, если хост может его обеспечить. Это можно проверить, отслеживая напряжение на шине USB: если напряжение падает ниже 4,25 В, устройство потребляет слишком большой ток. Это обнаруживается компаратором U1A и отключает выход. Он также отправляет сигнал на микроконтроллер, чтобы установить максимальный ток. В качестве бонуса были добавлены резисторы для поддержки определения идентификатора зарядного устройства зарядных устройств Apple и Samsung.

Регулятор 5В

Напряжение питания 5 В для Arduino обычно поступает напрямую от USB. Но поскольку напряжение USB может варьироваться от 4,5 до 5,5 В в соответствии со спецификацией USB, это недостаточно точно. Поэтому используется регулятор на 5 В, который может генерировать 5 В от более низкого и высокого напряжения. Тем не менее, это напряжение не очень точное, но это решается этапом калибровки, на котором рабочий цикл сигнала ШИМ регулируется соответствующим образом. Это напряжение измеряется делителем напряжения, образованным R42 и R43. Но так как у меня больше не было свободных входов, мне пришлось сделать двойную функцию вытаскивания булавки. Когда источник питания загружается, этот штифт сначала устанавливается как вход: он измеряет шину питания и калибруется. Затем он устанавливается как выход и может управлять линией выбора микросхемы потенциометра.

Опорное напряжение 2,56 В

Эта маленькая микросхема обеспечивает очень точное опорное напряжение 2,56 В. Он используется в качестве эталона для аналоговых сигналов ADC_Vout, ADC_Iout, ADC_Vbatt. Вот почему нам потребовались делители напряжения, чтобы довести эти сигналы до 2,5 В.

FTDI

Последняя часть этого источника энергии - связь с жестоким внешним миром. Для этого нам нужно преобразовать последовательные сигналы в сигналы USB. К счастью, это делает ATMEGA32U4, это тот же самый чип, который используется в Arduino Micro.

блютуз

Часть Bluetooth очень проста: добавлен стандартный модуль Bluetooth, который позаботится обо всем за нас. Поскольку его логический уровень составляет 3,3 В (VS 5 В для микроконтроллера), для сдвига уровня сигнала используется делитель напряжения.

Вот и все!

Шаг 3: печатная плата и электроника

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

Теперь, когда мы понимаем, как работает схема, мы можем приступить к ее созданию! Вы можете просто заказать печатную плату онлайн у вашего любимого производителя (моя стоит около 10 долларов), файлы gerber можно найти на моем GitHub вместе со списком материалов. Сборка печатной платы в основном сводится к пайке компонентов на месте в соответствии с шелкографией и спецификацией материалов.

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

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

Все компоненты можно паять, кроме двух банановых гнезд, которые мы установим на следующем шаге!

Шаг 4: Корпус и сборка

Корпус и сборка
Корпус и сборка
Корпус и сборка
Корпус и сборка
Корпус и сборка
Корпус и сборка

Когда печатная плата сделана, мы можем перейти к корпусу. Я специально сконструировал печатную плату вокруг алюминиевого корпуса 20x50x80 мм (https://www.aliexpress.com/item/Aluminium-PCB-Instr…), поэтому использовать другой корпус не рекомендуется. Однако вы всегда можете напечатать корпус с такими же размерами на 3D-принтере.

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

Теперь неплохо добавить несколько шелковых подушечек и удерживать их на месте с помощью небольшой капли суперклея. Это обеспечит теплопередачу между LT3080 и LT1370 и корпусом. Не забывай их!

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

Шаг 5: Код Arduino

Код Arduino
Код Arduino

Мозгом этого проекта является ATMEGA32U4, который мы будем программировать с помощью Arduino IDE. В этом разделе я рассмотрю основные операции кода, подробности можно найти в комментариях внутри кода.

Код в основном выполняет следующие шаги:

  1. Отправить данные в приложение
  2. Чтение данных из приложения
  3. Измерьте напряжение
  4. Измерьте ток
  5. Кнопка опроса

Перегрузка по току USB обрабатывается программой обслуживания прерываний, чтобы обеспечить максимально возможную реакцию.

Перед программированием чипа через USB загрузчик необходимо записать. Это делается через порт ISP / ICSP (штекерные разъемы 3x2) с помощью программатора ISP. Варианты: AVRISPMK2, USBTINY ISP или arduino в качестве ISP. Убедитесь, что на плату подается питание, и нажмите кнопку «записать загрузчик».

Теперь код можно загрузить на плату через порт USB C (поскольку чип имеет загрузчик). Плата: Arduino Micro Программист: AVR ISP / AVRISP MKII Теперь мы можем взглянуть на взаимодействие между Arduino и ПК.

Шаг 6. Приложение для Android

Приложение для Android
Приложение для Android

Теперь у нас есть полностью функциональный источник питания, но пока нет возможности его контролировать. Очень назойливый. Итак, мы сделаем приложение для Android для управления питанием через Bluetooth.

Приложение было создано с помощью программы изобретателей приложений Массачусетского технологического института. Все файлы могут быть включены для клонирования и изменения проекта. Сначала загрузите на телефон приложение-компаньон MIT AI2. Затем импортируйте файл.aia на веб-сайт AI. Это также позволяет вам загрузить приложение на свой телефон, выбрав «Сборка> Приложение (укажите QR-код для.apk)».

Чтобы использовать приложение, выберите устройство Bluetooth из списка: оно будет отображаться как модуль HC-05. При подключении все настройки могут быть изменены, а мощность источника питания может быть считана.

Шаг 7: код Java

Код Java
Код Java

Для регистрации данных и управления питанием через ПК я сделал приложение на Java. Это позволяет нам легко управлять доской через графический интерфейс. Как и в случае с кодом Arduino, я не буду вдаваться в подробности, а сделаю обзор.

Начнем с создания окна с кнопками, текстовыми полями и т. Д.; базовый графический интерфейс.

Теперь самое интересное: добавление USB-портов, для которых я использовал библиотеку jSerialComm. После выбора порта java будет прослушивать любые входящие данные. Мы также можем отправлять данные на устройство.

Кроме того, все входящие данные сохраняются в файл csv для последующей обработки данных.

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

Хотя программа довольно проста, она может быть очень полезна для управления ею с помощью ПК и регистрации данных.

Шаг 8:

Изображение
Изображение
Изображение
Изображение
Изображение
Изображение

После всей этой работы у нас теперь есть полностью функциональный источник питания!

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

Если вам понравился этот проект, проголосуйте за меня в конкурсе карманных и микроконтроллеров, я был бы очень признателен!

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