14457| 9
|
[讨论] 关于LCD12864显示问题 |
本帖最后由 云水尧 于 2014-5-22 14:09 编辑
|
Leotower 发表于 2014-5-19 10:18 不对啊,还是有问题诶。 我把“Serial.begin(9600);”删掉了,使得relay = 0(继电器接在PIN0)时, 继电器是正常工作了,但是代码中if(data>25)程序段中,digitalWrite是执行了,但是LCDA.DisplayString没有执行啊,不显示“温度过高”。当使得relay = 3(继电器接在PIN3)时,继电器工作也正常,if(data>25)程序段执行同样正常,但是LCD上逐字显示,能看到字是从左边一个一个出现的,这是怎么回事啊??? |
Leotower 发表于 2014-5-21 09:05 连接图已将附上了 LCD用的库:http://www.dfrobot.com/image/data/DFR0091/LCD12864RSPI%20v1.0.zip |
本帖最后由 云水尧 于 2014-5-27 09:49 编辑 Leotower 发表于 2014-5-24 13:04 第一次画这种图就被夸奖了,谢谢你对我的鼓励:)!!! 下面是我做的一些改进: 1:继电器接在PIN0,LCD接在PIN2、7、10,增加了delay(200);,果然有了效果,继电器工作正常,LCD显示正常。但是由于延时过长,LCD闪的很厉害,所以我改成了delay(1);,结果同样可以,但LCD从下侧看仍有细微的闪烁,从正面看没有问题(不好意思哈,有点小强迫症:-)),这似乎没有办法,可能是处理器处理速度不够吧。这加了个delay就能执行“LCDA.DisplayString(1,0,tempHigh,AR_SIZE(tempHigh));”,这似乎不太科学啊??? 后来我又将delay(200);加在了LCDA的后面digitalWrite(relay, LOW);LCDA.DisplayString(1,0,tempLow,AR_SIZE(tempLow)); delay(200);就出现了如下的画面。显示在了同一行上。我改成delay(1);后,温度过低几个字就不再显示了,一直只显示“温度:XX.X”。 2:继电器接在PIN5(PIN1也试过),LCD接在PIN8、10、12,结果有点小失望,尝试了继电器用另一块UNO板单独供电,结果依旧是继电器工作正常,LCD显示不正常,逐字显示,如下图。不知道是不是处理器速度的关系。好神奇啊! 虽然仍有很多小问题让我感到困扰,但还是非常感谢Leotower耐心的为我解答,非常非常感谢:)!!! |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed