首页 > 解决方案 > 按钮按下打开 OLED ESP32

问题描述

我正在开发一个 DHT22 传感器,当按下按钮时,它会在 OLED 上显示读数。我正在使用 Arduino IDE。现在我的传感器工作并显示在屏幕上,但我很难让它只在按下按钮时打开。GPIO 13 当前正在从传感器获取信号,GPIO 26 与电源和接地一起连接到物理按钮。所有带有“// added”的代码都是我为了让按钮工作而添加的新代码。任何帮助是极大的赞赏!

在顶部我添加了:

const int ButtonPin = 26; //added
const int PushButton;      //added

我收到错误消息:

退出状态 1
未初始化的 const 'PushButton' [-fpermissive]

setup我添加的功能中:

pinMode(ButtonPin, OUTPUT); //added
pinMode(PushButton, INPUT)://added

loop功能中我添加了:

    int Push_button_state = digitalRead(PushButton); //added
    if (Push_button_state == HIGH) //added
        float h = dht.readHumidity();
    // Read temperature as Celsius
    float t = dht.readTemperature();

    u8g2.firstPage();
    do {
        draw();
    } while ( u8g2.nextPage() );
    delay(1000);
}
else {  //added

标签: c++buttonarduinoesp32

解决方案


我认为你不清楚你想要实现什么。首先,您只需要ButtonPin变量即可使用按钮。由于您的按钮连接到 GPIO 26,因此您必须将此引脚声明为 INPUT。稍后,您应该使用digitalWrite函数来获取引脚的状态。根据您连接按钮的方式,按下按钮时您将收到“0”或“1”。无论如何,我一直在使用一个非常舒适的库来处理 Arduino 上的按钮,请在此处查看。我希望这会有所帮助


推荐阅读