1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我正在通过 mqtt 发送步长值来控制我的百叶窗
如果我不使用禁用看门狗,那么我会在第 100 步附近崩溃,如果我使用看门狗,我会在第 1300 步附近出现错误。 我该如何解决? ets Jan 8 2013,rst cause:4, boot mode:(3,6) wdt reset load 0x4010f000, len 3456, room 16 tail 0 chksum 0x84 csum 0x84 va5432625 ~ld 代码:全选#include #include #include #define Motor1_Dir 5 #define Motor1_Step 4 const char* ssid = "xxx"; const char* password = "xxx"; const char* mqtt_server = "xxx"; const char* mqttUser = "xxx"; const char* mqttPassword = "xxx"; int value; bool flag1; AccelStepper stepper(1, Motor1_Step, Motor1_Dir); WiFiClient espClient; PubSubClient client(espClient); void setup_wifi() { delay(10); Serial.println(); Serial.print("Connecting to "); Serial.println(ssid); WiFi.mode(WIFI_STA); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } randomSeed(micros()); Serial.println(""); Serial.println("WiFi connected"); Serial.println("IP address: "); Serial.println(WiFi.localIP()); } void callback(char* topic, byte* payload, unsigned int length) { Serial.print("Message arrived ["); Serial.print(topic); Serial.print("] "); value = 0; int tensValue = 1; for (int i = length - 1; i >=0; i--) // iterate backwards { value += (payload - '0') * tensValue ; tensValue = tensValue * 10; } flag1 = true; // for (int i = 0; i < length; i++) // { // Serial.print((char)payload); // value = (char)payload [length -1]; // flag1 = true; // } // Serial.println(); // Serial.print("Mesaj Geldi"); } void reconnect() { while (!client.connected()) { Serial.print("Attempting MQTT connection..."); if (client.connect("alkan")) { Serial.println("connected"); client.subscribe("Alkan/perde"); } else { Serial.print("failed, rc="); Serial.print(client.state()); Serial.println(" try again in 3 seconds"); delay(3000); } } } void setup() { Serial.begin(115200); setup_wifi(); client.setServer(mqtt_server, 1883); client.setCallback(callback); stepper.setMaxSpeed(200); stepper.setAcceleration(100); // stepper.setSpeed(200); } void loop() { if (!client.connected()) { reconnect(); } client.loop(); { if( flag1 == true ) { // stepper.enableOutputs(); // Serial.println("1"); // ESP.wdtFeed(); // yield(); ESP.wdtDisable(); stepper.moveTo(value); stepper.runToPosition(); // yield(); // ESP.wdtFeed(); // Serial.println("2"); Serial.println(); Serial.println("Stop at:"); delay(100); Serial.print(value); Serial.println(); flag1 = false; // stepper.disableOutputs(); // Serial.println("3"); ESP.wdtEnable(1000); } } } |
|
相关推荐 |
|
只有小组成员才能发言,加入小组>>
358 浏览 0 评论
1202 浏览 1 评论
591浏览 6评论
485浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
468浏览 5评论
467浏览 4评论
445浏览 4评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-31 02:50 , Processed in 0.901549 second(s), Total 73, Slave 57 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号