Arduino 中用于从传感器读取模拟和数字数据的函数

简介: Arduino 提供了多种函数,用于从传感器读取模拟和数字数据。模拟数据通过 `analogRead()` 函数读取,数字数据则使用 `digitalRead()` 函数。这些函数简单易用,适用于各种传感器,帮助开发者轻松获取环境信息。
  1. 数字数据读取函数

    • 在Arduino中,读取数字引脚的状态可以使用digitalRead()函数。
    • 函数原型digitalRead(pin),其中pin是要读取的引脚编号,这个编号是Arduino板上的物理引脚编号。例如,在Arduino Uno板上,数字引脚编号范围是0 - 13。
    • 返回值:该函数返回值为HIGH(高电平,通常代表逻辑1)或者LOW(低电平,通常代表逻辑0)。
    • 示例代码
      int ledPin = 13;   // 将引脚13定义为LED引脚
      int buttonPin = 2;  // 将引脚2定义为按钮引脚
      void setup() {
      pinMode(ledPin, OUTPUT);
      pinMode(buttonPin, INPUT);
      }
      void loop() {
      int buttonState = digitalRead(buttonPin);
      if (buttonState == HIGH) {
        digitalWrite(ledPin, HIGH);
      } else {
        digitalWrite(ledPin, LOW);
      }
      }
      
    • 在这个示例中,首先在setup()函数中设置ledPin为输出引脚,buttonPin为输入引脚。然后在loop()函数中,通过digitalRead(buttonPin)读取按钮引脚的状态。如果按钮被按下(引脚为高电平),则点亮连接在ledPin上的LED;如果按钮未按下(引脚为低电平),则熄灭LED。
  2. 模拟数据读取函数

    • 对于模拟数据的读取,Arduino使用analogRead()函数。
    • 函数原型analogRead(pin),这里的pin是要读取的模拟输入引脚编号。在Arduino Uno板上,模拟输入引脚编号通常是A0 - A5。
    • 返回值:该函数返回一个0 - 1023之间的整数值,这个值与输入的模拟电压成比例。例如,对于一个0 - 5V的模拟输入范围,0V对应的返回值是0,5V对应的返回值是1023。
    • 示例代码
      int analogPin = A0;  // 选择模拟引脚A0
      int sensorValue;
      void setup() {
      Serial.begin(9600);
      }
      void loop() {
      sensorValue = analogRead(analogPin);
      Serial.println(sensorValue);
      delay(100);
      }
      
    • 在这个示例中,在setup()函数中初始化串口通信,波特率为9600。然后在loop()函数中,通过analogRead(analogPin)读取模拟引脚A0的电压值,并将这个值存储在sensorValue变量中。接着通过Serial.println(sensorValue)将这个值发送到串口监视器,并且通过delay(100)函数暂停100毫秒,这样就可以不断地读取并发送模拟数据。
相关文章
|
传感器
STM32:红外传感器代码部分(内含实物图+外部信号流程,编写代码思路+代码+解析代码和扩展应用)
STM32:红外传感器代码部分(内含实物图+外部信号流程,编写代码思路+代码+解析代码和扩展应用)
3780 0
STM32:红外传感器代码部分(内含实物图+外部信号流程,编写代码思路+代码+解析代码和扩展应用)
|
6月前
|
数据采集 网络架构
LabVIEW控制DO通道输出一个精确定时的数字波形
LabVIEW控制DO通道输出一个精确定时的数字波形
86 4
|
6月前
LabVIEW编更改研华数字板卡中DIO方向 例程与相关资料
LabVIEW编更改研华数字板卡中DIO方向 例程与相关资料
31 2
|
物联网
STM32:TIM输入捕获硬件部分(内含:1.输入捕获简介+2.频率测量+3.通用/高级定时器的输入捕获电路分析(重点)+4.主从触发模式+5.输入捕获基本结构(重点)+6.PWM基本结构)
STM32:TIM输入捕获硬件部分(内含:1.输入捕获简介+2.频率测量+3.通用/高级定时器的输入捕获电路分析(重点)+4.主从触发模式+5.输入捕获基本结构(重点)+6.PWM基本结构)
521 0
STM32:TIM输入捕获硬件部分(内含:1.输入捕获简介+2.频率测量+3.通用/高级定时器的输入捕获电路分析(重点)+4.主从触发模式+5.输入捕获基本结构(重点)+6.PWM基本结构)
【单片机期中测试】13.串口通信的应用(2)—— 超声波通过串口返回数据
【单片机期中测试】13.串口通信的应用(2)—— 超声波通过串口返回数据
103 0
|
C语言 芯片
单片机|I/O输出功能
单片机|I/O输出功能
109 0
|
数据采集 传感器 编解码
LabVIEW控制Arduino采集多路模拟量、数字量(进阶篇—1)
数据采集,是指从传感器和其他待测设备的模拟和数字被测单元中自动采集信息的过程。能够实现数据采集功能的系统叫作数据采集系统。
|
传感器
LabVIEW控制Arduino采集多路DS18B20温度数值(进阶篇—3)
本篇博文将实现LabVIEW控制Arduino采集多路DS18B20温度数值,关于LabVIEW控制Arduino在基础篇已经讲解过很多种类温度传感器的采集方法。
LabVIEW控制Arduino采集光敏电阻数值(基础篇—14)
利用光敏电阻和LIAT中的光敏函数库,通过Arduino Uno控制板的模拟端口采集与光敏电阻串联电阻的分压值上传给LabVIEW软件,并除以光照系数以获得光照值,实现一个光强计的功能。
LabVIEW控制Arduino采集热敏电阻温度数值(基础篇—13)
利用热敏电阻和LIAT中的热敏电阻函数节点,通过Arduino Uno控制板的模拟端口采集与热敏电阻串联电阻的分压值上传给LabVIEW软件,并除以温度系数以获得温度值,实现一个温度计的功能。