基本信息
文件名称:Arduino 系列:Arduino Uno (基于 ATmega328P)_(12).外部传感器连接.docx
文件大小:21.54 KB
总页数:13 页
更新时间:2025-06-27
总字数:约5.87千字
文档摘要

PAGE1

PAGE1

外部传感器连接

在嵌入式系统中,外部传感器是获取环境数据和实现各种功能的关键部件。ArduinoUno提供了丰富的接口,可以方便地连接各种外部传感器。本节将详细介绍如何连接和使用常见的外部传感器,包括温度传感器、光敏传感器、超声波传感器和加速度传感器等。

温度传感器

温度传感器用于测量环境温度,常见的温度传感器有DS18B20、DHT11和DHT22等。我们将以DS18B20为例,介绍如何连接和读取温度数据。

连接DS18B20温度传感器

DS18B20是一种数字温度传感器,使用1-Wire协议进行通信。连接DS18B20到ArduinoUno的步骤如下:

引脚连接:

DS18B20的VCC引脚连接到Arduino的5V。

DS18B20的GND引脚连接到Arduino的GND。

DS18B20的数据引脚(DQ)连接到Arduino的数字引脚(例如D2)。

在DS18B20的数据引脚和VCC之间连接一个4.7kΩ的上拉电阻。

库文件:

使用OneWire和DallasTemperature库来简化通信和数据读取。可以在ArduinoIDE中通过库管理器安装这两个库。

代码示例

//引入必要的库

#includeOneWire.h

#includeDallasTemperature.h

//定义数据引脚

#defineONE_WIRE_BUS2

//创建OneWire对象

OneWireoneWire(ONE_WIRE_BUS);

//创建DallasTemperature对象

DallasTemperaturesensors(oneWire);

voidsetup(){

//初始化串口通信

Serial.begin(9600);

//初始化温度传感器

sensors.begin();

}

voidloop(){

//请求温度数据

sensors.requestTemperatures();

//读取温度数据

floattemperatureC=sensors.getTempCByIndex(0);

//打印温度到串口监视器

Serial.print(Temperature:);

Serial.print(temperatureC);

Serial.println(C);

//延时1秒

delay(1000);

}

代码解释

OneWire和DallasTemperature库:这两个库简化了1-Wire协议的通信和温度数据的读取。

oneWire对象:通过指定数据引脚(D2)创建OneWire对象。

sensors对象:通过OneWire对象创建DallasTemperature对象。

sensors.begin():初始化温度传感器。

sensors.requestTemperatures():请求温度传感器读取温度数据。

sensors.getTempCByIndex(0):获取第一个温度传感器的温度数据,单位为摄氏度。

Serial.print()和Serial.println():通过串口监视器打印温度数据。

delay(1000):每秒读取一次温度数据。

光敏传感器

光敏传感器用于测量环境光强度,常见的光敏传感器有光敏电阻(LDR)和BH1750等。我们将以光敏电阻为例,介绍如何连接和读取光强度数据。

连接光敏电阻

光敏电阻是一种电阻值随光照强度变化的传感器。连接光敏电阻到ArduinoUno的步骤如下:

引脚连接:

光敏电阻的一端连接到5V。

光敏电阻的另一端连接到一个10kΩ的电阻,然后连接到GND。

光敏电阻和10kΩ电阻的连接点连接到Arduino的模拟引脚(例如A0)。

读取光强度数据:

使用analogRead()函数读取模拟引脚的电压值,然后转换为光强度。

代码示例

//定义光敏电阻引脚

#defineLDR_PINA0

voidsetup(){

//初始化串口通信

Serial.begin(9600);

}

voidloop(){

//读取光敏电阻的电压值

intldrValue=analogRead(LDR_PIN);

//打印电压值到串口监视器

Serial.print(LightIntensity:);

Serial.print(ldrValue);

Serial.println();

//延时1秒

delay(