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#中冒泡排序、选择排序、插入排序等算法的详解(附源码 超详细)
493 1
|
网络协议
校园网进不去B站/CSDN怎么办?一招搞定
校园网进不去B站/CSDN怎么办?一招搞定
3572 0
|
物联网
通过微信小程序体验阿里云IoT物联网平台
通过微信小程序体验阿里云IoT物联网平台
10157 0
|
传感器 存储 网络协议
Arduino 中的常见的库
Arduino 中的常见库包括:Wire(I2C通信)、SPI(串行外设接口)、Servo(伺服电机控制)、EEPROM(数据存储)、LiquidCrystal(液晶显示)等,这些库简化了硬件编程,提高了开发效率。
1581 3
|
传感器 算法 芯片
基于stm32的多旋翼无人机(Multi-rotor UAV based on stm32)(上)
基于stm32的多旋翼无人机(Multi-rotor UAV based on stm32)(上)
2006 0
如何在 Arduino 中使用 PWM
PWM(脉冲宽度调制)是 Arduino 中常用的技术,用于控制电机速度、LED 亮度等。通过设置数字引脚的 `analogWrite()` 函数,可以生成不同占空比的 PWM 信号,实现精确控制。
2482 2
|
8月前
|
传感器 人工智能 监控
【免费开源】基于STM32的智能宠物喂食系统设计与实现(全流程技术详解)附源码
本项目基于STM32F103C8T6设计实现智能宠物喂食系统,支持定时喂食、远程控制、余粮检测、语音提示等功能,结合传感器与物联网技术,提升宠物喂养智能化水平,适用于家庭及嵌入式课程实践。源码开源,具备良好扩展性。
【免费开源】基于STM32的智能宠物喂食系统设计与实现(全流程技术详解)附源码
|
11月前
|
机器学习/深度学习 人工智能 算法
Python+YOLO v8 实战:手把手教你打造专属 AI 视觉目标检测模型
本文介绍了如何使用 Python 和 YOLO v8 开发专属的 AI 视觉目标检测模型。首先讲解了 YOLO 的基本概念及其高效精准的特点,接着详细说明了环境搭建步骤,包括安装 Python、PyCharm 和 Ultralytics 库。随后引导读者加载预训练模型进行图片验证,并准备数据集以训练自定义模型。最后,展示了如何验证训练好的模型并提供示例代码。通过本文,你将学会从零开始打造自己的目标检测系统,满足实际场景需求。
10970 1
Python+YOLO v8 实战:手把手教你打造专属 AI 视觉目标检测模型
|
图形学 芯片
基于stm32的多旋翼无人机(Multi-rotor UAV based on stm32)(下)
基于stm32的多旋翼无人机(Multi-rotor UAV based on stm32)(下)
852 0