Arduino 需要帮助在LCD上显示串行监视器吗
我在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
#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”和两个中文符号。我不知道它为什么这样做,但至少它在工作。还有其他建议吗?