c++ - 按钮按下打开 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
解决方案
我认为你不清楚你想要实现什么。首先,您只需要ButtonPin变量即可使用按钮。由于您的按钮连接到 GPIO 26,因此您必须将此引脚声明为 INPUT。稍后,您应该使用digitalWrite函数来获取引脚的状态。根据您连接按钮的方式,按下按钮时您将收到“0”或“1”。无论如何,我一直在使用一个非常舒适的库来处理 Arduino 上的按钮,请在此处查看。我希望这会有所帮助
推荐阅读
- html - 当有 22 个或更多元素时,为什么我的数组被转换为对象?(节点)
- bash - makefile中的for循环不起作用
- python - Python 作为字典或 JSON 登录文件
- sql-server - How to fill DataTable from multiple tables?
- grails - grails 3.3 detachedcriteria appears to give incorrect result
- javascript - 空检查对象不起作用
- c++ - c++迭代器类型
- angular - Angular:如何从不同模块中的另一个组件调用组件方法
- java - 如何将子类成员的类型视为它自己的类型而不是 Java 中的父类型?
- javascript - Dynamic Select Box Dependent Using MySQL Database