我有一个标准的 16x2 LCD 显示器(我相信它与 Hitachi HD44780 兼容 - 请参阅下面的摘要和规范),使用 4 个数据引脚连接到 Arduino Uno,如此处所述,尽管我已经并行添加了 2x 220ohm 电阻器(即16 针(背光接地)上的 110ohm 电阻器,并用静态电阻器替换 Pot 以在 Vo 上产生 4V。
简而言之,RW 接地,RS、Enable 和 Data4-7 连接到 Arduino 引脚,而 Data 0-3 悬空。
我还有其他东西(传感器、带有光隔离 SSR 和电源继电器的晶体管、一些按钮)连接到 Arduino 上的不同引脚。我使用的代码每秒多次向显示器写入文本,通常情况下,显示器工作正常。
然而,当继电器闭合时(大约需要 10 毫安,并且由一个晶体管控制,而晶体管又由一个 Arduino 引脚控制),有时 LCD 会出现乱码。它通常会一直保持乱码,直到继电器下一次关闭,但有时当继电器打开时,或者在打开/关闭几个循环后重置。乱码总是在继电器打开或关闭的同时开始和停止。
通过“乱码”,我的意思是每次我在它变得乱码之后写它,而不是写英文字符,我得到一串字符,我通常无法在数据表中识别(尽管有些我可以)。当我在 LCD 上写入新文本时,这串乱码往往会沿着屏幕向左移动。
我相信这不是 Arduino 本身感到困惑,因为我同时将相同的文本写入串行监视器,并且它没有乱码。
从那以后,我尝试将 RW 引脚连接到 Arduino 输出,并将 Data0-3 连接到地,但这无济于事。我用 9V 电池或 USB 为整个设备供电,但没有帮助。我已经更换了电池...没有变化。
似乎唯一可行的是没有负载插入继电器,但这违背了目的:-)
我没有信号分析仪或任何比万用表、笔记本电脑和 arduino 更复杂的东西……有没有人有任何提示可以帮助我调试这个?
LCD 总结表: http: //oomlout.com/LCDD/LCDD-SUMM-BC1602A.pdf
LCD 规格: http: //oomlout.com/LCDD/LCDD-DATA-BC1602A.pdf
乱码文本示例: