亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 工业技术

Arduino UNO自制可调稳压电源:电路图与代码全解析

如何用Arduino UNO制作可调稳压电源?

电源是电子电气设备基础刚需。不同电路/设备需不同电压:Wi-Fi模块、继电器、电机等电压各异。市面难买全规格电源,常用电池供电。但电池易耗尽、难提供大电流驱动大功率电机、长用发热、寿命衰减。为解决此痛点,本项目展示基于Arduino UNO的可调稳压电源方案。

此方案可按设备需求输出任意电压,免充电/发热/体积大困扰。生成可调电源法虽多,但此法元件廉价易得、最简易。先看所需元件:

所需元件

软件: Arduino Nightly或Atmel Studio 6.2

可调电源电路图

Arduino UNO自制可调稳压电源:电路图与代码全解析

Arduino UNO简介

开源电子开发平台,可随时编程/擦除/重编程。市面有UNO/Nano/Mega/LilyPad等规格。本项目用UNO控制家电自动化。搭载ATmega328P,16MHz主频,支持USART/I2C/SPI通信。

常用Arduino IDE经Micro USB烧录。ATmega328P预烧录Bootloader,免外部烧录器。C/C++语言易学。IDE将代码分setup(一次性初始化)与loop(循环执行)。

板载6路模拟输入(A0-A5,10位分辨率)、14路数字GPIO(6路PWM输出),通过pinMode/digitalWrite/digitalRead/analogRead控制。USB供电5V或DC插座7-20V。板载稳压输出3.3V供低功耗器件。通信引脚:USART(RX0/TX1)、I2C(SDA A4/SCL A5)、SPI(SS10/MOSI11/MISO12/SCK13)。

Arduino UNO ADC详解

板载6路ADC通道读取0-5V模拟信号。传感器输出模拟量,ADC转数字量送单片机。应用:温度/距离/速度测量等模拟传感器。

10位ADC,数值0-1023,分辨率指离散值数。最大5V对应每级约4.9mV。6通道(A0-A5)可同时对接6模拟设备。IDE内置analogRead(pin)读取模拟值。

Arduino UNO PWM详解

脉宽调制(PWM)以数字源产生模拟信号:频率固定、调节脉冲宽度。两核心参数:占空比与频率。

占空比: 信号导通时间占周期比率。Duty Cycle = 100×Ton/(Ton+Toff)。用于控制负载功率(如调光/调速)。analogWrite()后引脚输出指定占空比方波,直到下次analogWrite或同脚digitalRead/Write。

信号频率:

频率反映信号翻转速度。特定占空比下高频切换等效恒定模拟电压。大多数引脚约490Hz,UNO上D5/D6约980Hz,Leonardo D3/D11亦980Hz。

UNO提供6路8位PWM(标~号)。analogWrite(pin, duty)产生模拟电压:pin为PWM引脚,duty 0-255对应0-100%占空比。

16×2 LCD显示屏

LCD自定义字符不难,需懂CG-RAM与控制器。本项目对接JHD162A(基于HD44780驱动),16脚,支持4/8位模式,本项目用4位模式省线。

JHD162A引脚定义:

LCD引脚 功能描述
VSS地
VCC+5V供电
VEE对比度调节脚
RS寄存器选择:数据/命令模式
RW读/写模式
E使能
DB0-DB7数据/命令总线
LED+背光阳极
LED-背光阴极

屏幕无自发光,背光LED提供照明。Arduino IDE内置LiquidCrystal库简化操作。本项目主用函数:

LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
lcd.begin()
lcd.clear()
lcd.print()

Arduino可调电源工作原理

按电路图接线。输出端电压经ADC通道采样,数字值显示于LCD。两按键接D4/D5控制电压增减。UNO ADC 10位(0-1023),5V满量程,每级≈4.9mV。读A0通道analogRead(A0)得数字值换算电压。D3输出PWM,analogWrite(3, duty)产生目标电压。按键改变占空比→改变输出电压。PWM 0-255对应0-5V。D3经NPN三极管(2N2222)作开关器件,基极加变占空比PWM,发射极得可变电压。电压非线性,接电容滤波去噪。

代码解析

引入库:

#include <LiquidCrystal.h>

实例化LCD(数据脚D8-D13),基准电压2.5V对应占空比50%(ref_volt=125):

LiquidCrystal lcd(8, 9, 10, 11, 12, 13);
int ref_volt = 125;
float flag = 0;

D3设PWM输出,D4/D5设输入(增/减按键):

pinMode(3, OUTPUT);
pinMode(4, INPUT);
pinMode(5, INPUT);

LCD初始化显示"Variable Voltage":

lcd.begin(16, 2);
delay(100);
lcd.setCursor(1, 0);
lcd.print("Variable Voltage");
lcd.clear();
delay(1000);

主循环:读A0 ADC值换算电压,输出PWM:

float value = analogRead(A0);
value = (value * 5) / 1024;
analogWrite(3, ref_volt);

按键检测(低电平触发)调整ref_volt(占空比):

if (digitalRead(4) == LOW) {
  if (ref_volt < 250) { ref_volt++; delay(100); }
}
if (digitalRead(5) == LOW) {
  if (ref_volt > 0) { ref_volt--; delay(100); }
}

通过增/减按键调节占空比,即可获得0-5V可调稳压电源,彻底告别电池烦恼与电路臃肿。

工业技术

  1. 仅用 Arduino 构建 DTMF 解码器 – 无需额外 IC
  2. Arduino 与智能手机打造智能电压表——简单易做的 DIY 项目
  3. Arduino Uno WiFi 网页服务器:通过浏览器控制 LED 开关
  4. Python 3 控制 Arduino UNO - 串口通信点亮内置 LED 入门教程
  5. 使用 Arduino Nano 和 RDA8057M 制作紧凑型 FM 收音机
  6. 智能手机重力感应控制机器人小车:Arduino + 蓝牙 + RemoteXY
  7. 使用 Helium、Azure IoT 中心和 Power BI 实现实时 GPS 跟踪
  8. Arduino 莫尔斯电码发报机 — 从零上手的 DIY 入门指南
  9. AI在全球供应链中识别人口与野生动物贩运
  10. 掌握变频驱动器中的电流、功率与转矩关系
  11. 230VAC转±12VDC双路电源电路图与指南
  12. 无变压器电源:降低成本与节省空间的成熟方案