首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >tinkercad arduino液晶屏不显示

tinkercad arduino液晶屏不显示
EN

Stack Overflow用户
提问于 2018-05-24 00:09:28
回答 1查看 2.5K关注 0票数 1

我希望它是如何工作的:这是一个检查温度并显示温度和我想要的温度的东西。您可以使用按钮更改所需的温度。一个很高,另一个是low.If,温度更高,风扇出现on.If,当温度高于我想要的温度时,spaeaker响起一次。

代码中似乎没有错误,但液晶屏没有显示任何内容。扬声器,TMP,马达似乎工作正常,这是奇怪的。请告诉我出了什么问题。

代码:

*

代码语言:javascript
复制
[//LCD_Thermostat
  #include <Wire.h>
  #define TEMP_ADDR 72
  #include <LiquidCrystal.h>
  LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
  byte degree\[8\] = {
   B00110,
   B01001,
   B01001,
   B00110,
   B00000,
   B00000,
   B00000,
   B00000,
 };
byte fan_on\[8\] = {
  B00100,
  B10101,
  B01110,
  B11111,
  B01110,
  B10101,
  B00100,
  B00000,
};
 byte fan_off\[8\] = {
  B00100,
  B00100,
  B00100,
  B11111,
  B00100,
  B00100,
  B00100,
  B00000,
};
const int SPEAKER=8;
const int DOWN_BUTTON =9;
const int UP_BUTTON=10;
const int FAN =11;
const int T0=0;
boolean lastDownTempButton    = LOW;
boolean currentDownTempButton = LOW;
boolean lastUpTempButton      = LOW;
boolean currentUpTempButton       = LOW;
int set_temp = 23;          
boolean one_time = false;   
void setup()
{
  pinMode(FAN, OUTPUT);

  //Create a wire object for the temp sensor
  Wire.begin();

  //Set up the LCD's number of columns and rows
  lcd.begin(16, 2);

  //Make custom characters
  lcd.createChar(0, degree);
  lcd.createChar(1, fan_off);
  lcd.createChar(2, fan_on);

  //Print a static message to the LCD
  lcd.setCursor(0,0);
  lcd.print("Current:");
  lcd.setCursor(10,0);
  lcd.write((byte)0);
  lcd.setCursor(11,0);
  lcd.print("C");
  lcd.setCursor(0,1);
  lcd.print("Set:");
  lcd.setCursor(10,1);
  lcd.write((byte)0);
  lcd.setCursor(11,1);
  lcd.print("C");
  lcd.setCursor(15,1);
  lcd.write(1); 

}
boolean debounce(boolean last, int pin)
{
  boolean current = digitalRead(pin);
  if (last != current)
  {
    delay(5);
    current = digitalRead(pin);
  }
  return current;
}
void loop()
{/*
  Wire.beginTransmission(TEMP_ADDR); 
  Wire.write(0);                         
  Wire.endTransmission();              
  Wire.requestFrom(TEMP_ADDR, 1);   
  while(Wire.available() == 0);          
  int c = Wire.read();  
  */
  // for LM35 temperature sensor (Chapter3. 아날로그 신호와 센서값)
 int c = analogRead(T0);
 c = c*5.0 /1024.0 * 100;
 Serial.println(c);
 lcd.setCursor(8,0); //Move the cursor
 lcd.print(c); //Print this new value
  lcd.setCursor(8,0);                   
  lcd.print(c);                     

  currentDownTempButton = debounce(lastDownTempButton, DOWN_BUTTON);
  currentUpTempButton  = debounce(lastUpTempButton, UP_BUTTON);

  if (lastDownTempButton== LOW && currentDownTempButton == HIGH)
  {
    set_temp--;
  }
  //Turn up the set temp
  else if (lastUpTempButton== LOW && currentUpTempButton  == HIGH)
  {
    set_temp++;
  }
  //Print the set temp
  lcd.setCursor(8,1);
  lcd.print(set_temp);
  lastDownTempButton = currentDownTempButton;
  lastUpTempButton = currentUpTempButton;

  if (c >= set_temp)
  {
    if (!one_time)
    { 
      tone(SPEAKER, 400);
      delay(500);
      one_time = true;
    }
    else
    {
      noTone(SPEAKER);
    }
    digitalWrite(FAN, HIGH);
    lcd.setCursor(15,1);
    lcd.write(2);
  }
  else
  {
    noTone(SPEAKER);
    one_time = false;
    digitalWrite(FAN, LOW);
    lcd.setCursor(15,1);
    lcd.write(1);
  }
}][1]

*

EN

回答 1

Stack Overflow用户

发布于 2018-05-24 19:34:15

尝试使用LiquidCristal库中描述的液晶屏布线,使用HelloWorld等示例。

Here you can find a 'Hello World' example

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50492980

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档