一旦您’玩过LED,开关和步进电机,下一步自然是16×2个字母数字LCD模块。这些模块价格便宜(不到10美元),并且易于与Raspberry Pi进行接口。它们有16个连接,但是您只需要在Pi上使用6个GPIO引脚即可。
16个中的大多数 ×2个可用模块与Hitachi HD44780 液晶屏控制器兼容。这样一来,您几乎可以购买任何设备,并确保它能以与其他设备几乎相同的方式工作。在eBay上,有多种颜色的背光可供选择。我购买的那个有蓝色背光。
液晶模组硬件
- 地面
- VCC(通常+ 5V)
- 对比度调整(VO)
- 寄存器选择(RS)。
RS = 0:命令,RS = 1:数据 - 读/写(R / W)。
R / W = 0:写,R / W = 1:读 - 启用
- 位0(4位操作中不需要)
- 位1(4位操作中不需要)
- 位2(4位操作中不需要)
- 位3(4位操作中不需要)
- Bit 4
- Bit 5
- Bit 6
- Bit 7
- LED背光阳极(+)
- LED背光阴极(-)
通常,设备需要8条数据线才能将数据提供给位0-7。但是,可以将设备设置为“4 bit” mode which allows you to send data in two chunks (or nibbles) of 4位s. 这个 is great as it reduces the number of 通用输入输出 connections you require when interfacing with your Pi.
这是我连接液晶显示器的方式 :
液晶屏针 | 功能 | Pi功能 | Pin |
01 | 地线 | 地线 | P1-06 |
02 | +5V | +5V | P1-02 |
03 | 对比 | 地线 | P1-06 |
04 | RS | 通用输入输出7 | P1-26 |
05 | RW | 地线 | P1-06 |
06 | E | 通用输入输出8 | P1-24 |
07 | Data 0 | ||
08 | Data 1 | ||
09 | Data 2 | ||
10 | Data 3 | ||
11 | Data 4 | 通用输入输出25 | P1-22 |
12 | Data 5 | 通用输入输出24 | P1-18 |
13 | Data 6 | 通用输入输出23 | P1-16 |
14 | Data 7 | 通用输入输出18 | P1-12 |
15 | + 5V通过560ohm | ||
16 | 地线 | P1-06 |
注意 : RW引脚允许将设备置于读取或写入模式。我想将数据发送到设备,但不希望它将数据发送到Pi,所以我将此引脚接地。 Pi不能容忍其GPIO接头上的5V输入。将RW接地,可确保设备不会试图将数据线拉至5V,这会损坏Pi。
为了控制对比度,您可以调节提供给引脚3的电压。该电压必须在0至5V之间。我将此针脚接地。
引脚15为背光LED提供5V电压。那不是’不能在设备上清除该引脚是否可以直接连接到5V,所以我玩得很安全,并在此引脚上放置了一个560ohm电阻。
接线检查
在首次给电路上电之前,这里有一些完整性检查:
- 引脚1(GND),3(对比度),5(RW)和16(LED-)(应接地)。
- 引脚2应该连接到5V。针脚15的串联电阻应为5V,以保护背光。
- 引脚7-10未连接
- 引脚11-14连接到Pi上的GPIO引脚
蟒蛇
您可以使用任何喜欢的编程环境来控制HD44780样式的显示,但我选择的武器是Python。我用 RPi.GPIO库 提供对GPIO的访问。
这是我的代码:
#!/usr/bin/python #-------------------------------------- # ___ ___ _ ____ # / _ \/ _ \(_) __/__ __ __ # / , _/ ___/ /\ \/ _ \/ // / # /_/|_/_/ /_/___/ .__/\_, / # /_/ /___/ # # lcd_16x2.py # 16x2 液晶屏 Test Script # # Author : 马特 Hawkins # Date : 06/04/2015 # # //www.ytguangda.com/ # #-------------------------------------- # The wiring for the 液晶屏 is as follows: # 1 : 地线 # 2 : 5V # 3 : 对比 (0-5V)* # 4 : RS (Register Select) # 5 : R/W (Read Write) - GROUND THIS PIN # 6 : 启用 or Strobe # 7 : Data Bit 0 - NOT USED # 8 : Data Bit 1 - NOT USED # 9 : Data Bit 2 - NOT USED # 10: Data Bit 3 - NOT USED # 11: Data Bit 4 # 12: Data Bit 5 # 13: Data Bit 6 # 14: Data Bit 7 # 15: 液晶屏 Backlight +5V** # 16: 液晶屏 Backlight 地线 #import import RPi.GPIO as 通用输入输出 import time # Define 通用输入输出 to 液晶屏 mapping LCD_RS = 7 LCD_E = 8 LCD_D4 = 25 LCD_D5 = 24 LCD_D6 = 23 LCD_D7 = 18 # Define some device constants LCD_WIDTH = 16 # Maximum characters per line LCD_CHR = True LCD_CMD = False LCD_LINE_1 = 0x80#第一行的LCD RAM地址 LCD_LINE_2 = 0xC0#第二行的LCD RAM地址 # Timing constants E_PULSE = 0.0005 E_DELAY = 0.0005 def 主要(): # Main program block 通用输入输出.setwarnings(False) 通用输入输出设置模式(GPIO.BCM) # Use BCM 通用输入输出 numbers 通用输入输出.setup(LCD_E, 通用输入输出.OUT) # E 通用输入输出.setup(LCD_RS, 通用输入输出.OUT) # RS 通用输入输出.setup(LCD_D4, 通用输入输出.OUT) # DB4 通用输入输出.setup(LCD_D5, 通用输入输出.OUT) # DB5 通用输入输出.setup(LCD_D6, 通用输入输出.OUT) # DB6 通用输入输出.setup(LCD_D7, 通用输入输出.OUT) # DB7 # Initialise 显示 lcd_init() while True: # Send some test lcd_string("Rasbperry Pi",LCD_LINE_1) lcd_string("16x2 液晶屏 Test",LCD_LINE_2) time.sleep(3) # 3 second delay # Send some text lcd_string("1234567890123456",LCD_LINE_1) lcd_string("abcdefghijklmnop",LCD_LINE_2) time.sleep(3) # 3 second delay # Send some text lcd_string("RaspberryPi-spy",LCD_LINE_1) lcd_string(".co.uk",LCD_LINE_2) time.sleep(3) # Send some text lcd_string("Follow me 上",LCD_LINE_1) lcd_string("Twitter @RPiSpy",LCD_LINE_2) time.sleep(3) def lcd_init(): # Initialise 显示 lcd_byte(0x33,LCD_CMD) # 110011 Initialise lcd_byte(0x32,LCD_CMD) # 110010 Initialise lcd_byte(0x06,LCD_CMD) # 000110 Cursor move direction lcd_byte(0x0C,LCD_CMD) # 001100 Display On,Cursor Off, Blink Off lcd_byte(0x28,LCD_CMD) # 101000 Data length, number of lines, font size lcd_byte(0x01,LCD_CMD) # 000001 Clear 显示 time.sleep(E_DELAY) def lcd_byte(bits, mode): #发送字节到数据引脚 #位=数据 #模式=字符正确 #命令错误 通用输入输出.output(LCD_RS,模式)#RS #高位 通用输入输出.output(LCD_D4, False) 通用输入输出.output(LCD_D5, False) 通用输入输出.output(LCD_D6, False) 通用输入输出.output(LCD_D7, False) if bits&0x10==0x10: 通用输入输出.output(LCD_D4, True) if bits&0x20==0x20: 通用输入输出.output(LCD_D5, True) if bits&0x40==0x40: 通用输入输出.output(LCD_D6, True) if bits&0x80==0x80: 通用输入输出.output(LCD_D7, True) # Toggle 'Enable' pin lcd_toggle_enable() #低位 通用输入输出.output(LCD_D4, False) 通用输入输出.output(LCD_D5, False) 通用输入输出.output(LCD_D6, False) 通用输入输出.output(LCD_D7, False) if bits&0x01==0x01: 通用输入输出.output(LCD_D4, True) if bits&0x02==0x02: 通用输入输出.output(LCD_D5, True) if bits&0x04==0x04: 通用输入输出.output(LCD_D6, True) if bits&0x08==0x08: 通用输入输出.output(LCD_D7, True) # Toggle 'Enable' pin lcd_toggle_enable() def lcd_toggle_enable(): # Toggle enable time.sleep(E_DELAY) 通用输入输出.output(LCD_E, True) time.sleep(E_PULSE) 通用输入输出.output(LCD_E, False) time.sleep(E_DELAY) def lcd_string(message,line): # Send string to 显示 message = message.ljust(LCD_WIDTH," ") lcd_byte(line, 液晶屏_CMD) for i in range(LCD_WIDTH): lcd_byte(ord(message[i]),LCD_CHR) if __name__ == '__main__': try: 主要() except KeyboardInterrupt: pass finally: lcd_byte(0x01, 液晶屏_CMD) lcd_string("Goodbye!",LCD_LINE_1) 通用输入输出.cleanup()
可以使用以下命令下载此脚本 这个连结 或使用以下命令直接连接到您的Pi:
wget //bitbucket.org/MattHawkinsUK/rpispy-misc/raw/master/python/lcd_16x2.py
然后可以使用以下命令运行它:
sudo lcd_16x2.py
如果使用此代码,则唯一需要更改的就是GPIO引脚映射,具体取决于您在Pi 通用输入输出接头上使用的引脚。这是一些照片:
补充说明 : 向LCD发送命令时,RS为低电平;发送字符时,RS为高电平。 RW始终很低,以确保我们只将数据输入到模块中。 8位字节一次发送4位。高4位在前,后4位在后。在某些步骤之间添加了延迟,以确保模块可以在信号改变之前对其做出反应。
上面的代码是由‘texy’ 上 the RaspberryPi.org论坛。一世 changed the way the bytes are broken down to bits as this significantly increased the response time of the 显示.
故障排除
如果您遇到问题,请尝试:
- 仔细检查接线。
- 尝试将对比针上的电压调整为0V至3.3V。
- 将E_PULSE和E_DELAY参数从0.0005更改为0.001。一些屏幕对这些时间敏感并赢得了’如果它们太小,请初始化。
- Use 蟒蛇 2. 我没有’还没有使用Python 3进行过测试。
看看我的另一个 液晶屏相关帖子 其中包括20的详细信息×本文使用的4版屏幕。
100条留言
你好
你的例子很好,但我’使用20个问题×4 液晶屏 –我需要在脚本中更改什么才能显示所有4行?
谢谢,dex
我没有’t got a 20×4 液晶屏 so I can’不能检查一下,但是尝试…
将LCD_WIDTH = 16更改为LCD_WIDTH = 20
将行地址更新为:
液晶屏_LINE_1 = 0x80#第一行的LCD RAM地址
液晶屏_LINE_2 = 0xC0#第二行的LCD RAM地址
液晶屏_LINE_3 = 0x94#第三行的LCD RAM地址
液晶屏_LINE_4 = 0xD4#第4行的LCD RAM地址
这个 法国网站 使用此python代码,但使用4×20 显示
实际上,这些行的地址是:
液晶屏_LINE = [0x80,0xC0,0x94,0xD4]#4行的LCD RAM地址
我涵盖20×本教程中有4个屏幕: 20×4 液晶屏 Module Control 使用Python
对不起先生,我想问。
我使用树莓派2型b。针19到24已经用于RFID。
怎么换别针?
您可以使用不同的GPIO引脚,但必须在脚本中更新LCD_D4,LCD_D5,LCD_D6和LCD_D7变量。
嗯,我是看错了东西还是有一些困惑
“这是我连接液晶显示器的方式 ”
您说您将LCD引脚1连接到+ 5V p1_02–但是LCD引脚01是GND对吗?
所以下“这是我连接液晶显示器的方式 ”LCD引脚01实际上应该接地(p1_06),而LCD引脚02应该是+ 5V(p1_02)?
并在原理图和“Wiring Checks”您说将引脚1连接到GND。
我只是在疲倦和误读吗?
感谢您的教程,现在就开始学习吧!只是想问你-
你是对的。感谢您发现它。一世’ve更新了表格。 液晶屏的引脚1为接地,引脚2为+ 5V。
教程非常好,但是还有另一个小错误。下“这是我连接液晶显示器的方式 ”您将GPIO 7和GPIO 8用于RS和E,但是在python代码中将RS设置为26,将E设置为24。我必须更改这些行才能使LCD正常工作。
谢谢马库斯。一世’我已经纠正了。该示例使用GPIO引脚,这些引脚使面包板图更容易,但这与我的实际测试电路不同。我对两者感到困惑!
你好我’我被卡住了,我无法从屏幕上获得任何输出。它’点亮,但是在我运行代码时什么也没有。
1.我’m running 2.7 蟒蛇
2.我’m running 树莓派
3.我’m运行RPi.GPIO-0.3.1a
4.我’m运行python-rpi.gpio_0.3.1a-1_armhf.deb
5.而我’我很确定我的接线正确。
现在我的对比销(3)是否有问题-
Hi 马特.
感谢您的指导。
我有一个问题。
当python’s脚本已完成,显示由32个字符填充“inverted P”.
这是视频:
http://youtu.be/mrIJaIcRGkE
它可能是由电磁噪声(树莓和显示器之间的电线过长)引起的。
http://www.astromik.org/raspi/dis-wired.jpg
我解决了这个问题,在显示端口的引脚2和6之间连接了电阻150k。
这是一张图片:
http://www.astromik.org/raspi/dis-resistor.jpg
现在一切正常。
—
… excuse my english 🙂
我认为这是因为脚本完成后,RPi.GPIO库会将所有引脚配置为输入。这使使能引脚悬空。添加电阻会将其拉高,从而使屏幕无法’重置。我可以尝试一下我的电路。
我将屏幕连接起来与您的屏幕相同,但屏幕非常暗。
屏幕上没有颜色(即蓝色),几乎看不到字符块。
使用3.3k电阻,因为我找不到5600ohm。我仅有的其他电阻是10k,430、330电阻
LED背光电阻是560欧姆而不是5600欧姆。如果您使用的是3.3K,则LED不亮’无法获得足够的电流。请改用430,这样可以更好地点亮屏幕。
我已经整理好所有连线,并仔细检查了所有内容,尽管在液晶显示屏上一直都只能看到正方形。我重新布线,只是为了确保正确完成,仍然是同一问题。
有任何想法吗?
旁注:我也不确定是否需要电阻,LCD可以在2.7V至5.5V之间工作。电阻器的作用是阻止LCD上拉超过5v吗?
修复的所有问题都是出现正方形的连接问题。解决了此问题后,我开始出现奇怪的字符。通过设置我的语言环境设置或忽略SSH客户端作为语言环境发送的内容,也可以解决此问题。现在一切正常,教程不错!虽然有些地方令人困惑。
您是如何解决平方问题的?我有同样的问题,找不到任何帮助。
仔细检查对比针。尝试在0V至3.3V之间改变电压。
电阻用于LED背光,而不用于LCD本身。通常不是’请清除,但某些LCD模块不包含电阻器以限制LED背光灯吸收的电流。所以我总是放一个肯定。
感谢出色的教程。
I’我已经尝试过了,却遇到了令人担忧的问题。我不’看不到任何文字,显示屏的下部只有黑色的正方形。我担心的是,当我运行Python脚本时,数据线每条都读取5v。
引脚5 *绝对*接地,由于Pi只能在这些引脚上输出3.3v I’我猜这一定意味着LCD有故障吗?
任何建议将不胜感激。
非常感谢,
马特
我无奈地’签署了以上评论“Matt”. Apologies!
我完全按照图中所示进行接线并运行了脚本。但是LCD什么也没显示。我检查了接线,甚至编程2-3次也无济于事。
你觉得怎么样’s the problem??
(这是我的第一个gpio程序。)
不错的教程。万一有人’正在寻找Raspberry Pi上HD44780的完整库,请在这里’我这样做的尝试: //github.com/dbrgn/RPLCD It’s tested both 上 20×4 and 16×2个LCD并提供测试脚本以验证您的接线。
pingback: Afficheur 液晶屏 sur 树莓派 | Anderson69s
pingback: 16×2 液晶屏 Modülünü Bağladık! - 树莓派 Türkiye Topluluğu
你好,
我刚开始使用python,并且代码有问题。
我在一条简单的指令中收到无效的语法错误。
lcd_string(“Raspberry Pi”) in the 16×2 液晶屏 Module Control
我哪里做错了。谢谢..
嘿,我在流浪:我可以使用330R电阻代替630ohm吗?如果不能,我可以使用以下任何一种:10k 1k0吗?请尽快回复!在此先感谢和惊人的教程! (我在桌子后面遇到麻烦,因为没有6号针,我不能’不明白为什么引脚6上有那么多东西!
电阻器仅限制流向背光LED的电流。您绝对可以使用1K0。 330也可以,尽管这实际上取决于模块的确切规格。一些模块具有内置电阻器。我会选择1K0,看看背光有多亮。如果太暗,请尝试330。假设LED两端有2V电压,则电阻两端将剩下3V(5V-2V)。 330ohm表示电流为9mA(3/330)。对于大多数LED来说应该没问题。
你好
我想在LCD上显示自定义字符。您认为可以为此扩展教程吗?会很好。
由于我的屏幕很暗并且几乎看不到文字,如何增加对比度?
相片:
//www.dropbox.com/s/eumkc827c9uai1m/20140727_121500.jpg
//www.dropbox.com/s/vt2ulhqkmiou2wt/20140727_121505.jpg
非常感谢你做的这些!很有帮助!您能否提供任何有关为何跳过某些图钉的信息?另外,有什么想法如何连接和使用OLED显示屏吗? SPI还是I2C?
引脚7-10竞技场’t required as the device supports sending the data in blocks of 4位s. 这个 makes the code a bit more complicated but saves bothering with those pins in hardware.
非常感谢您的这段代码,但是,我’我有点神秘。我还没有实现它,只是想了解它的作用,而例程ldc_init()是我的问题。显然,它以半字节成对的方式将字节0x33、0x32、0x28、0x0C,0x06和0x01发送到设备,但请查看Hitachi HD44780U数据表(第42页,表12),因为设备以8位模式上电,因此它获得的第一个半字节将被解释为一个字节,因此在这种情况下它不需要第二个半字节。仅当通过第一个半字节将其置于4位模式时,它才需要成对的半字节中的后续数据。那么,为什么它并不会完全不同步…
您能否扩展lcd_init()中发生的事情?
干杯,
特里
lcd_byte(&H33, 液晶屏_CMD)
#synhcro轻咬(将其两次置于8位模式—00110011,写为0011XXXX 0011XXXX)
lcd_byte(&H32, 液晶屏_CMD)
#whilst still in 8 bit mode, 2nd part puts it in 4位 mode. 00110010 (as treats 0010 as 2nd cmd)
#这是“Synched”(因为半字节可以并且确实不同步,否则)
lcd_byte(&H28, 液晶屏_CMD)
#whilst keeping it in 4位 mode (0010XXXX), the latter (1000 in 00101000) says it is 2 line device.
lcd_byte(&HC,LCD_CMD)#设置显示在
lcd_byte(&H6,LCD_CMD)#设置光标的移动方向
lcd_byte(&H1, 液晶屏_CMD) #Clear — takes 2ms.
如果你们中的任何人在对比度方面遇到问题,请尝试使用从对比度引脚到地面的电位计。 (是)
嗨,马特– Great tutorial –这是我在网上看到的最清晰的一个。我想知道您是否有一个示例可以在8位模式下使用相同的规格显示?提前谢谢了!
你好,
感谢您发布本教程,但我’ve questions.
我在Raspberry Pi上连接了其他模块,所以我不能使用GPIO25和GPIO08。我可以使用其他引脚而不是此引脚来使其他模块和LCD一起工作吗?
谢谢。
您可以使用其他GPIO引脚。您只需要更改脚本即可使用这些GPIO引用。
你好
我有20×4 液晶屏模块lcm1602和hd44780。我正在使用I2c。
您是否具有在Raspberry Pi B +上与I2c一起使用的示例代码?
I want do 滚动ing (up, down, left , right) and custom character.
I’使用I2C并将Raspberry Pi B +连接到(SDA,SCL,GND,VCC)。
正在工作,但我’m newbie and i’我有兴趣做更多类似我说的事情。
谢谢
不幸的是我没有’没有带I2C接口的LCD模块,所以它不是’我可以尝试的东西。
你好
您的Python脚本很棒!非常感谢!
是否很难以8位模式使用LCD的方式进行修改?
我问是因为我不’不需要其他GPIO,也许在8位模式下使用LCD时,会浪费更少的CPU周期。
最好的祝福
基督教
您好,这里只是一个新手。
一开始,我按照指示进行了所有尝试。
按顺序连接它们:引脚1-16 ..运行了代码,然后什么也没出现,屏幕上只有(蓝色)LED背景。 http://imgur.com/aACM17Y.jpg
所以我检查了模块上的引脚配置’没有数据表),并发现以下内容: http://i.imgur.com/75gCeko.jpg
所以我按照标签上的说明重新接线,但是没有用;没有显示。我交换了针脚15和16(由于“label”在后面),LED的背景这次再次以白色方块点亮。 http://imgur.com/Rpnmz84.jpg
我以为很好。.那么当我运行程序时,什么也没出现,终端上也没有显示错误。似乎是什么问题?也许数据引脚混乱了? -.-
有人帮忙吗? --
PS。后面写的模型是jm1602m(在网上搜索了引脚配置,但与上面的示例相同)
您是否已将7-10针连接到任何东西?
液晶屏引脚的背面写为:15、16、1————14 but it doesn’甚至无法点亮LED背光灯,但是如果我将15和16插针更换了,现在变成了白色正方形。所以我’m using 16,15,1————14.如果那是正确的针脚分配,那么否,我没有连接针脚7-10。
你好!您能否进一步解释代码?代码中的注释很有用,但我想完全理解它。我打算将LCD与键盘上的输入接口,但不要’不知道如何。或者您可以将我链接到有关LCD代码的有用指南吗?
最好的祝福
你好
感谢出色的代码!一世’ve结合使用它和自写代码在LCD显示屏上显示我的一个传感器(DHT11)的温度和湿度,甚至使用gspread定期将这些值发送到在线Google文档。
I had another question for you- do you know of any code with which I can 滚动 the 显示 for texts which are longer than 16 characters?
谢谢!
来自德国的问候!
我从Ebay获得了一张CD,上面写着QC1602。我遵循了您的所有步骤,但我只能看到第一行有16个正方形,知道吗?请帮忙
我用这段代码在LCD上显示数据…当我过去运行代码时,它被执行了,但是我没有’在我的LCD上获取数据…… can anyone help me…..thnkss in advance….
我已经用LCD设置了树莓派。但是当我运行py文件时,它显示错误。
文件“/home/pi/Desktop/lcd-test.py”, line 7
语法错误:非ASCII字符‘\xc2’在第7行的文件/home/pi/Desktop/lcd-test.py中,但未声明编码;看到 http://www.python.org/peps/pep-0263.html 详情
任何想法如何解决这个问题?
删除第7行,然后重新输入。看起来像你’我那里有一个怪异的角色。
It is running now. 谢谢 马特. =)
I’ve对此表示感谢,感谢您的教程。
我有输出,但似乎是中文。我需要怎么做才能解决此问题
PS我没有使用电阻,我只是从3.3v为背光供电
你好
I’成为Raspberry Pi 2 B型的骄傲拥有者一周,’进行修补很高兴。您的教程似乎是了解GPIO引脚的一种好方法,因此我从eBay订购了便宜的HD44780 液晶屏。作为新手,我对您的教程和引脚说明有一些疑问:
您如何在网格下的引脚上编号“这是我连接液晶显示器的方式 ”:
P1-06,P1-02,P1-24等。 P1 com来自哪里?
液晶屏的引脚15应该连接到5V(Via电阻)。那也是引脚2(5V)还是可以连接到引脚4(5V)?
我可以在项目中使用该电阻器吗?
http://www.gotron.be/r1-1-kohm-metaalfilmweerstand-1-4-watt.html
对不起所有问题,它’有点不知所措,我’m试图理解与GPIO连接器的所有连接。
Congratulations 马特!!!
您的教程非常好并且确实有效,如果需要,也很容易理解和修改GPIO。
做得非常好,给您10分。
Hi 马特,
Great Tutorial ! It helped me a lot . Do you have any suggestions 上 getting the string input to 滚动 from left to right for 16×2 lcd module .
说我输入了一个字符串‘ABCD’, i would like it to 滚动 starting from the rightmost position of ‘lcd line 2’ and moving towards the left and 上ce it reaches the left most position of line2 is starts from the right most position of line 1 and keeps 滚动ing left again and repeats itself
这就是您需要的一切,但是这里有一些代码“scroll”跨给定宽度视口的字符串。避风港’还没有用我的16测试过×2, but if you run it in your terminal and cover everything but the line 显示ing it gives a nice 滚动ing effect 🙂 With a little work you could get it to move lines. (NOTE: for use with an lcd, change print to whatever the function is that you use to write a string to the 显示 and add a line as the parameter)
很抱歉输入错误:
您能告诉我显示后如何清除液晶屏吗?
提前致谢..!!
使用“lcd_byte(0x01,LCD_CMD)”应该清除显示。
pingback: 16×2个带背光开关的LCD模块控制|树莓派间谍
谢谢你真的很有帮助,您对其他答案的回答也一样’的查询以及其他贡献者的查询。
程序脚本中有一个小错误(我认为)。
179行–对lcd_string()的调用具有三个参数-如python告诉我的,当我退出时,它仅需要两个参数。卸下‘,2’解决投诉,但我不知道’不知道它是否有目的?
K
感谢您指出了这一点。额外的参数用于证明我在本文中使用的对此脚本进行了稍微修改的版本中的文本:
我整理了两个脚本,这是一个cut-n-paste错误。一世’ve corrected it now.
嗨,这是一个很棒的教程,但是我遇到了一个错误。您能帮我这个忙吗?
追溯(最近一次通话):
文件“lcd_16x2.py”, line 185, in
lcd_byte(0x01, 液晶屏_CMD)
文件“lcd_16x2.py”,第121行,在lcd_byte中
通用输入输出.output(LCD_RS,模式)#RS
RuntimeError:尚未将GPIO通道设置为OUTPUT
您是否直接从我的BitBucket存储库下载了脚本?
我有这个错误。我只是使用sudo运行它,它在LCD上显示了文本
嗨,大家好,我只是一个简单的问题,是任何与PI兼容的arduino 液晶屏模块。这些 http://www.ebay.com/itm/like/110950932768?lpid=82&chn=ps
我也可以将这个模块与rasberry pi一起使用
http://store.linksprite.com/linksprite-16×2-lcd-keypad-shield-for-arduino-version-b/
任何帮助非常感谢
I2C 液晶屏屏幕可以工作,但是一些用户说您需要在屏幕和Pi之间进行I2C连接的电平转换。一世’我有一个,它工作正常而没有电平变化。不确定第二项。
你好,
非常感谢你。做到了。
I’我做了一些优化,并用如下代码替换了lcd_byte()函数:
def lcd_byte(data, mode):
#发送字节到数据引脚
#模式=字符正确
#命令错误
GPIO.output(LCD_RS,模式)#RS
# High bits
通用输入输出.output(LCD_D4, data&0x10!=0)
通用输入输出.output(LCD_D5, data&0x20!=0)
通用输入输出.output(LCD_D6, data&0x40!=0)
通用输入输出.output(LCD_D7, data&0x80!=0)
lcd_toggle_enable()
# Low bits
通用输入输出.output(LCD_D4, data&0x01!=0)
通用输入输出.output(LCD_D5, data&0x02!=0)
通用输入输出.output(LCD_D6, data&0x04!=0)
通用输入输出.output(LCD_D7, data&0x08!=0)
lcd_toggle_enable()
为我工作。
亲切的问候。
您的是第三个16×我遵循了2个显示教程,第一个有效了。不错的工作–感谢您的分享。
谢谢您的精彩教程。祝好运
感谢本教程。一世’我已经在我的rPi2上执行了此操作,当我运行代码时,它似乎正在rpi上执行,但是屏幕上没有任何输出。第一行只有黑框,但实际上没有任何内容打印在屏幕上。希望您能有所启发
检查要施加到对比度引脚的电压。微调电位器是最好的,因此您可以对其进行调整。增加E_PULSE和E_DELAY常量也是值得的,因为某些屏幕在命令之间需要一些额外的时间。尝试将它们设置为0.0010。
I’我有一些错误,我不知道’不知道如何解决
“追溯(最近一次通话):
文件“lcdip.py”, line 139, in
主要()
文件“lcdip.py”, line 59, in 主要
lcd_string(socket.gethostbyname(socket.gethostname()),LCD_LINE_2)
文件“lcdip.py”,行131,在lcd_string中
lcd_byte(line, 液晶屏_CMD)
文件“lcdip.py”行82,在lcd_byte中
通用输入输出.output(LCD_RS,模式)#RS
RuntimeError: Please set pin numbering mode using 通用输入输出设置模式(GPIO.BOARD) or 通用输入输出设置模式(GPIO.BCM)”
请帮我-
仔细检查您的代码(包括缩进),或者理想情况下使用链接下载我的脚本。已设置板模式,因此错误消息表示代码结构有问题,并且该行未按正确的顺序执行。
我如何消除这个错误
请帮忙。
追溯(最近一次通话):
文件“/home/pi/Praveen/Test1/lcd.py”在lcd_init中的第123行
lcd_byte(0x33,LCD_CMD) # 110011 Initialise
文件“/home/pi/Praveen/Test1/lcd.py”,第137行,在lcd_byte中
通用输入输出.output(LCD_RS,模式)#RS
RuntimeError: Please set pin numbering mode using 通用输入输出设置模式(GPIO.BOARD) or 通用输入输出设置模式(GPIO.BCM)
您下载脚本了吗?的“GPIO.setmode” command is in the “main” function. So the error means your script is not running the 主要 function or you have no “GPIO.setmode” command.
SIR,我们需要对树莓派2模型b做哪些更改。先生,请帮忙,因为我是本科生,遇到了一些困难。
只要在Python脚本中正确映射了GPIO引用,它就可以与任何版本的Raspberry Pi一起使用。
很好的样品,非常感谢!
pingback: 使用An I2C 启用d 液晶屏 Screen With The 树莓派
我纠正了我以前的错误。但是lcd_byte(0x01,LCD_CMD)和GPIO.output(LCD_RS,mode)具有runtimeError:尚未将gpio通道设置为输出。任何想法?
我只能建议使用wget命令将脚本从BitBucket存储库中直接拉到您的Pi。听起来像你’缩进问题。
嘿,
感谢本教程。有用 -
非常非常棒
来自德国的问候
PI 2模型B的切换速度需求加倍
我一直在2上运行ROMAN NUMERAL CLOCK程序×以前型号的16 液晶屏很好。但是发现PI 2模型B仅在将“启用切换”翻倍至0.0010时才起作用。怀疑TIME例程没有处理更快的处理器速度。我的代码与您提供的代码几乎相同(不同的GPIO引脚),因为我也在使用Matt Hawkins代码。
感谢您的样本。我为我的项目修改了它,并完美地工作了。
马特
辉煌,简单,有效且外观精美
保持良好的工作!!
我正在将树莓派2与A / D转换器接口并在16中显示结果×2 液晶屏我必须在程序和电路中进行哪些修改
工作请客!–感谢分享。我将lcd_byte例程简化了一点:
def lcd_byte(bits, mode):
#发送字节到数据引脚
#位=数据
#模式=字符正确
#命令错误
通用输入输出.output(LCD_RS,模式)#RS
#高位
通用输入输出.output(LCD_D4,位&0x10==0x10)
通用输入输出.output(LCD_D5,位&0x20==0x20)
通用输入输出.output(LCD_D6,位&0x40==0x40)
通用输入输出.output(LCD_D7,位&0x80==0x80)
lcd_toggle_enable()
#低位
通用输入输出.output(LCD_D4,位&0x01==0x01)
通用输入输出.output(LCD_D5,位&0x02==0x02)
通用输入输出.output(LCD_D6,位&0x04==0x04)
通用输入输出.output(LCD_D7,位&0x08==0x08)
lcd_toggle_enable()
嗨!我认为它’s a nice tutorial but I am sad that I am not seeing anything 上 my lcd 屏幕. 🙁 。一世 have used my board pins.. not bcm pins. i can just see the backlight. My pins are connected like this:
液晶屏 VSS-> 地线
液晶屏 VDD-> 5V
液晶屏VO-> 地线
液晶RS-> PIN 3
液晶屏 RW-> 地线
液晶屏E-> PIN 5
D4-> PIN 11
D5-> PIN 13
D6-> PIN 15
D7-> PIN 19
液晶屏 A(阳极)-> 5V
液晶屏 K(应为阴极)-> 地线
当前状态是,背光灯正常运行,运行python代码后无任何反应…请帮帮我!一世’卡住了..我有一个科学项目将在2天之内完成…. I’更改了python代码。链接:
这些图钉的图像也位于以下链接中:
//drive.google.com/file/d/0B3v9Rje_QDtLRnVMTXFxWlA4NjA/view?usp=sharing
//drive.google.com/file/d/0B3v9Rje_QDtLYm1SdVVBQzlCQms/view?usp=sharing
//drive.google.com/file/d/0B3v9Rje_QDtLVGlTVVd3c3ZsN0E/view?usp=sharing
//drive.google.com/file/d/0B3v9Rje_QDtLMmp0cnNCOVd3bk0/view?usp=sharing
我不’t know if it’的焊接,但是..请帮帮我!
也许是对比。尝试将引脚3上的电压设置为0至5V。还可以尝试将E_PULSE和E_DELAY值增加到0.00010。
不工作我该怎么办!我按照所有步骤检查了三次连接,但没有任何显示!
背光灯正在工作,第一行仅成块出现。我应该怎么做,代码不会在python idle 3中运行一半时间,我正在将raspberry pi 3模型b +与raspian一起使用。请帮帮我
嗨,高ur瑞,我’在文章结尾处添加了一些疑难解答提示。
Hi 马特,
这是一个很棒的教程,我从该教程中学到了很多东西。
I have a question 上 how to 滚动 the text vertically since I have more than 16 characters to be 显示ed in 上e line. Please help me 上 this problem. Thank you very much.
你好 马特
我能知道您用来绘制连接的软件吗?谢谢
It’一个名为“Fritzing”.
感谢您的工作,也感谢您的分享!
但是,在经过一定的正常运行时间后,是否有人遇到奇怪的角色?
如果重新启动脚本,它就可以正常工作…。但是它只持续了30分钟…
有任何想法吗?
在本教程中,它说使用电阻将背光灯连接到5v。您也可以将其连接到3.3v。它使接线简单
很棒的教程!首先花了我一点时间来减少布线,但后来我明白了。基于您的Python代码,我’我们已经在Bash中编写了一个类似的程序,该程序利用了connectionPi gpio命令行实用程序: //github.com/ExpandingDev/Bash1602Driver