在Arduino上调试16x2 LCD显示
我有一个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 乱码示例: