Arduino LCD仅在最下面一行显示黑匣子

Arduino LCD仅在最下面一行显示黑匣子,arduino,lcd,Arduino,Lcd,免责声明:这是家庭作业 我正在上Arduino课程,对于我们的项目,我们必须实现一个简单的草图。涉及的硬件是和。我已经能够用我的草图成功地与Arduino沟通;除了LCD之外,其他的东西(比如按钮和LED)似乎也能工作。我已经学习了很多教程(包括我第二个链接中的LCD示例程序),但是我什么都做不到。我的LCD始终在底线显示黑匣子。环顾四周,我发现当LCD连接不正确时,会出现黑匣子。不过,这是一个初学者工具包,其中包含可以连接到机箱的电缆,这样可以消除焊接单个导线时的痛苦。我的液晶显示器有问题吗?

免责声明:这是家庭作业

我正在上Arduino课程,对于我们的项目,我们必须实现一个简单的草图。涉及的硬件是和。我已经能够用我的草图成功地与Arduino沟通;除了LCD之外,其他的东西(比如按钮和LED)似乎也能工作。我已经学习了很多教程(包括我第二个链接中的LCD示例程序),但是我什么都做不到。我的LCD始终在底线显示黑匣子。环顾四周,我发现当LCD连接不正确时,会出现黑匣子。不过,这是一个初学者工具包,其中包含可以连接到机箱的电缆,这样可以消除焊接单个导线时的痛苦。我的液晶显示器有问题吗?这是一个我无法开始工作的简单草图:

#include <LiquidCrystal.h>

LiquidCrystal lcd(10,11,12,13,14,15,16);

void setup()
{
  Serial.begin( 9600 );
  lcd.begin(16, 2);
  lcd.clear();
}

void loop()
{
  lcd.setCursor(0,0);
  lcd.println( "hello world!    ");
  delay(1000);
}
#包括
液晶显示器(10,11,12,13,14,15,16);
无效设置()
{
Serial.begin(9600);
lcd.begin(16,2);
lcd.clear();
}
void循环()
{
lcd.setCursor(0,0);
println(“你好,世界!”);
延迟(1000);
}

引脚对应于总线2,我已将电缆从总线2正确连接到LCD。

对于预构建的LCD板,不清楚您可以进行哪些调整。
但是,如果LCD显示与您正在向其写入的内容相对应的黑匣子(例如,如果您编写了“hello world!”,并且您看到每个字符和空格有12个黑匣子,则可能是LCD电压过高。如果您无法调整LCD的电压,则可能需要为arduino使用较低电压的电源(如果您的LCD获得的是输入电压,而不是调整后的5V电源。

下一行中的黑框通常表示LCD没有接收到所需的初始化命令。原因可能是布线错误-命令会发送到nirvana,但不会发送到LCD

所以你应该

  • 仔细检查电路板上的每个开关、屏蔽和LCD模块本身-它们是否处于正确的状态

  • 仔细检查,确认正确的草图确实在Arduino上

  • lcd之前插入一个
    延迟(1000);
    开始(…)
    -可能lcd需要更多的启动时间

  • 如果这是家庭作业,那么你可以在同伴或老师的Arduino上测试你的LCD


您的LCD可能不好。但在本网站和其他论坛上,错误初始化的问题经常出现,因此可能性表明它是正常的。

您需要逐步解决问题。例如:

  • 通过在朋友的硬件上运行你的草图来测试你的草图是否有效。如果你的草图有效,那么你知道问题出在你的硬件上。如果失败,那么问题出在你的软件上

  • 如果问题出在硬件上:将你的可疑的lcd换成一个朋友的正常工作的。如果它现在可以工作,那么你就知道你的lcd坏了

  • 如果更换lcd没有帮助,那么就更换主板。最终,如果您从一个可疑的系统(也称为被测系统)和一个已知良好的系统(也称为“黄金系统”)开始,那么您应该能够分辨出被测系统的哪些部分在工作,哪些部分不工作

  • 其他评论

    • 找出问题所在的整个过程本身就是一个有价值的练习。一定要仔细记下你正在尝试的东西。写下你的笔记对于处于困境中的其他人来说是一份有价值的文件

    • 一个好的实验装置也会小心地包括一个已知良好的(黄金)系统,用于诊断问题

    • 每个可交换单元(也称为FRU或现场可重放单元)都需要一个好标签。该标签用于确保不会混淆好的FRU和可疑的FRU。因为它们在各个方面都是相同的(除了一个有效,另一个可能无效),所以很容易混淆

    • 将已知产品更换为可疑FRU时要小心:如果合适,请采取防静电措施。正确接地系统。确保所有连接正确


    除了LCD声明“液晶LCD(10,11,12,13,14,15,16);”之外,我尝试了您的代码 草图工作,LCD显示消息

    我的设备是:

  • 阿杜伊诺·乌诺
  • SC1602BSLB(无背光)
  • 计算机操作系统:Windows 7
  • Arduino IDE:1.0.4
  • 我怀疑您的LCD声明部分有问题。我的代码如下(来自“Liquidcystal”中的arduino“hello world”示例):

    如您所知,上述声明中的引脚连接为:

       Arduino/LCD
    
    • 数字5/11
    • 数字4/12
    • 数字3/13
    • 数字2/14

    我是Arduino world的新手。我只是想表达我对Arduino体验的惊讶。如果你还有一些问题,请通知我。

    你应该检查一下液晶显示器()。遇到了同样的问题,我调整了这个,现在它可以工作了。

    请确保您的所有标题引脚在LCD中焊接正常

    如果您在LCD的16个孔中使用未经焊接的头销 移动LCD,直到找到稳定的测试位置。 很容易,并不是所有人都在联系

    这个基本的helloworld示例应该可以工作

    用于在arduino IDE中测试推送负载以上载脚本。 arduino板上的复位按钮有时无法初始化LCD

    我的LCD始终在底线显示黑匣子

    我也有类似的问题。正在使用最少的管脚数连接LCD:
    Liquidcystal(rs,enable,d4,d5,d6,d7)
    。我遇到的问题是
       Arduino/LCD
    
    // include the library code:
    #include <LiquidCrystal.h>
    
    // initialize the library with the numbers of the interface pins
    LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);
    
    
    // NOTE: This code will work just fine but you need to have the contrast pin at a resonably high resistance value when you turn it on, and then decreade it once the 
    // device has booted otherwise you just see solid bars. Not sure why this is. 
    void setup() {
      // set up the LCD's number of columns and rows:
      lcd.begin(8, 2);
      lcd.clear();
      // Print a message to the LCD.
      lcd.print("hello");
      lcd.setCursor(0, 1);
    }
    
    void loop() {
      // print the number of seconds since reset:
      lcd.print(millis() / 1000);
      delay(5000);
    
    }