Arduino的模拟信号输入 您所在的位置:网站首页 sfan1接口电压 Arduino的模拟信号输入

Arduino的模拟信号输入

2024-02-10 14:41| 来源: 网络整理| 查看: 265

Arduino可以使用数字信号和模拟信号进行输入和输出。

其中数字信号只有两个值,即高电压1和低电压0。

数字信号输入和输出为

pinModde(pin,mode); int value=digitalRead(pin);//输入该接口的信号 int value=digitalWrite(pin,HIGH);//输入高电平

其中pin为引脚,可以在之前就定义如

int pin=4;

然后mode即为该引脚的模式,有三种为 OUTPUT , INPUT , INPUT_PULLUP

其中INPUT_PULLUP为输入电压上拉,如果不设置上拉,而且现状态没有固定电压的话,他的电压会呈现高低无规律的变化。电压上拉即为当没有固定电压时,使得改引脚为高电压模式。

模拟信号的输入和输出为

int value=analogRead(pin);//输入该接口的信号 int value=analogWrite(pin);//输出信号

模拟信号的输入是Arduino开发板上的ANALOG IN五个接口;而模拟信号的输出实际上并不是模拟信号。而是以一钟特殊的方式来达到近似模拟输入的结果。这种方式叫做脉冲宽度调试(PWM,Pulse Width Modulation)。在Arduino UNO中,提供这个的引脚为3,5,6,9,10,11。

然后这里给出一个信号输入输出的实际例子

由数字信号输出,然后模拟信号输入。

电路如下

Arduino程序如下

int in=4; int out=A1; void setup() { pinMode(in,OUTPUT); pinMode(out,INPUT); Serial.begin(9600); //打开串口,设置波特率为9600bps delay(1000); } void loop() { digitalWrite(in,HIGH); //首先使得输入高电平,即为5v delay(1000); int value=0; //定义值为0,也可以在程序一开始定义 value=analogRead(out); //使模拟信号输入的值为value float val=value*(5.0/1023.0); //由于模拟信号输入的值为0到1023的值,即为0到5v的值,这里可以转换一下 Serial.println(val); //输出该点的电平是多少 delay(1000); digitalWrite(in,LOW); //当输入为低电平,即为0v delay(1000); value=analogRead(out); val=value*(5.0/1023.0); Serial.println(val); delay(1000); }

其中模拟信号引脚可以接到第二和第三和电阻之前,又会是一个和上述不同的电平情况。

当接到第一个电阻之前时,输入的模拟电压的5v和0v交替变化。

当接到第三个电阻之后时,输入的模拟电压为0v。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有