搜索代码

ESP32教程18/55 - 使用ESP32检测倾斜 | SunFounder的ESP32物联网学习套件

ESP32教程18/55 - 使用ESP32检测倾斜 | SunFounder的ESP32物联网学习套件

在本教程中,我们将使用SunFounder ESP32微控制器创建一个简单的项目,通过倾斜开关检测倾斜。当倾斜开关被触发时,LED将熄灭,而当其处于直立位置时,LED将亮起。这个项目不仅是使用倾斜传感器的一个很好的入门,也为各种机器人应用奠定了基础。如需详细的视觉指南,请务必观看上方链接的视频(视频中00:00处)。

倾斜开关

硬件说明

本项目使用的主要组件包括ESP32微控制器、倾斜开关和LED。ESP32是一款功能强大的微控制器,内置Wi-Fi和蓝牙,非常适合物联网应用。倾斜开关是一种简单设备,内部包含一个金属球。当倾斜时,球会移动并断开电路,从而让我们检测到倾斜状态。LED将根据开关状态直观地显示倾斜状态。除了这些组件外,我们还将使用电阻进行限流和下拉。连接到LED的220欧姆电阻确保LED安全运行,不会消耗过多电流。10k欧姆电阻作为倾斜开关的下拉电阻,确保在开关未激活时输入引脚读取到已知状态。

数据手册详情

制造商 SunFounder
零件编号 ESP32
逻辑/IO电压 3.3 V
电源电压 5 V
输出电流(每通道) 12 mA
峰值电流(每通道) 40 mA
PWM频率指南 1 kHz
输入逻辑阈值 0.8 V(低),2.0 V(高)
压降 / RDS(on) / 饱和 0.2 V
热限制 85 °C
封装 ESP32模块
备注 / 变体 包含Wi-Fi和蓝牙功能

 

  • 确保使用正确的电阻值以防止损坏LED。
  • 保持布线整洁以避免短路。
  • 使用下拉电阻以确保倾斜开关的稳定读数。
  • 在给电路供电前测试连接,以避免组件故障。
  • 验证倾斜开关的方向以确保功能准确。

接线说明

ESP32-18_tile_wiring

要连接组件,首先从倾斜开关开始,它没有极性,因此可以任意方向连接。将倾斜开关的一个引脚连接到3.3V电源,另一个引脚连接到ESP32上的引脚14。为确保开关未激活时引脚14读取到已知状态,请从同一引脚连接一个10k欧姆电阻到地。接下来,将LED插入面包板,长腿(阳极)连接到220欧姆电阻。将电阻的另一端连接到ESP32上的引脚26。LED的短腿(阴极)应连接到地。最后,将ESP32的地引脚连接到面包板的地轨,3.3V引脚连接到电源轨。务必仔细检查所有连接,以防止短路或错误读数。如果按照这些步骤操作,您应该拥有一个功能正常的倾斜传感器设置,可以开始编程。

代码示例与讲解

代码首先定义倾斜开关和LED的引脚编号。倾斜开关连接到引脚14,LED连接到引脚26。倾斜开关的状态存储在变量tiltState中。


// 设置引脚编号
const int tiltPin = 14;  // 倾斜开关
const int ledPin = 26;   // LED

// 用于存储倾斜状态的变量
int tiltState = 0;

此摘录显示了引脚分配以及将跟踪倾斜状态的变量的声明。tiltPin被设置为输入以读取开关状态。在setup()函数中,初始化串行通信,并为倾斜开关和LED设置引脚模式。这确保ESP32能够读取倾斜开关的输入并相应地控制LED。


void setup() {
  Serial.begin(115200);
  // 将倾斜引脚初始化为输入
  pinMode(tiltPin, INPUT);
  // 将LED引脚初始化为输出
  pinMode(ledPin, OUTPUT);
}

此部分至关重要,因为它设置了环境,使ESP32能够有效通信并根据倾斜开关状态控制输出。loop()函数持续检查倾斜开关的状态。如果开关处于直立位置,LED将亮起;如果倾斜,LED将熄灭。当前状态将打印到串行监视器以进行调试。


void loop() {
  // 读取倾斜开关的状态
  tiltState = digitalRead(tiltPin);

  Serial.println(tiltState);
  // 如果开关处于直立位置
  if (tiltState == HIGH) {
    // 打开LED
    digitalWrite(ledPin, HIGH);
  } else {
    // 关闭LED
    digitalWrite(ledPin, LOW);
  }
}

此循环持续运行,允许实时监控倾斜开关状态并相应控制LED。输出可以在串行监视器中观察到,便于验证功能。

演示 / 预期效果

一旦所有接线正确且代码上传完成,你应该会看到当倾斜开关直立时LED亮起,倾斜时LED熄灭。倾斜状态与LED响应之间的这种直接关联有效展示了倾斜开关的功能。常见的陷阱包括确保接线正确,以及验证电阻是否适当放置以避免短路(视频中12:00处)。

视频时间戳

  • 00:00 开始
  • 1:44 项目介绍
  • 2:49 文档说明
  • 6:43 Arduino接线讲解
  • 10:39 Arduino代码讲解
  • 13:40 在Arduino IDE中选择ESP32开发板和COM端口
  • 15:22 项目倾斜演示

图像

ESP32-18_tile_wiring
ESP32-18_tile_wiring
tilt_switch
tilt_switch
ESP32-18_tile_schematic
ESP32-18_tile_schematic
817-ESP32 Tutorial 18/55- Arduino code for tilt sensor
语言: C++
/*
 * // 设置引脚编号
 */
const int tiltPin = 14; // 倾斜开关
const int ledPin = 26; // LED

 // 用于存储倾斜状态的变量
int tiltState = 0;

void setup() {
  Serial.begin(115200);
 // 将倾斜销初始化为输入
  pinMode(tiltPin, INPUT);
 // 将LED引脚初始化为输出。
  pinMode(ledPin, OUTPUT);
}

void loop() {
 // 读取倾斜开关的状态
  tiltState = digitalRead(tiltPin);

  Serial.println(tiltState);
 // 如果开关是竖着的
  if (tiltState == HIGH) {
 // 打开LED
    digitalWrite(ledPin, HIGH);

  } else {
 // 关闭LED
    digitalWrite(ledPin, LOW);
  }
}

资源与参考

文件📁

没有可用的文件。