charlcd是日立hd44780@raspberry pi的char-lcd处理器。

CharLCD的Python项目详细描述


它是什么
==


HD44780液晶驱动程序包将与覆盆子PI一起使用。
它提供快速控制显示内容和方式的功能。
支持I2C、GPIO布线和WiFi远程LCD。

使用两种模式:

-直接-尽快写入LCD
-缓冲-写入缓冲区并执行刷新

支持虚拟LCD-能够将少数LCD合并为一个

支持20x4、16x2、40x4等。

包括使用VLCD的简单游戏机-演示

请参阅更多信息:[koscis.wordpress.com](https://koscis.wordpress.com)

使用直接模式,意味着每个字符都将尽快显示。


类已缓冲。
使用缓冲区设置需要显示的内容并刷新功能以在屏幕上绘制。
其绘图仅限于与上一帧不同的字符。


class virtual_direct。
允许设置virtual lcd。任意数量液晶显示器上的矩形区域。使用直接模式

类虚拟缓冲。
允许设置虚拟LCD。任意数量液晶显示器上的矩形区域。使用缓冲模式

默认管脚:

lcd:gpio
rs:24
e:17
e2:none
db4:27
db5:25
db6:23
db7:22


使用40x4 lcd set e2

i2c驱动程序
使用i2c总线控制lcd。默认连接:

gpio:pcf8574
gnd:a0
gnd:a1
gnd:a2
gnd:gnd
+5v:vcc
sda:sda
scl:scl

pcf8574:lcd
p4:lcd4(rs)
p5:lcd6(e)
p3:lcd14(db7)
p2:lcd13(db6)
p1:lcd12(db5)
p0:lcd11(db4)



LCD](https://github.com/bkosciow/nodemcu廑u样板文件)
[文章](https://koscis.wordpress.com/tag/nodehd44780/)


[文章](https://github.com/bkoscosiow/nodemcu-nodemcu-cu-boilerplate)
[文章](https://kocis.wordpress.com/tag/nodehd444780/)









<

==
=
=

<
















<
lcd14[vdd]—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————22
lcd3[db5]———gpio 23
lcd2[db6]———gpio 27
lcd1[db7]———gpio 17
lcd17[a]——/////\[电位计]
\——+5v
lcd18[k]———GND

\gpio 20x4,16x2

lcd1[vss]———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————[DB1]
LCD9[DB2]
LCD10[DB3]
LCD11[DB4]———GPIO 22
LCD12[DB5]———GPIO 23
LCD13[DB6]———GPIO 27
LCD14[DB7]———GPIO 17
LCD15[A]——/\/\/\[电位计]
\-+5V
LCD16[K]———接地

i2c 20x4,16x2

1———接地---a0 VCC---+5V
2——+5V接地---A1 SDA----RPI上的SDA
3--/\/\[电位计]接地----A2 SCL----RPI上的SCL
\--接地LCD11---P0 INT
4[rs]---P4 LCD12---P1 P7
5---GND LCD13---P2p6
6[e]---p5 lcd14--p3 p5--lcd6
7 gnd--gnd p4--lcd4
8
9
10
11[db4]---p0
12[db5]---p1
13[db6]---p2
14[db7]---p3
15--/\/\[电位器]
-+5v
16-----接地

-
i2c 40x4

13-----接地----a0 vcc---+5v
14---+5v接地----a1 sda---sda开rpi
12--/\/\[电位计]接地---a2 scl---rpi上的scl
\--接地lcd4---p0 int
11[rs]---p4 lcd3---p1 p7
10-----接地lcd2---p2 p6---lcd15
9[E]---P5 LCD1---P3 P5---LCD9
15[E2]---P6 GND---GND P4---LCD11
4[db4]---P0
3[db5]---P1
2[db6]---P2
1[db7]---P3
17--/\/\[电位计]
-+5V
18———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————默认为连接。
自定义管脚:

g=gpio()
g.pins={
'rs':24,
'e':17,
'e2':无,
'db4':27,
'db5':25,
'db6':23,
'db7':22
}
l=lcd.charlcd(20,4,g)



gpio插头40x4:

g.pins={
'rs':24,
'e':17,
'e2':10,
'db4':27,
'db5':25,
'db6':23,
'db7':22
}
l=lcd.charlcd(40,4,





```
l=lcd.charlcd(16,2,I2C(0x20,1)16,2,I2C(0x20,1))
```
``


charlcd 16x2显示16x2在I2C@0x20,0x20和总线1上。
更换管脚:




I2C.pin={
I2C.pin=={
‘rs’:4,
‘e’:5,
‘db4’:0 0 0,,
"db5":1,
"db6":2,
"db7":3
}
l=lcd.charlcd(16,2,i2c)



====



fully working demo(更多内容请参见demo目录):

/usr/bin/python
-*-编码:utf-8-*-


"用于直接LCD输入的测试脚本"


f0401
从charlcd直接导入为lcd
从charlcd.drivers.gpio导入gpio
从charlcd.drivers.i2c导入i2c pylint:disable=i0011,f0401

gpio.setmode(gpio.bcm)

"演示-20x4 by gpio"
lcd_2=lcd.charlcd(20,4,gpio())
lcd_2.init()
lcd_2.write('-blarg!')
液晶显示器2.写入('-grarg!',0,1)
液晶显示器2.设置xy(0,2)
液晶显示器2.写入('-活动!!!!
液晶显示器2.stream('12345667890qwertyuiopasdfgfghjjkl')


test2()








` charlcd(宽度、高度、驱动器、光标可见=1,光标闪烁=1)`

`写(自、字符串、pos x=none,pos y=none,pos y=none)` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `十,pos_y)`-将光标移动到位置

`stream(string)`-stream string,在行结束时中断,到达显示结束后从顶部开始




===



完全工作的演示(更多内容请参见演示目录):

/usr/bin/python
#-*-编码:utf-8-*-

"缓冲液晶显示器的测试脚本"


从charlcd导入缓冲为lcd
从charlcd.drivers.gpio导入gpio
从charlcd.drivers.i2c导入i2c


def test3():
"demo 16x2"
lcd 1=lcd.charlcd(16,2,i2c(0x20,1),0,0)
液晶显示器件1.init()
lcd液晶显示器件1.stream(12345667890qwertyuiopasdffffghjkl)液晶显示器件1.stream(12345667890qwertyuiopasdfffghjkl)
>lcd液晶显示器件1.flush()











>charlcd(宽、高、驱动、光标可见=1,光标闪烁=1)功能



(内容,pos_x=无,pos_y=none)`-将内容写入缓冲区的位置(x,y)或当前位置

`set_xy(pos_x,pos-y)`-设置光标位置

`get-xy()`-获取光标位置

`buffer-clear()`-清除缓冲区

`flush()`-刷新缓冲区以显示



==

`get-width()`-显示宽度

`get-height()`-显示高度

`get_display_mode()`-返回直接或缓冲

`shutdown()`-调用驱动程序shutdown



virtual direct
==

/usr/bin/python
-*-编码:utf-8-*-


"虚拟直接液晶显示器的测试脚本"


uuu author\uuu='bartosz ko_ciów'

import rpi.gpio as gpio pylint:disable=i0011,f0401
从charlcd直接导入为lcd
从charlcd.drivers.gpio导入gpio
从charlcd.drivers.i2c导入i2c pylint:disable=i0011,f0401
从charlcd导入virtual_direct as vlcd



"演示:16x2+20x4=36x4 left,right"""
lcd_1=lcd.charlcd(16,2,i2c(0x20,1))
lcd_2=lcd.charlcd(20,4,gpio(),0,0)
lcd_1.init()
lcd_2.init()
vlcd_1=vlcd.charlcd(36,4)
vlcd_1.add_显示(0,0,lcd_2)
vlcd_1.add_显示(20,0,lcd_1)
vlcd_1.写入('test me 123456789qwertyuiopasdfghjkl12')





==

/usr/bin/python
-*-编码:utf-8-*-


"虚拟缓冲lcd的测试脚本"


uuu author\uu='bartosz ko_ciów'

import rpi.gpio as gpio pylint:disable=i0011,f0401
从charlcd导入缓冲为lcd
从charlcd.drivers.gpio导入gpio
从charlcd.drivers.i2c导入i2c
从charlcd导入虚拟缓冲为vlcd



def test1():
"演示:16x2+20x4=20x6"
lcd_1=lcd.charlcd(16,2,I2c(0x20,1))
lcd_2=lcd.charlcd(20,4,gpio(),0,0)

vlcd_1.add_display(0,0,lcd_2)
vlcd_1.add_display(0,4,lcd_1)
vlcd_1.init()

vlcd_1.write('first line')
vlcd_1.write('second line',0,1)
vlcd_1.write('fifth line',0,4)

vlcd_1.set_xy(4,2)
vlcd_1.write("第三行")





===
`charlcd(宽度、高度、驱动程序、光标可见=1,光标闪烁=1)`-初始化、LCD大小、光标选项

`写入(self、string、pos_x=none、pos_y=none)`-打印LCD上的字符串

`设置x y(pos_x,pos_y)`-将光标移动到位置

`get_xy()`-获取光标位置

`stream(string)`-流字符串,换行结束,到达显示结束后,从顶部开始

`buffer廑clear()`-清除缓冲区(仅缓冲)

`flush()`-刷新缓冲区以显示(仅缓冲)

`get廑width()`-显示宽度

`get廑height()`-显示高度

`get廑display廑mode`-返回直接或缓冲

`shutdown()`-调用消息侦听器包的驱动程序shutdown


handler
===
handler。支持三个事件:lcd.cmd、lcd.char和lcd.content。



demos
======
check charlcd/demos directory

===

本游戏是一个简单的演示。它展示了如何使用任何LCD显示游戏。

一个20x4,另一个16x2。
>;由这两个VLCD制作。一个16x6代表比赛,一个4x4代表得分。

/usr/bin/python
-*-编码:utf-8-*-


"游戏启动程序"

f0401
从charlcd import buffered
从charlcd.drivers.gpio import gpio
从charlcd.drivers.i2c import i2c
从charlcd import virtual_buffered
将piader_1.game导入为game

gpio.setmode(gpio.bcm)


"设置液晶显示器并开始游戏"
lcd 2=buffered.charlcd(16,2,i2c(0x20,1),0,0)
lcd one=buffered.charlcd(20,4,gpio(),0,0)


vlcdu main=virtual\u buffered.charlcd(16,6)
vlcdu main.add\u display(0,0,lcd\u one,4,0)
vlcd_main.add_display(0,4,lcd_two)
vlcd_main.init()

vlcd_support=virtual_buffered.charlcd(4,4)
vlcd_support.add_display(0,0,lcd_one)
vlcd_support.init()

my_game=game.piader([vlcd_main,vlcd_support])
我的游戏。game()



main()




40x4用作游戏液晶显示器:

drv.pins['e2']=6
lcd三=缓冲的。charlcd(40,4,drv,0,0)
lcd三.init()

myu game=game.piader([lcd三,无]

使用20x4作为游戏LCD:

my-u game=game.piader([lcd-one,none])



==


buffered.charlcd-->;lcd.charlcd
-->;buffered-u接口。buffered

direct.charlcd-->;lcd.charlcd
-->;直接接口。直接

lcd.charlcdvirtual-->;lcd.charlcd
-->;direct.direct

i2c.i2c-->;base.basedriver
null.null--/

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java安卓,如何从一个私有的内部类更新视图元素,这个类是一个异步任务   如果代码中没有数字,则返回true的java方法   java是否将liferay service builder数据放入api?   java如何在javafx中显示单元格中的字符串数组   javascript如何从另一个GUI类获取变量?   创建多个对象后的java REST API POST响应?   java中静态块中声明的变量的范围是什么?   jsp Java,Spring MVC,从服务器中提取任何类型的文件(.png,.jpg,.pdf,.doc等)并提供给用户下载的最简单方法?   java应用程序运行在其他应用程序之上   java正则表达式匹配字符串是否应包含“;”特定字符串前后   C++的java原生源代码。awt。机器人   用于访问/共享单个目录的java多个Xodus应用程序   java将方法传递给另一个活动   java如何获取Struts 2中XWWWForMurlen编码的contenttype的参数