Arduino 液晶显示器不';我不能在模拟环境中工作

Arduino 液晶显示器不';我不能在模拟环境中工作,arduino,simulation,arduino-uno,arduino-c++,tinkercad,Arduino,Simulation,Arduino Uno,Arduino C++,Tinkercad,我正在使用Tinkercad,因为这是我第一次编程LCD,所以我只是复制了连接引脚并使其工作的过程 问题是,它只是亮起,没有显示任何内容,我尝试了接线和解除接线的R/W引脚,但这也不起作用,没有显示任何内容 我错过了什么?代码的其他功能正常工作 电路图: 代码如下: #包括 常数int pin=0;//模拟引脚 浮动摄氏度=0,法伦海特=0;//温度变量 浮动毫伏//来自传感器的毫伏电压 int传感器; 常数int G_LED=13; const int Y_LED=12; 液晶液晶显示器(1

我正在使用Tinkercad,因为这是我第一次编程LCD,所以我只是复制了连接引脚并使其工作的过程

问题是,它只是亮起,没有显示任何内容,我尝试了接线和解除接线的R/W引脚,但这也不起作用,没有显示任何内容

我错过了什么?代码的其他功能正常工作

电路图:

代码如下:

#包括
常数int pin=0;//模拟引脚
浮动摄氏度=0,法伦海特=0;//温度变量
浮动毫伏//来自传感器的毫伏电压
int传感器;
常数int G_LED=13;
const int Y_LED=12;
液晶液晶显示器(10,9,5,4,3,2);//构建液晶显示器
无效设置(){
lcd.begin(16,2);
lcd.clear();
lcd.setCursor(0,0);
应打印lcd.print(“C=”);/“C=”、“F=”和“mV”
lcd.setCursor(0,1);//在列中的lcd上
lcd.print(“F=”);
lcd.setCursor(0,2);
lcd.print(“mV=”);
引脚模式(G_LED,输出);
引脚模式(Y_发光二极管,输出);
Serial.begin(9600);
}
void循环(){
传感器=模拟读取(引脚);//使用A0入口从LM35传感器读取值
毫伏=(传感器/1023.0)*5000;//将数值转换为指示毫伏的数字
摄氏=((传感器*0.00488)-0.5)/0.01;//摄氏值(每度10毫伏,0°=500毫伏)
法伦海=摄氏度*1.8+32;//华氏值
lcd.setCursor(4,2);//将光标设置在“mV=”的右侧
lcd.print(毫伏);//打印毫伏值
lcd.setCursor(4,0);//此处对于°C和°F相同
液晶显示器。打印(摄氏度);
lcd.setCursor(4,1);
系列印刷品(farhenheit);
当温度低于或等于20°时,如果(毫伏<700){//绿色LED亮起
//如果(摄氏度<20){//备选方案
模拟写入(G_LED,255);
模拟写入(Y_LED,0);}
否则{
模拟写入(G_LED,0);
analogWrite(Y_LED,255);//当温度高于20°C时,黄色LED亮起
}  
延迟(1000);
}

修复-我找不到错误,但我怀疑这是由于连接的奇怪布局造成的。您还试图将光标设置为第3行,但您使用的LCD没有3行,它是一个
16x2 LCD

我所做的-所以我所做的是我重新做了整个项目,我连接了一个新的LCD,这次是一个数字对比度,这样它可以动态变化。我还确保包括你在上一个项目中使用的传感器。整个项目是一个Arduino控制LCD并以华氏温度输出温度d毫伏

这是最新版本。

代码:

#include <LiquidCrystal.h> 
// Adds the liquid crystal lib

int contrast = 40; // Set the contrast of the LCD
LiquidCrystal lcd (12, 11, 5, 4, 3, 2); // Instantiate the LCD

float fahrenheit;
float millivolts;

void setup ()
{
  analogWrite(6, contrast); // Wrjte the contrast to the LCD
  lcd.begin(16, 2); // Init the LCD
}

void loop ()
{
  int sensor = analogRead(0);
  millivolts = (sensor/1023.0)*5000;
  fahrenheit = (((sensor*0.00488)-0.5)/0.01)*1.8+32;
  
  lcd.setCursor(0, 0); 
  lcd.print("Temp(F):");
  lcd.setCursor(11, 0);
  lcd.print(fahrenheit);
  
  lcd.setCursor(0, 1);
  lcd.print("Volts(mV):");
  lcd.setCursor(12, 1);
  lcd.print(millivolts);
}
#包括
//添加液晶库
int contrast=40;//设置LCD的对比度
液晶液晶显示器(12,11,5,4,3,2);//实例化液晶显示器
浮动华氏温度;
浮动毫伏;
无效设置()
{
模拟写入(6,对比度);//将对比度写入LCD
lcd.begin(16,2);//初始化lcd
}
空循环()
{
int传感器=模拟读数(0);
毫伏=(传感器/1023.0)*5000;
华氏温度=((传感器*0.00488)-0.5)/0.01)*1.8+32;
lcd.setCursor(0,0);
lcd.打印(“温度(F):”;
lcd.setCursor(11,0);
液晶显示打印(华氏度);
lcd.setCursor(0,1);
lcd.打印(“伏特(毫伏):”;
lcd.setCursor(12,1);
lcd.打印(毫伏);
}
图表

修复-我找不到错误,但我怀疑这是由于连接的奇怪布局造成的。您还试图将光标设置为第3行,但您使用的LCD没有3行,它是一个
16x2 LCD

我所做的-所以我所做的是我重新做了整个项目,我连接了一个新的LCD,这次是一个数字对比度,这样它可以动态变化。我还确保包括你在上一个项目中使用的传感器。整个项目是一个Arduino控制LCD并以华氏温度输出温度d毫伏

这是最新版本。

代码:

#include <LiquidCrystal.h> 
// Adds the liquid crystal lib

int contrast = 40; // Set the contrast of the LCD
LiquidCrystal lcd (12, 11, 5, 4, 3, 2); // Instantiate the LCD

float fahrenheit;
float millivolts;

void setup ()
{
  analogWrite(6, contrast); // Wrjte the contrast to the LCD
  lcd.begin(16, 2); // Init the LCD
}

void loop ()
{
  int sensor = analogRead(0);
  millivolts = (sensor/1023.0)*5000;
  fahrenheit = (((sensor*0.00488)-0.5)/0.01)*1.8+32;
  
  lcd.setCursor(0, 0); 
  lcd.print("Temp(F):");
  lcd.setCursor(11, 0);
  lcd.print(fahrenheit);
  
  lcd.setCursor(0, 1);
  lcd.print("Volts(mV):");
  lcd.setCursor(12, 1);
  lcd.print(millivolts);
}
#包括
//添加液晶库
int contrast=40;//设置LCD的对比度
液晶液晶显示器(12,11,5,4,3,2);//实例化液晶显示器
浮动华氏温度;
浮动毫伏;
无效设置()
{
模拟写入(6,对比度);//将对比度写入LCD
lcd.begin(16,2);//初始化lcd
}
空循环()
{
int传感器=模拟读数(0);
毫伏=(传感器/1023.0)*5000;
华氏温度=((传感器*0.00488)-0.5)/0.01)*1.8+32;
lcd.setCursor(0,0);
lcd.打印(“温度(F):”;
lcd.setCursor(11,0);
液晶显示打印(华氏度);
lcd.setCursor(0,1);
lcd.打印(“伏特(毫伏):”;
lcd.setCursor(12,1);
lcd.打印(毫伏);
}
图表

你在现实生活中尝试过这个插针吗?请链接Tinker CAD草图。@JamesBarnett不,我还没有尝试,我甚至没有材料,这是tinkercad链接:我想问题是因为你使用了一个难以使用的插针,尝试一种更传统的方法。(p.s:你没有在tinkercad中设置任何传感器)。当我解决问题或找到替代方案时,我会回答这个问题。)你在现实生活中试用过这个插针吗?还请链接Tinker CAD草图。@JamesBarnett不,我还没有尝试过,我甚至没有材料,这是tinkercad链接:我认为问题是由于你使用了一个难以使用的插针,请尝试一个更复杂的方法常规方法。(注意:你没有在Tinkercad中设置任何传感器)。我会在解决问题或找到替代方案时回答问题。@Wandering你能接受答案吗?@Wandering你能接受答案吗?