Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Компактный программируемый карманный источник питания с OLED — совместим с Arduino

Компоненты и материалы

Arduino UNO (для прототипирования) 1
Arduino Nano R3 (в финальном устройстве) 1
XL6009 DC-DC Boost модуль 1
Тактильная кнопка 12 мм (SparkFun) 1
Кварц 16 МГц 1
Клеммник 1
Линейный стабилизатор с регулируемым выходом (LM317) 1
Линейный стабилизатор 7805 (5В) 1
Диод 1N4007 1
USB A-B кабель 1
Многооборотный потенциометр 10 кОм (25 оборотов) 1
Операционный усилитель OP07 (прецизионный) 1
Корпус розетки (generic socket box) 1
FR4 макетная плата 1
Перемычки 1 набор
Pin header 40 pin (0.1") 1
Резистор 10 кОм 1
Резистор 22.1 кОм 1
Резистор 1 кОм 1
Защелковое реле 5В 2А 1
Цифровой потенциометр MCP4131 10к (SparkFun) 1
Медная фольга/лента 1
Операционный усилитель LM358 1
OLED 1306 (SSD1306) 1

Инструменты

Приложения и сервисы

О проекте

Идея

Хоббистам часто нужен истоник питания для прототипов, проверки компонентов, тестирования лимитов. Лабораторные блоки питания дорогие и громоздкие. Я хотел программируемый, портативный, перезаряжаемый блок питания низкой стоимости. И сделал его.

Особенности:

Наиболее универсальный блок питания для низковольтной электроники.

Видео-демонстрация

Смотрите видео работы устройства (ссылка в оригинале).

Спецификации

Компактный программируемый карманный источник питания с OLED — совместим с Arduino
Компактный программируемый карманный источник питания с OLED — совместим с Arduino

Это быстрый прототип. Можно сделать 0–30 В, отрицательное питание и больший ток, используя более емкие батареи, доп. электронику и улучшенный дизайн.

Принцип работы

Блок-схема системы:

Компактный программируемый карманный источник питания с OLED — совместим с Arduino
  1. Источник: 3.7В Li-Po, заряжается по USB. XL6009 поднимает до 15.6В. 7805 дает 5В для MCU.
  2. MCU модуль: Arduino-клон (ATmega328P) + 2 прерывания от кнопок + OLED 1306 + UART для прошивки (модуль 1).
  3. Генератор опорного напряжения: MCP4131 (Digipot) + LM358 → ступенчатое управляющее напряжение для LM317 (модуль 2).
  4. Регулятор LM317: Vout = Vadj + 1.25В (при Vin ≥ 15.6В). Управляющее напряжение на Adjust пине задает выходное (модуль 3).
  5. ADC измерения: Внутренний референс 1.1В. Делители напряжения для измерения Vbat, Vboost, Vcharge, Vout. Ток: нагрузка через 1 Ом шунт → OP07 (gain 2.5x) → ADC. 1 мА = 1 мВ на шунте → 2.5 мВ на OP07 → ADC (1.1В/1023 ≈ 1 мВ/шаг) → лимит 400 мА. Меняя gain OP07 — меняем лимит тока. Меняя boost и gain LM358 — диапазон напряжения.
  6. Зарядка Li-Po: 5В USB → 1N4007 → 5 Ом → баттерия. Простая схема, не идеальная для Li-Po.
  7. Защелковое реле: 2 катушки. Короткий импульс на катушку переключает контакты. Удерживает положение без питания.

Резюме работы: MCP4131 выдает 0–5В (129 шагов, ~40 мВ/шаг). LM358 усиливает ×2.5 → 0–12.5В шагом 0.1В. Это на Adjust пин LM317. Выход LM317 = Vstep + 1.25В. Ток измеряется через шунт 1 Ом + OP07.

Сборка проекта

  1. Корпус: одноразовый коробок от розетки, вырезы под батарею, USB, выключатель.
  2. Компактный программируемый карманный источник питания с OLED — совместим с Arduino
  3. Радиатор для XL6009 из медной ленты и монетки.
  4. Компактный программируемый карманный источник питания с OLED — совместим с Arduino
    Компактный программируемый карманный источник питания с OLED — совместим с Arduino
  5. Установка boost-модуля в корпус.
  6. Компактный программируемый карманный источник питания с OLED — совместим с Arduino
    Компактный программируемый карманный источник питания с OLED — совместим с Arduino
  7. Сборка 3 модулей: Arduino+I/O, Digipot+LM317, Current Sense.
  8. Компактный программируемый карманный источник питания с OLED — совместим с Arduino
    Компактный программируемый карманный источник питания с OLED — совместим с Arduino
  9. Паяем «паутину» связей между платами.
  10. Компактный программируемый карманный источник питания с OLED — совместим с Arduino
  11. Заполняем термоклеем, готово.
  12. Компактный программируемый карманный источник питания с OLED — совместим с Arduino

Прошивка и процедура работы

Прошивка v1.0.2 Beta. Не все фичи готовы, но основные: управление напряжением, реле, инфо на экране — работают.

Код разбит на вкладки: ADC, Digipot, Display_Fn, Interrupt, Relay, Timer — по функциям.

Ограничения

Ссылки

Заключение

Этот программируемый источник питания помогает быстрее делать прототипы. Измерение В/А/Вт без мультиметра.

Код

Arduino Programmable Portable Power Supply (v1.0.1 с распиновкой в комментариях)

// Pin Reset, D0 & D1 for uploading Sketch
// Pin D9,D10,D11,D12,D13 for controlling OLED Display
// ADC A0 Pin for Sensing V_boost
// ADC A2 Pin for Sensing V_batt (LiPo)
// ADC A3 Pin for Sensing I_Output (Load)
// ADC A4 Pin for Sensing V_USB (Charging)
// ADC A5 Pin for Sensing V_Output (Load)
// Latch Relay's 2 Coils Driving Pin D4 & D5
#define RC1 4
#define RC2 5
// User Input Switchs connected to Pin D2 & D3
#define SW1 2
#define SW2 3
// Pin D6,D7,D8 for Digital Pot Control Pins
#define CS_PIN 6
#define CLK_PIN 7
#define DATA_PIN 8

volatile uint8_t Switch1 = 1;
volatile uint8_t Switch2 = 1;
float V_Out = 0.0;
float I_Out = 0.0;
float V_Bat = 0.0;
float V_Bst = 0.0;
float V_Chg = 0.0;
uint32_t time = 0;

#include "U8glib.h"
// SSD1306 oled waveshare(clk,din,cs,d/c,res); // THIS FOR WAVESHARE
U8GLIB_SSD1306_128X64 u8g(10, 9, 11, 13, 12);

void setup(void) {
  analogReference(INTERNAL);
  u8g.setRot180();
  button_init();
  relay_init();
  init_timer1();
  digipot_init();
}

void loop(void) {
  update_display();
  calc_VI();
  if (Switch1 == 0) { rc1_latch(); Switch1 = 1; increment_digipot(); }
  if (Switch2 == 0) { rc2_latch(); Switch2 = 1; decrement_digipot(); }
  delay(100);
}

Code Ver 1.0.1 Beta

No preview (download only).

Code Ver 1.0.2 Beta

Bug Fix для выравнивания текста/боксов
Bug Fix для перегрузки
Еще несколько багфиксов в следующем релизе.
No preview (download only).

Code ver 1.0.3

Bug fix: отключение реле на выходе при включении питания
Bug fix: автоустановка выходного напряжения 5.00 В после включения
No preview (download only).

Схемы

Компактный программируемый карманный источник питания с OLED — совместим с Arduino

https://circuits.io/circuits/4762970-arduino-based-programmable-power-supply

Компактный программируемый карманный источник питания с OLED — совместим с Arduino
Компактный программируемый карманный источник питания с OLED — совместим с Arduino
Компактный программируемый карманный источник питания с OLED — совместим с Arduino
Компактный программируемый карманный источник питания с OLED — совместим с Arduino

Производственный процесс

  1. Создание классической игры Pong на Arduino UNO с OLED-дисплеем: пошаговый урок
  2. Умная копилка: управление монетоприёмником на Arduino Nano
  3. Arduino Power Control Center: N-FET, P-FET, реле и RTC
  4. Монитор температуры и реальные часы на Arduino Due с TFT-дисплеем 3.2"
  5. Управление светодиодом по Bluetooth с Arduino: простой DIY-гид
  6. Оптимизированные решения питания для проектов на Arduino
  7. Интерактивный HMI-проект на Nextion с Arduino Mega и датчиками
  8. Сборка вольтметра на Arduino с дисплеем Nokia 5110 — Пошаговое руководство
  9. Учебный стенд Arduino Mega 2560: сенсоры, моторы, дисплеи и собственная PCB
  10. Создание приложения Fridgeye с дисплеем Nextion: пошаговое руководство