Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arduino 需要帮助在LCD上显示串行监视器吗_Arduino_Lcd - Fatal编程技术网

Arduino 需要帮助在LCD上显示串行监视器吗

Arduino 需要帮助在LCD上显示串行监视器吗,arduino,lcd,Arduino,Lcd,我在lcd上显示串行监视器时遇到问题。我没有收到任何错误,液晶显示器点亮了,所以我认为我没有接线错误。我能够打开串行监视器/绘图仪并查看信息的变化,因此我的其他组件也在工作,因此问题一定在代码中 #include <LiquidCrystal.h> /** * LIDARLite I2C Example * Author: Garmin * Modified by: Shawn Hymel (SparkFun Electronics) * Date: June 29, 20

我在lcd上显示串行监视器时遇到问题。我没有收到任何错误,液晶显示器点亮了,所以我认为我没有接线错误。我能够打开串行监视器/绘图仪并查看信息的变化,因此我的其他组件也在工作,因此问题一定在代码中

#include <LiquidCrystal.h>

/**
 * LIDARLite I2C Example
 * Author: Garmin
 * Modified by: Shawn Hymel (SparkFun Electronics)
 * Date: June 29, 2017
 * 
 * Read distance from LIDAR-Lite v3 over I2C
 * 
 * See the Operation Manual for wiring diagrams and more information:
 * http://static.garmin.com/pumac/LIDAR_Lite_v3_Operation_Manual_and_Technical_Specifications.pdf
 */

#include <Wire.h>
#include <LIDARLite.h>


const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
// Globals
LIDARLite lidarLite;
int cal_cnt = 0;

void setup()
{
  Serial.begin(9600); // Initialize serial connection to display distance readings

  lidarLite.begin(0, true); // Set configuration to default and I2C to 400 kHz
  lidarLite.configure(0); // Change this number to try out alternate configurations


  lcd.begin(16, 2);
  // initialize the serial communications:
}

void loop()
{
  int dist;

  // At the beginning of every 100 readings,
  // take a measurement with receiver bias correction
  if ( cal_cnt == 0 ) {
    dist = lidarLite.distance();      // With bias correction
  } else {
    dist = lidarLite.distance(false); // Without bias correction
  }

  // Increment reading counter
  cal_cnt++;
  cal_cnt = cal_cnt % 100;

  // Display distance
  Serial.print(dist);
  Serial.println(" cm");

  delay(10);

    // when characters arrive over the serial port...
  if (Serial.available()) { 
    // wait a bit for the entire message to arrive
    delay(100);
    // clear the screen
    lcd.clear();
    // read all the available characters
    while (Serial.available() > 0) {
      // display each character to the LCD
      lcd.write(Serial.read());
    }
  }
}
#包括
/**
*LIDARLite I2C示例
*作者:Garmin
*修改人:Shawn Hymel(SparkFun Electronics)
*日期:2017年6月29日
* 
*从I2C上的激光雷达Lite v3读取距离
* 
*有关接线图和更多信息,请参阅操作手册:
* http://static.garmin.com/pumac/LIDAR_Lite_v3_Operation_Manual_and_Technical_Specifications.pdf
*/
#包括
#包括
常数int rs=12,en=11,d4=5,d5=4,d6=3,d7=2;
液晶显示器(rs、en、d4、d5、d6、d7);
//全球的
Lidarite Lidarite;
int cal_cnt=0;
无效设置()
{
Serial.begin(9600);//初始化串行连接以显示距离读数
lidarLite.begin(0,true);//将配置设置为默认值,将I2C设置为400 kHz
lidarLite.configure(0);//更改此号码以尝试其他配置
lcd.begin(16,2);
//初始化串行通信:
}
void循环()
{
国际区;
//在每100次读数开始时,
//使用接收机偏差校正进行测量
如果(cal_cnt==0){
dist=lidarLite.distance();//带偏差校正
}否则{
dist=lidarLite.distance(假);//无偏差校正
}
//增量读数计数器
cal_cnt++;
cal_cnt=cal_cnt%100;
//显示距离
连续打印(dist);
序列号。打印号(“cm”);
延迟(10);
//当字符通过串行端口到达时。。。
如果(Serial.available()){
//请稍等,等待整个消息到达
延迟(100);
//清除屏幕
lcd.clear();
//读取所有可用字符
while(Serial.available()>0){
//在LCD上显示每个字符
lcd.write(Serial.read());
}
}
}
LCD应显示变化的测量值

LCD亮起,我可以调整背光,但我无法显示任何内容。

仅仅因为LCD“亮起”,并不意味着它接线正确。事实上,背光电路通常与数据和控制信号电路完全分离。我将首先检查假设,即它已通过一个简单的命令正确连接,以将已知值打印到LCD:

lcd.clear();
lcd.println("TEST");
如果这样做有效,那么您就知道LCD正在工作,可以在其他地方查找问题

如果这不起作用,我会质疑你的假设,即它连接正确,但如果你仍然只得到“蓝色块”,那么它可能是简单的,因为你的对比是不正确的。要将对比度和亮度很好地结合起来以提高可读性,这可能会很棘手。看看你的显示器背面是否有一个小电位计(通常用一个非常小的飞利浦头部驱动器进行调节),然后仔细调整对比度

亮度通常可以通过软件命令进行更改,但大多数LCD在首次启动时默认为高亮度


如果改变对比度不起作用,你可能有一个真正的布线问题,然后它真的是这个论坛的主题。在这种情况下,您应该绘制一个示意图并张贴在电气工程堆栈上。

它会在下一个堆栈上打印“test”和两个中文符号。我不知道它为什么这样做,但至少它在工作。还有其他建议吗?