电力线控制HD44780



实际上,那里已经提供了减少导线数量的方法。 例如,四位模式。 还很多吗 有带I 2 C的显示模块。但是没有完美的限制,如果您有一个额外的Arduino(在很多情况下出现的更快或更晚),则显示可以与数据源保持一定距离,并用两线电缆连接。

在同一对电线上传输功率和数据的一种方法如下。 数据信号在高频下进行调制并合并,在线路的另一端,通过扼流圈和电容器将它们分开,以提供给解调器。 但是,使用直流电源,您可以使用更简单的方法,类似于内部通信键中使用的方法。 在这种情况下,不需要调制器和解调器;在发送端,切换电源电路的按键就足够了:



晶体管-AO3400A和AO3401A。 它们中的第二个可以承受5 A(根据其他来源-4),但是在这里他只需要切换200 mA。 串行数据到密钥的流可以从任何微控制器提供,但是由于设计是实验性的,因此作者使用了运行Python脚本和USB-UART转换器的PC。

事实证明,作者的电源断路器很丑陋,但非常坚固:



在线路的另一端,将脉动电压施加到带滤波器的半波整流器上(尽管在这种情况下不需要整流,只是有必要使二极管的电压保持脉动,然后才不导通),由Arduino和显示模块供电。 Arduino将串行数据转换为模块所需的并行数据。 注意,对于KB1013VG6上的模块,插针是非标准的。 二极管的纹波电压施加到Arduino数字输入之一。



因此,它在现实生活中看起来像:



固件得到了最大程度的简化;它甚至不自行生成显示控制器的初始化命令(以及所有其他命令),因此,发送方必须提交它们。 但是同时,它可以识别直接寻址到它的最简单的单字节命令。 这里x是较低的半字节,命令是最高的半字节:

0xA [x]-将半字节x施加到模块的引脚4-7
0xB [x]-将半字节x的最低有效位发送到RS模块的输入
0xC [x]-将半字节x的最低有效位发送到EN模块的输入
0xD [x]-设置背光亮度(可通过PWM调节)与半字节x成比例

所有必需的软件都在这里 。 为了展示一切如何工作,作者提出了以下方案:



并推出:

Source: https://habr.com/ru/post/zh-CN449830/


All Articles