北邮信通导论第三单元数字温度计

数字温度计(显示温度+高温报警)

#include <U8glib.h>
#define INTERVAL_LCD 20       
unsigned long lcd_time = millis();  
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE);  

#define setFont_L u8g.setFont(u8g_font_7x13)
#define setFont_M u8g.setFont(u8g_font_fixed_v0r)
#define setFont_S u8g.setFont(u8g_font_fixed_v0r)
#define setFont_SS u8g.setFont(u8g_font_fub25n)

unsigned int tempMin=24;
unsigned int tempMax=27;

void setup() {
  Serial.begin(115200);
  analogReference(INTERNAL);
  pinMode(11,OUTPUT);
  digitalWrite(11,LOW);
}

void loop() {
  double analogVotage=1.1*(double)analogRead(A3)/1023;
  double temp=100*analogVotage;
  unsigned int dutyCycle;
  u8g.firstPage();  
    do {    
        setFont_L;    
        u8g.setPrintPos(0,10);    
        u8g.print(temp);
    }while (u8g.nextPage());
  if(temp<=tempMin){
    dutyCycle=0;
    digitalWrite(11,LOW);
  }
  else if(temp<tempMax){
    dutyCycle=(temp-tempMin)*255/(tempMax-tempMin);
    digitalWrite(11,LOW);
  }
  else{
    dutyCycle=255;
    digitalWrite(11,HIGH);
  }
  analogWrite(10,dutyCycle);
  Serial.print("Temp:");
  Serial.print(temp);
  Serial.print("Degress Duty cycle:");
  Serial.print(dutyCycle);
  delay(100);  
  }

 小白还没学过电路,如果图画得有问题请指出

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值