南京凯基特电气有限公司主要生产销售压力变送器、称重传感器、拉压力传感器、扭矩传感器、测力传感器系列产品!
全国服务热线
025-66098387
称重传感器技术知识
用Arduino连接传感器?手把手教你读取环境信息!
时间: 2021-10-10 23:19:15 浏览次数:0

“入手了Arduino和几个传感器,可怎么连线?代码怎么写才能读出温度、光线这些数据?”

这是许多初探电子世界的爱好者面临的第一个实用关卡。传感器如同Arduino的”感官”,使其能感知物理世界的光线、温度、压力、运动等。掌握连接与读取传感器的技能,是迈出智能设备项目的第一步。本文将循序渐进,带你轻松掌握核心步骤。

一、 准备工作:核心组件与软件环境

  1. Arduino开发板: 项目的”大脑”,负责执行代码和处理数据(如常见的Uno、Nano、Mega)。
  2. 目标传感器: 根据项目需求选择,如DHT11/DHT22(温湿度)、MQ-2(气体)、HC-SR04(超声波测距)、光敏电阻(光线强度)、土壤湿度传感器等。
  3. 连接线(杜邦线): 用于连接传感器引脚与Arduino扩展板(面包板)或开发板本身。推荐使用公对公或公对母线。
  4. 面包板(可选但强烈推荐): 用于快速搭建和测试电路,无需焊接。
  5. Arduino IDE: Arduino官方集成开发环境,用于编写、编译并上传代码到开发板。确保安装最新版。
  6. 必要的库文件: 许多复杂传感器(如DHT系列、某些陀螺仪)需要特定库支持才能简化编程。可通过IDE的“库管理器”搜索安装。

二、 硬件连接:搭建感知通路

连接是读取数据的基础,务必谨慎操作,避免短路或接错损坏设备。核心步骤如下:

  1. 识别传感器引脚: 仔细查看传感器模块或数据手册,明确其引脚定义。常见引脚包括:
  • VCC/V+: 电源正极(通常接5V或3.3V,视传感器工作电压而定)。
  • GND: 电源负极/接地(必须可靠连接到Arduino的GND)。
  • 信号输出 (OUT/SIG/DATA/AO等): 传感器数据输出引脚,连接到Arduino的数字引脚(Digital Pin)模拟引脚(Analog Pin)
  • 部分传感器可能还有控制引脚(如TRIG、ECHO、EN等)。
传感器类型 输出信号 典型接口引脚 特点
数字传感器 0或1(高低电平) Arduino 数字引脚 输出简单,读取方便(digitalRead()
模拟传感器 连续变化电压值 Arduino 模拟引脚 数值连续,需转换(analogRead()
数字通信(I2C/SPI) 数据包 专用通信引脚 可并联多个设备,传输效率高
  1. 连接电源:
  • 将传感器的VCC引脚连接到Arduino的5V3.3V输出引脚(务必严格遵循传感器要求!)。
  • 将传感器的GND引脚连接到Arduino的任意GND引脚。
  • 注意: 确保电源极性正确,反接极易损坏传感器!
  1. 连接信号线:
  • 将传感器的数据/信号输出引脚连接到Arduino的一个可用引脚
  • 数字信号(如按钮、数字触摸传感器):连接到任意数字引脚(如2, 3, 4, … 13)。
  • 模拟信号(如光敏电阻、模拟摇杆):连接到标有A0, A1, … A5(Uno/Nano)的模拟输入引脚。
  • 特殊协议传感器(如I2C, SPI):需要连接到特定的引脚(如I2C通常是A4/SDA, A5/SCL;SPI通常是10(SS), 11(MOSI), 12(MISO), 13(SCK))。这类传感器通常依赖库文件简化操作。
  1. 检查与上电:
  • 在连接Arduino USB线之前,务必再次仔细检查所有连线! 重点确认电源(VCC/GND)无短路(相互触碰)或错接。
  • 确认无误后,连接Arduino到电脑USB口。传感器上的电源指示灯(如果有)应常亮。

三、 软件编程:编写数据读取指令

硬件通路建立后,需要代码指令让Arduino主动去获取传感器的数据。在Arduino IDE中实现:

  1. 包含必要库文件: 如果传感器需要库(如DHT sensor library, Adafruit_Sensor),在代码开头使用#include引入。
#include  // 以DHT温湿度传感器为例
  1. 定义连接引脚:
  • 为传感器连接的信号引脚定义一个易记的常量变量。
#define DHTPIN 2 // 假设DHT的DATA引脚连接在Arduino数字引脚2上
#define DHTTYPE DHT11 // 指定传感器类型为DHT11
DHT dht(DHTPIN, DHTTYPE); // 创建DHT传感器对象
  1. 初始化设置(setup()函数):
  • 启动串行通信,用于后续在电脑上查看数据(调试关键步骤!)。
void setup() {
Serial.begin(9600); // 开启串口,波特率设为9600(需与串口监视器设置一致)
dht.begin(); // 初始化DHT传感器(对于需要初始化的库)
// 其他初始化代码,如设置引脚模式(对于数字输入传感器,可能需要pinMode(pin, INPUT))
}
  1. 主循环读取数据(loop()函数):
  • loop()中编写读取传感器数据的代码,这是核心步骤
  • 读取数字传感器: 使用digitalRead(pin)函数。返回值为HIGHLOW
int sensorState = digitalRead(3); // 假设数字传感器接在引脚3
Serial.print("Sensor State: ");
Serial.println(sensorState == HIGH ? "ON" : "OFF"); // 将状态转为文字输出
  • 读取模拟传感器: 使用analogRead(pin)函数。返回值范围是0-1023(对应0V-5V),需根据传感器特性转换为物理量
int sensorValue = analogRead(A0); // 假设模拟传感器(如光敏电阻)接在A0
Serial.print("Raw Analog Value: ");
Serial.println(sensorValue);
// 示例:将光敏电阻值转换为更直观的百分比(需根据实际电路调整转换公式)
float lightPercent = map(sensorValue, 0, 1023, 100, 0); // 假设值越小光线越强
Serial.print("Light Level: ");
Serial.print(lightPercent);
Serial.println("%");
  • 读取复杂传感器(使用库): 调用库提供的函数读取数据,通常直接返回处理
南京凯基特电气有限公司

Copyright © 南京凯基特电气有限公司 版权所有 苏ICP备12080292号-5
全国服务电话:025-66098387传真:025-87168200
公司地址:江苏省南京市江宁区科宁路777号申智滙谷9栋101

电话
服务电话:
025-66075066
微信

微信公众号