完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
我一直在努力让 wemos 处理来自多个按钮的按钮按下。我正在使用 MQTT 构建远程控制单元。
我读取按钮的代码只是一系列 if 语句,但 Wemos 一直崩溃,所以我将其更改为 do-while 循环。 现在的问题是它似乎只是使用了有效载荷的初始化,而不是发送我想要的东西。 String ButtonReading() { String payload = "NULL"; 做 { if(digitalRead(ButtonUp) == PRESSED) { String payload = "forward"; 按钮状态=按下; } if(digitalRead(ButtonDown) == PRESSED) { String payload = "backwards"; 按钮状态=按下; } if(digitalRead(ButtonLeft) == PRESSED) { String payload = "left"; 按钮状态=按下; } if(digitalRead(ButtonStop) == PRESSED) { String payload = "stop"; 按钮状态=按下; } 延迟(500); } while (Button_State == NOT_PRESSED); 返回有效载荷; } 以及作用于它的位: void loop() { // 确认仍然连接到 mqtt 服务器 if (!client.connected()) { Serial.println("重新连接"); 重新连接(); } 客户端循环(); Serial.println("读取按钮"); 字符串有效载荷 = ButtonReading(); // lcd.setCursor(1,2); // lcd.print("有效载荷:"); // lcd.setCursor(10,2); // lcd.print(有效载荷); 如果(Button_State == PRESSED) { lcd.setCursor(1,2); // 显示 lcd.print("payload:"); lcd.setCursor(10,2); // 显示 lcd.print(payload); 现在很长时间=毫秒(); if (now - lastMsg > timeBetweenMessages) { lastMsg = now; ++价值; 字符串 pubTopic = 主题; client.publish( (char*) pubTopic.c_str() , (char*) payload.c_str(), true ); } Button_State = NOT_PRESSED ; Serial.println("按钮清除"); // 液晶显示器.clear(); 延迟(0); } 延迟(0.2); 一些 额外的位用于调试目的。 |
|
相关推荐
1个回答
|
|
|
问题出在您在循环中声明了一个名为"payload"的新变量。在循环的每次迭代中,它都会重新定义为"NULL"。因此,您不会看到任何真正的按钮读数,因为它们只是在循环内部被定义并且在循环之外不可访问。
为了解决这个问题,请修改您的代码,以便在循环之外声明payload变量,然后在循环内部不要再重新对它进行赋值: String ButtonReading() { String payload = "NULL"; do { if(digitalRead(ButtonUp) == PRESSED) { payload = "forward"; buttonState = PRESSED; } // ... } while(buttonState == PRESSED); return payload; } 这样您就可以在循环完成后返回正确的按钮读数,并且不会重新定义"payload"变量。 |
|
|
|
|
只有小组成员才能发言,加入小组>>
389 浏览 0 评论
953 浏览 0 评论
1679 浏览 0 评论
请问一下我想用ESP8685直接替换ESP8266而不用写程序,可以让ESP8685直接通过之前ESP8266的外挂的flash运行程序吗
1337 浏览 1 评论
1235 浏览 1 评论
为blufi_device设置自定义名称,但是无法修改,为什么?
1257浏览 4评论
请问ESP32-S2-WROOM怎么获得ESP32-S2外接FLASH的唯一序列号?
931浏览 3评论
2345浏览 3评论
ESP-IDF的VScode插件的build按钮点击会报错的原因?
2533浏览 3评论
ESP-Jumpstart例程中第5个工程:5_cloud连接报错是哪里的问题?
1054浏览 2评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-4 10:18 , Processed in 0.760918 second(s), Total 75, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
702
