2018-9-16 12:03:26 [显示全部楼层]
9012浏览
查看: 9012|回复: 1

[进阶] 用arduino做一个0-5V可变电源

[复制链接]
今天我们要做一个0-5V可变电源,最主要是为了学习Arduino 模拟输入和LCD显示。


什么是模拟输入?

我们知道模拟输出可以控制一个引脚输出0-5V的电压。那模拟输入就是读取0-5V的电压。函数:

analogRead(引脚位置);

这个函数会返回一个0-1023之间的数字,比如说你直接把5V连接到模拟输入引脚,那返回的就是1023,如果你把GUN连接到模拟输入引脚,就返回数字0 。是不是很简单?

如果你用一个2.5V的电压正极连接到模拟输入引脚,那这个函数就会返回:512

0-5V和0-1023是一个对应关系。我们根据这个就能做一个0-5V量程的电压表了。


原理说明

把一个要测量的电池或电源正负极连接一个阻值很大的电阻,然后把正级连接到模拟输入的一个接口,把负极连接arduino的gun脚针。通过计算0-1023到0-5的映射,我们就能知道电池的电压了。

代码

void setup(){

Serial.begin(9600); //使用9600的波特率进行串口通讯

float temp; //创建一个浮点型变量temp作为存储空间准备存放数据

}

void loop(){

int V1 = analogRead(A0);//从A0口读取电压数据存入刚刚创建整数型变量V1,模拟口的电压测量范围为0-5V 返回的值为0-1024

float vol = V1*(5.0 / 1023.0);//我们将 V1的值换算成实际电压值存入浮点型变量 vol

if (vol == temp){//这部分的判断是用来过滤重复的数据,只有本次的电压值和上次不一时才进行输出

temp = vol; //比较完成后,将这次的值存入比对比用的变量temp

} else {

Serial.print(vol); //串口输出电压值,并且不换行

Serial.println(" V"); //串口输出字符V,并且换行

temp = vol;

delay(1000); //输出完成后等待1秒钟,用于控制数据的刷新速度。

下面是1602显示器简介:

用arduino做一个0-5V可变电源图1

用arduino做一个0-5V可变电源图2

用arduino做一个0-5V可变电源图3

用arduino做一个0-5V可变电源图4

下面是项目原理图和连线图

用arduino做一个0-5V可变电源图5

用arduino做一个0-5V可变电源图6

[mw_shl_code=applescript,true]//Arduino Power Supply 0-5Volt
//made by gada888
//2017-01-20

//Defining pins
#define RS 9
#define Enable 8
#define D4 5
#define D5 4
#define D6 3
#define D7 2
//Including the LCD and sound library:
#include <LiquidCrystal.h>
// Initialize the LCD library
LiquidCrystal lcd(RS, Enable, D4, D5, D6, D7);

int potPin = A0;
int readValue;
float Voltage;

void setup(){
pinMode(potPin, INPUT);
lcd.begin(16, 2);
}

void loop(){
readValue = analogRead(potPin);
Voltage = (5./1023)*readValue;
lcd.setCursor(0,0);
lcd.print("Voltage = ");
lcd.setCursor(0,1);
lcd.print(Voltage, 3);
lcd.print("V");
delay(250);
}[/mw_shl_code]

用arduino做一个0-5V可变电源图7


20060606  高级技匠

发表于 2020-8-10 05:21:36

好创意,赞一个
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4 备案 沪公网安备31011502402448

© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail