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--/
==
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
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
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:
'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=={
‘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)
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.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
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,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用作游戏液晶显示器:
lcd三=缓冲的。charlcd(40,4,drv,0,0)
lcd三.init()
myu game=game.piader([lcd三,无]
使用20x4作为游戏LCD:
==
buffered.charlcd-->;lcd.charlcd
-->;buffered-u接口。buffered
direct.charlcd-->;lcd.charlcd
-->;直接接口。直接
lcd.charlcdvirtual-->;lcd.charlcd
-->;direct.direct
null.null--/