欢迎光临
我们一直在努力

基础部分-读取模拟电压

这个示例展示了如何用模拟引脚0来读取模拟输入,用analogRead()来转换电压数值,之后把这个值输出在编译器的串口监视器上。

硬件需求

—Arduino控制板

—10K电位器

电路

clip_image002

上面的接线图是用Frizing软件画的,如果您也想画这样的接线图的话,可以去Frizing官网下载。

转动电位器,你将能改变连接在控制板上电位器的阻值,改变着电位器中间引脚的电压。当电位器中间引脚和5V引脚阻值接近零欧的时候(另一端中间引脚和GND接近10K欧),这时中间引脚的电压接近5V。反之,则中间引脚的电压接近0V。这个电压值就是你能读到的模拟引脚输入值。

Arduino内部电路有一个叫“模拟—数字—转换器”(ADC),把读到的电压改变转换成0-1023,当电位器转向一面的的时候,电压值是0,输出值是0。当转入到另一面的时候,电压是是5V,输出值是1023。中间的数值,analogRead()函数将返回0-1023中和电压变化成比例的数值。

原理图

clip_image004

代码

在下面的示例中,你在setup函数中唯一要做的就是申明一个串口通信,以9600bits/second的速度在主控板与电脑之间通信。

Serial.begin(9600);

下一步,在主循环代码中,你需要建立一个变量来存储来自电位器数值变化(0-1023),最好用int的数据格式。

int sensorValue = analogRead(A0);

为了是0-1023的值能有对应电压值,我们需要创造另外一个变量,一个浮点值float,然后做一个适配,等比例分配0.0-5.0,用sensorValue把5.0分成1023份:

float voltage= sensorValue * (5.0 / 1023.0);

最后你需要显示你的信息到你的串口窗口上,你可以在代码最后用Serial.println()函数。

Serial.println(voltage)

现在当打开arduino编译器上的串口监视器的时候,当你转到电位器的时候,你可以看到数值在0.0-5.0之间变化,这个就是A0引脚读取到的电压。

void setup() {

// 串口通信频率设置为9600

Serial.begin(9600);

}

void loop() {

// 从模拟引脚A0读取

int sensorValue = analogRead(A0);

// 0-1023的数值等比率转变为0.0-5.0

float voltage = sensorValue * (5.0 / 1023.0);

// 输出你读到的数值

Serial.println(voltage);

}

未经允许不得转载:Arduino-Maker » 基础部分-读取模拟电压

支付宝扫码打赏 微信打赏

原创文章,若帮到您,欢迎打赏

分享到:更多 ()

评论 2

评论前必须登录!

 

  1. #1

    有的模块在Frizing里面找不到,是怎么弄的呀?

    j_11年前 (2018-06-10)
    • 第三方软件,您可以网上搜索一下教程。

      ZBST技术&售后1年前 (2018-06-13)

线上商城

中贝斯特创客空间蘑菇云创客教育