我有一个16×2的标准LCD显示器(我相信这是日立HD44780兼容-见下文总结和说明书),使用4个数据引脚钩住一个Arduino乌诺,如所描述这里,虽然我已经添加并联2×220ohm电阻器(即,一个110欧姆电阻)接在第16针(背光地)上,并用静态电阻替换电位器以在Vo上产生4V电压。
简而言之,RW接地,RS,Enable和Data4-7连接到Arduino引脚,而Data 0-3悬空。
我还有其他东西(传感器,带有光电隔离SSR的晶体管和市电继电器,一些按钮)连接到Arduino的不同引脚。我使用的代码每秒将文本写入显示器多次,并且通常情况下,显示器可以正常工作。
但是,当继电器闭合时(大约需要10ma,并由一个由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
乱码示例: