求助大佬帮忙看看esp8266运行失败-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 373|回复: 6

[未解决] 求助大佬帮忙看看esp8266运行失败

[复制链接]
发表于 2022-5-17 12:03 | 显示全部楼层 |阅读模式
各位大佬,问下这个代码怎么才能再esp8266上面运行,串口输出错误,哪位大佬有空帮忙看看怎么改


  1. #include <DS18B20.h>
  2. #include <TM1637Display.h>

  3. #define CLK 4
  4. #define DIO 5
  5. #define LOW_ALARM a
  6. #define HIGH_ALARM b
  7. TM1637Display display(CLK, DIO);
  8. DS18B20 ds(10);
  9. int a=20;
  10. int b=30;
  11. int c=0;
  12. int d=0;
  13. float t=0;
  14. int j=0;
  15. int k=0;
  16. void abc(){
  17.   if((k==0)&&(j==1)){
  18.     k=1;
  19.     a++;  
  20.   }
  21.   if((k==0)&&(j==2)){
  22.     k=1;
  23.     b++;  
  24.   }
  25. }
  26. void xyz(){
  27. if((k==0)&&(j==1)){
  28.     k=1;
  29.     a--;  
  30.   }
  31.   if((k==0)&&(j==2)){
  32.     k=1;
  33.     b--;
  34.    }   
  35. }


  36. void setup() {
  37.   Serial.begin(9600);
  38. attachInterrupt(0, abc, FALLING );
  39.     attachInterrupt(1 ,xyz ,FALLING );
  40.    
  41.     pinMode(6,OUTPUT);
  42.      digitalWrite(6,LOW);  
  43.   pinMode(7,INPUT);
  44.      digitalWrite(7,HIGH);
  45.     ds.setAlarms(LOW_ALARM, HIGH_ALARM);
  46. display.setBrightness(0x0f);
  47. }

  48. void loop() {
  49.   if(digitalRead(7)==LOW)j++;
  50.   if(j>2)j=0;
  51. t=ds.getTempC();
  52. if(t<a)digitalWrite(6,HIGH);
  53. if(t>b)digitalWrite(6,LOW);
  54.   
  55.   if(j==0)display.showNumberDecEx(t*100, (0x80 >> 1), false);
  56.   if(j==1)display.showNumberDec(a, false);
  57.   if(j==2){
  58.     display.clear();
  59.     display.showNumberDec(b,0,2,false);
  60.   }  
  61. k=0;
  62. }
复制代码


发表于 2022-5-17 15:16 | 显示全部楼层
一步一步来,先读个温度值输出到串口,成功后再做数码管显示,再做报警,再做按键处理。。。
发表于 2022-5-17 16:35 | 显示全部楼层
中断要声明函数储存在RAM中的
发表于 2022-5-17 17:30 | 显示全部楼层
发表于 2022-5-17 17:58 | 显示全部楼层
本帖最后由 topdog 于 2022-5-17 18:04 编辑

用Mind+给你做了一下。
四段数码管接第4,5管脚,18b20接第9管脚,第6管脚按钮增加设定值,第7管脚按钮减小设定值,高于设定温度第8管脚高电平,低于设定温度第8管脚低电平。限制温度最高值超过100度。


18b20_tm1650.PNG

 楼主| 发表于 2022-5-18 10:53 | 显示全部楼层
topdog 发表于 2022-5-17 17:58
用Mind+给你做了一下。
四段数码管接第4,5管脚,18b20接第9管脚,第6管脚按钮增加设定值,第7管脚按钮减小 ...

先谢谢您的答疑,可能我描述不够准确,我想在esp8266(esp-12f)模块上跑这个代码,arduino检测代码验证通过,esp12f跑不起来,没任何反应;
我想法是通过ds18b20获取温度,显示到tm1637数码管上,然后通过3个实体按键(设置、加、减)在数码管上设置最高和最低温度,控制继电器开关。
20210324093705427.png 31eb41a66c7543da9af8343e405a1c3b.jpg
发表于 2022-5-18 11:10 | 显示全部楼层
本帖最后由 topdog 于 2022-5-18 11:11 编辑

你的话把我弄得闷头转向,你的意思uno上的程序要移植到esp12f上去。
你把程序烧录进去就可以了,但是这话说起来就长了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 05:37 , Processed in 0.274713 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表