基本信息
文件名称:Arduino 系列:Arduino Leonardo (基于 ATmega32U4)_(14).Arduino Leonardo传感器应用.docx
文件大小:22.74 KB
总页数:16 页
更新时间:2025-06-27
总字数:约6.64千字
文档摘要

PAGE1

PAGE1

ArduinoLeonardo传感器应用

在本节中,我们将探讨如何在ArduinoLeonardo上使用各种传感器。传感器是Arduino项目中不可或缺的组件,它们可以收集环境数据、用户输入或其他物理信号,使Arduino能够根据这些输入做出相应的反应。我们将详细介绍一些常用的传感器,包括温度传感器、光敏传感器、按键传感器、超声波传感器和加速度传感器,并提供具体的代码示例。

温度传感器

DS18B20数字温度传感器

原理

DS18B20是一种数字温度传感器,可以测量-55°C至+125°C范围内的温度,精度可达±0.5°C。它通过1-Wire通信协议与Arduino进行数据交换,每个传感器都有一个唯一的64位序列号,因此可以在同一数据线上连接多个DS18B20传感器。

连接方式

VCC连接到5V或3.3V。

GND连接到GND。

数据线连接到数字引脚(例如D2),并使用一个4.7kΩ的上拉电阻连接到5V。

示例代码

//引入1-Wire库

#includeOneWire.h

//引入DallasTemperature库

#includeDallasTemperature.h

//定义DS18B20数据线连接的引脚

#defineONE_WIRE_BUS2

//创建OneWire对象

OneWireoneWire(ONE_WIRE_BUS);

//创建DallasTemperature对象

DallasTemperaturesensors(oneWire);

voidsetup(){

//初始化串口通信

Serial.begin(9600);

//初始化温度传感器

sensors.begin();

}

voidloop(){

//请求温度传感器数据

sensors.requestTemperatures();

//读取温度

floattemperature=sensors.getTempCByIndex(0);

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

Serial.print(当前温度:);

Serial.print(temperature);

Serial.println(°C);

//延时1秒

delay(1000);

}

说明

OneWire库用于处理1-Wire通信。

DallasTemperature库用于读取DS18B20传感器的温度数据。

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

光敏传感器

光敏电阻(LDR)

原理

光敏电阻(LDR)是一种电阻值随光线强度变化的传感器。在光线较暗时,其电阻值较高;在光线较亮时,其电阻值较低。通过将LDR与一个固定电阻串联,可以形成一个分压电路,Arduino的模拟引脚可以读取这个分压电路的电压值,从而计算出光线强度。

连接方式

LDR的一端连接到5V。

LDR的另一端连接到模拟引脚(例如A0)。

LDR的另一端还通过一个固定电阻(例如10kΩ)连接到GND。

示例代码

//定义LDR连接的模拟引脚

#defineLDR_PINA0

voidsetup(){

//初始化串口通信

Serial.begin(9600);

}

voidloop(){

//读取LDR的模拟值

intldrValue=analogRead(LDR_PIN);

//打印LDR的模拟值到串口监视器

Serial.print(LDR值:);

Serial.println(ldrValue);

//延时1秒

delay(1000);

}

说明

analogRead(LDR_PIN)函数用于读取LDR的模拟值,范围为0到1023。

通过这些模拟值,可以判断光线的强弱。

按键传感器

按键传感器

原理

按键传感器是一种简单的数字输入设备,当按键被按下时,引脚的电平会从高电平(通常是5V)变为低电平(通常是0V),或者反之。通过读取按键引脚的电平状态,Arduino可以判断按键是否被按下。

连接方式

按键的一端连接到数字引脚(例如D2)。

按键的另一端通过一个10kΩ的上拉电阻连接到5V。

按键的另一端还连接到GND。

示例代码

//定义按键连接的数字引脚

#defineBUTTON_PIN2

voidsetup(){

//设置按键引脚为输入模式

pinMode(BUTTON_PIN,INPUT)