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毫秒,这样就可以不断地读取并发送模拟数据。
相关文章
|
存储 数据中心 云计算
逻辑存储和物理存储各代表什么?区别是什么?
逻辑存储和物理存储各代表什么?区别是什么?
|
搜索推荐 算法 C#
【Unity 3D】C#中冒泡排序、选择排序、插入排序等算法的详解(附源码 超详细)
【Unity 3D】C#中冒泡排序、选择排序、插入排序等算法的详解(附源码 超详细)
473 1
|
2天前
|
人工智能 算法 安全
一个人=一支AI团队课题组!阿里云/本地部署 OpenClaw+ Discord 多 Agent 科研协作系统教程+百炼API配置及FAQ
2026年,科研工作的核心痛点仍集中在“重复劳动占用深度思考时间”——文献检索、数据预处理、实验记录、论文撰写等流程性工作,往往消耗科研人员40%以上的精力。而OpenClaw与Discord的组合,彻底改变了这一现状:通过搭建分工明确的5人AI科研团队(总指挥、文献调研、数据工程、算法研发、论文撰写),实现“文献自动扫描、实验全程追踪、论文智能起草”的全流程自动化,7×24小时不间断推进研究,让科研人员聚焦核心创新。
162 2
|
物联网
通过微信小程序体验阿里云IoT物联网平台
通过微信小程序体验阿里云IoT物联网平台
10137 0
|
传感器 存储 网络协议
Arduino 中的常见的库
Arduino 中的常见库包括:Wire(I2C通信)、SPI(串行外设接口)、Servo(伺服电机控制)、EEPROM(数据存储)、LiquidCrystal(液晶显示)等,这些库简化了硬件编程,提高了开发效率。
1507 3
|
传感器 算法 芯片
基于stm32的多旋翼无人机(Multi-rotor UAV based on stm32)(上)
基于stm32的多旋翼无人机(Multi-rotor UAV based on stm32)(上)
1918 0
如何在 Arduino 中使用 PWM
PWM(脉冲宽度调制)是 Arduino 中常用的技术,用于控制电机速度、LED 亮度等。通过设置数字引脚的 `analogWrite()` 函数,可以生成不同占空比的 PWM 信号,实现精确控制。
2405 2
|
10月前
|
机器学习/深度学习 人工智能 算法
Python+YOLO v8 实战:手把手教你打造专属 AI 视觉目标检测模型
本文介绍了如何使用 Python 和 YOLO v8 开发专属的 AI 视觉目标检测模型。首先讲解了 YOLO 的基本概念及其高效精准的特点,接着详细说明了环境搭建步骤,包括安装 Python、PyCharm 和 Ultralytics 库。随后引导读者加载预训练模型进行图片验证,并准备数据集以训练自定义模型。最后,展示了如何验证训练好的模型并提供示例代码。通过本文,你将学会从零开始打造自己的目标检测系统,满足实际场景需求。
10107 1
Python+YOLO v8 实战:手把手教你打造专属 AI 视觉目标检测模型
|
图形学 芯片
基于stm32的多旋翼无人机(Multi-rotor UAV based on stm32)(下)
基于stm32的多旋翼无人机(Multi-rotor UAV based on stm32)(下)
802 0
|
机器学习/深度学习 传感器 算法
基于Mediapipe深度学习算法的手势识别系统【含python源码+PyqtUI界面+原理详解】-python手势识别 深度学习实战项目
基于Mediapipe深度学习算法的手势识别系统【含python源码+PyqtUI界面+原理详解】-python手势识别 深度学习实战项目