0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何制作适用于树莓派的Adafruit 16x2字符LCD +键盘

454398 来源:网络整理 作者:网络整理 2019-11-28 17:38 次阅读

概述

如何制作适用于树莓派的Adafruit 16x2字符LCD +键盘

这种新的Adafruit板可轻松使用16x2字符LCD。就像我们在商店中购买的LCD系列一样,例如我们的经典蓝色和白色以及fancyRGB负和RGB正。不幸的是,这些LCD确实需要相当多的数字引脚,其中6个用于控制LCD,然后可能需要另外3个用于控制RGB。背光灯共有9个针脚。这几乎是Raspberry Pi上所有可用的GPIO!

考虑到这一点,我们希望使人们更轻松地将这些LCD纳入他们的项目,因此我们设计了一个Pi板,可让您控制一个16x2字符LCD,最多3个背光针脚AND 5个键盘引脚仅使用Pi上的两个I2C引脚!最好的部分是您也不会丢失这两个引脚,因为您可以粘贴基于i2c的传感器,RTC等,并使它们共享I2C总线

。 i》

警告:具有4个USB端口的新型Raspberry Pi型号B +紧密重叠char LCD板上带有背光电阻的引线。您需要用电工胶带覆盖USB端口和电阻器的背面,以防止它们接触。有关更多详细信息和图片,请参见本指南的组装页面。

此板非常适合您想要使用其自己的用户界面构建独立项目时使用。 4个方向按钮和选择按钮允许基本控制,而无需连接笨重的计算机。该套件是为任何Raspberry Pi(版本1和版本2)设计的。

如果要同时插入Cobbler或Gertboard ,请检查我们的堆叠接头,如果板是与该部件组装在一起的,则可以在其上安装IDC电缆。

零件清单

请检查以确保您的套件随附以下零件。有时我们会出错,因此请仔细检查所有内容并在需要更换时通过电子邮件发送电子邮件保护。

最近我们调整了套件,使按钮位于右侧而不是左侧。零件清单是相同的,只是比以前稳定一点

1)电阻

该套件中总共有3个电阻器。对于PCB上标有红色和蓝色的电阻,它们是1/4W 5%220欧姆电阻(红色,红色,棕色,金色)。对于PCB上标有GREEN的电阻器,它是一个1/4W 5%330欧姆电阻器(橙色橙色棕金色)。

2)电位器

有一个10k的微调电位器。这部分将放在标有对比度的地方

3)按钮 》

共有5 x 6mm的触觉开关按钮。这些将在PCB的UP,DOWN,LEFT,RIGHT和SELECT位置中使用。

4)i2c端口扩展器芯片

套件中有这些MCP23017 i2c(16个输入/输出)端口扩展器芯片之一。这就是我们只能使用2个R-Pi引脚来运行整个LCD和按钮的方式。单击此处获取有关此芯片的更多信息。

5)公头针

套件中有36条外排针。这些将用于将LCD连接到PCB。

6)印刷电路板

套件中将有一个PCB,如上所示。

7)Raspberry Pi板式接头连接器

将有一个用于插入Pi的超高26针母接头

8)保险杠

上面将显示一个橡胶保险杠

其他

您还需要将LCD放入屏蔽罩。

您的LCD可能有16针(单色)或18针(RGB),并且可能有两排连接器或一排。这是正常现象,不会影响显示

您还可以使用大小相同,没有RGB背光或完全没有背光的16x2 LCD。

我们提供负型或正型LCD以及蓝色和白色LCD

程序集

《表类=“ build-table”》

对照零件清单检查套件,以确认您具有所有必需的零件

我们最近调整了套件,使按钮位于右侧而不是左侧。零件清单是相同的,只是比以前稳定一点

将印刷电路板放入虎钳或电路板固定器中,加热烙铁并确保准备就绪!

我们将从第一个电阻 GREEN 开始-它上面有橙色,橙色,棕色和金色的带。此电阻用作绿色背光引脚的背光控制电阻。

将电阻弯曲成一个“钉”,并将其滑入PCB上标有 GREEN 的插槽中。电阻没有方向,因此您可以以“任一种方式”放置它,并且可以找到它。

弯曲电阻器的“脚”,使其与PCB平齐并翻转。

这样,电阻器不会在跌落时掉出

加热烙铁并准备就绪后,将电阻的两根引线焊接在一起。为此,将圆环垫和导线同时加热2到3秒钟,然后将焊料的末端浸入加热的接头中使其融化。

然后移走焊料并

焊接完成后,我们可以通过修剪电阻的引线来进行清理。这可以防止他们短路。使用对角线或平头切割器将导线固定在焊点末端的上方。

因为您在第一个方面做得如此出色电阻,我们现在将其余所有电阻同时放置。

两个220欧姆电阻 RED 和 BLUE -之所以命名,是因为它们是LCD上RGB背光的背光串联电阻。这些电阻器的颜色为红色红色棕色金。

焊接电阻器就像处理电阻一样第一个。

剪切所有线索。

接下来,我们将放置按钮。这些按钮对于将信号发送到Pi很有用(例如,如果您有基本的菜单系统)。我们有一个用于上/下/左/右输入的四向“方向键”和一个叫做“选择”的向右按钮。这5个按钮应该可以使与项目的“交谈”变得容易。这些都连接到I2C端口扩展芯片,因此它们在Pi上不需要额外的引脚,我们的库执行读取是否被按下的工作。

所有按钮都是相同的,应该很好地固定到位按下每个按钮,直至其卡入并平放在PCB上。

我们最近调整了套件,使按钮位于右侧,而不是左侧。按钮在同一位置对齐,但是在右侧

翻转PCB并检查按钮的所有支脚都伸出。

焊接每条支脚,注意不要意外“短路”两个按钮的腿在一起。方向盘的位置非常接近!

该套件可能带有两个电位计-一个大的蓝色用于为LCD供电,而一个较小的橙色用于屏蔽套件。您可以扔掉或回收蓝色的,这里只使用橙色的!

我们最近调整了套件,使电位计位于中心而不是右侧,以相同的方式进行,只是

翻转PCB并焊接电位计的三个支脚

我们快完成了!现在,我们将放置I2C端口扩展器芯片。仔细检查其上是否带有 MCP23017-E/SP 标记。这是一个16针扩展器芯片,使用i2c总线。这意味着您可以使用Pi上的i2c引脚发送命令,并控制16个以上的数字引脚!这些引脚中的5个进入按钮,6个进入LCD控制,3个用于背光(其余2个未使用)。

与按钮或电阻不同,芯片的确有方向性,必须插入正确的方式!首先,使用平整的桌子小心地弯曲芯片的腿,使它们平行。然后将其滑入丝网印刷的轮廓中,使芯片末端的凹口位于 right 上。单击左侧的图像,以确保您正确地找到了它。确定后,将芯片按入位置

我们最近调整了套件,使芯片位于左侧,并且具有相同的对齐方式,只是移了

翻转PCB并焊接端口扩展器的28个引脚。

接下来,我们将附加标题,其中有一个套件中包括标准的“超高”接头。但是,如果您要将补鞋匠或GertBoard等连接到板上,则可能要选择我们的堆叠接头之一,它们很长,因此您可以在顶部插入IDC电缆!

在焊接接头之前,请从底板上取下保险杠,然后将其固定在下面,以便在插入PCB时将其置于以太网插孔上方。

如图所示,在左侧按钮位于套件上的按钮上,将其放在对比电位计的正下方。

在套件上按钮位于右侧的套件上,将其放置在平放的按钮旁边(该按钮不应与任何按钮支脚重叠)

将2x13接头连接到您的Pi上,然后将板滑动到顶部,应该完全合适。

现在,我们将焊接板的所有26个引脚-这将发送两块板之间的电源和数据,还提供了机械稳定性。您可能需要用胶带将平板向下压,以使其平放在Pi上。

焊接在一个引脚上,我们建议右上角,然后检查印版是否平放。如果没有,则用一只手加热关节,同时用另一只手稳定直到正确。

然后焊接其他25个引脚

最后,我们放置LCD。

从套件中的棒上断开18或16针接头。

如果您有RGB显示器,则需要18,对于蓝色和白色,则需要16

将插头插入剩余的插槽中,并使引脚的长端朝上。如果只有16个插针,则将最右边的两个焊盘留空

将LCD滑到标题上,以使其完全对准四个孔和丝网的中心。

您的LCD可能有两排连接器或一排。如果它是一个两行连接器的LCD,我们不使用底行,请继续使用该LCD,因为它刚好适合了!

LCD应该紧贴按钮“ 插入”

仔细翻转程序集。然后焊接标题的

的16或18针i》 警告:如果您使用的是带有4个USB端口的新型Raspberry Pi B +型,则需要采取一些额外的步骤,以确保背光电阻导线不会碰到USB端口并短路。有关更多详细信息,请参见以下步骤。

B +型保护使用新的Raspberry Pi B +型及其额外的USB端口,字符LCD屏蔽的布局会出现一些问题。如下图所示,三个通孔背光电阻的引线恰好在金属USB端口之一的上方。不幸的是,这些引线非常接近,并且可能与金属USB端口短路。

电阻电路中有电流限制,因此,如果短路,则不会损坏Pi,但请确保覆盖USB端口和电阻引线在几层电工胶带中。确保使用平头切割器将电阻引线尽可能短地切割,并尝试确保切割的引线或焊料没有尖锐的边缘。请参阅下面带有指向两个位置的箭头的照片,应放置电气胶带。

请注意,如果您使用的是A或B型Raspberry Pi(即仅具有1个或2个USB端口的Pi),则可以跳过这一步,继续前进。仅当使用Raspberry Pi B +型,具有4个USB端口的Pi时,才需要添加此磁带。

就是这样!完成焊接后,现在只需运行下一个“用法”部分中的代码即可。

Python用法

使用带有Python和Adafruit CircuitPython CharLCD库的I2C 16x2 RGB LCD Pi板很容易。该库使您可以轻松地编写控制RGB字符LCD的Python代码。

按照前几页所示组装板并将其附加到Pi。

您需要先设置Raspberry PI与I2C配合使用,然后才能使用!查看Raspberry Pi上的CircuitPython指南以获取详细信息:https://learn.adafruit.com/circuitpython-on-raspberrypi-linux

CharLCD库的Python安装

您需要安装提供CircuitPython支持的Adafruit_Blinka库在Python中。这还需要在Raspberry Pi上启用I2C并验证您正在运行Python 3。

完成后,从命令行运行以下命令:

sudo pip3 install adafruit-circuitpython-charlcd

如果您的默认Python是版本3,则可能需要运行“ pip”。只要确保您不尝试在Python 2.x上使用CircuitPython,就不支持它!

Python代码

为演示字符LCD的用法,我们将对其进行初始化并使用CircuitPython代码显示文本。

首先,您需要导入必要的模块,初始化I2C总线,并创建字符LCD类的实例。将以下代码粘贴到您的REPL中:

下载:文件

复制代码

import board

import busio

import adafruit_character_lcd.character_lcd_rgb_i2c as character_lcd

lcd_columns = 16

lcd_rows = 2

i2c = busio.I2C(board.SCL, board.SDA)

lcd = character_lcd.Character_LCD_RGB_I2C(i2c, lcd_columns, lcd_rows) import board

import busio

import adafruit_character_lcd.character_lcd_rgb_i2c as character_lcd

lcd_columns = 16

lcd_rows = 2

i2c = busio.I2C(board.SCL, board.SDA)

lcd = character_lcd.Character_LCD_RGB_I2C(i2c, lcd_columns, lcd_rows)

现在您就可以开始在显示屏上书写文字和字符了! LCD类的用法与并行LCD接线指南中的显示完全相同。请务必查看该指南,以全面了解LCD的用法。

尽管可以运行以下代码来使用color属性将背光设置为红色,然后使用message属性以将文本写入显示:

下载:文件

复制代码

lcd.color = [100, 0, 0]

lcd.message = “Hello CircuitPython” lcd.color = [100, 0, 0]

lcd.message = “Hello CircuitPython”

有关更多功能,请参见并行LCD指南以控制LCD!

如果看不到任何内容,请调整电位计上的电位器,直到出现消息。电位器位于按钮下方与LCD相对的下方。

使用带Python的RGB字符LCD Pi Plate和Adafruit CircuitPython CharLCD库就可以了!

完整示例代码

将以下文件保存到您的pi并运行它以观看字符LCD库必须提供的一些不同内容的演示!

下载:项目Zip 或 charlcd_i2c_rgb_simpletest.py | 在Github上查看

复制代码

“”“Simple test for I2C RGB character LCD shield kit”“”

import time

import board

import busio

import adafruit_character_lcd.character_lcd_rgb_i2c as character_lcd

# Modify this if you have a different sized Character LCD

lcd_columns = 16

lcd_rows = 2

# Initialise I2C bus.

i2c = busio.I2C(board.SCL, board.SDA)

# Initialise the LCD class

lcd = character_lcd.Character_LCD_RGB_I2C(i2c, lcd_columns, lcd_rows)

lcd.clear()

# Set LCD color to red

lcd.color = [100, 0, 0]

time.sleep(1)

# Print two line message

lcd.message = “Hello CircuitPython”

# Wait 5s

time.sleep(5)

# Set LCD color to blue

lcd.color = [0, 100, 0]

time.sleep(1)

# Set LCD color to green

lcd.color = [0, 0, 100]

time.sleep(1)

# Set LCD color to purple

lcd.color = [50, 0, 50]

time.sleep(1)

lcd.clear()

# Print two line message right to left

lcd.text_direction = lcd.RIGHT_TO_LEFT

lcd.message = “Hello CircuitPython”

# Wait 5s

time.sleep(5)

# Return text direction to left to right

lcd.text_direction = lcd.LEFT_TO_RIGHT

# Display cursor

lcd.clear()

lcd.cursor = True

lcd.message = “Cursor! ”

# Wait 5s

time.sleep(5)

# Display blinking cursor

lcd.clear()

lcd.blink = True

lcd.message = “Blinky Cursor!”

# Wait 5s

time.sleep(5)

lcd.blink = False

lcd.clear()

# Create message to scroll

scroll_msg = ‘《-- Scroll’

lcd.message = scroll_msg

# Scroll to the left

for i in range(len(scroll_msg)):

time.sleep(0.5)

lcd.move_left()

lcd.clear()

time.sleep(1)

lcd.message = “Going to sleep Cya later!”

time.sleep(5)

# Turn off LCD backlights and clear text

lcd.color = [0, 0, 0]

lcd.clear()

“”“Simple test for I2C RGB character LCD shield kit”“”

import time

import board

import busio

import adafruit_character_lcd.character_lcd_rgb_i2c as character_lcd

# Modify this if you have a different sized Character LCD

lcd_columns = 16

lcd_rows = 2

# Initialise I2C bus.

i2c = busio.I2C(board.SCL, board.SDA)

# Initialise the LCD class

lcd = character_lcd.Character_LCD_RGB_I2C(i2c, lcd_columns, lcd_rows)

lcd.clear()

# Set LCD color to red

lcd.color = [100, 0, 0]

time.sleep(1)

# Print two line message

lcd.message = “Hello CircuitPython”

# Wait 5s

time.sleep(5)

# Set LCD color to blue

lcd.color = [0, 100, 0]

time.sleep(1)

# Set LCD color to green

lcd.color = [0, 0, 100]

time.sleep(1)

# Set LCD color to purple

lcd.color = [50, 0, 50]

time.sleep(1)

lcd.clear()

# Print two line message right to left

lcd.text_direction = lcd.RIGHT_TO_LEFT

lcd.message = “Hello CircuitPython”

# Wait 5s

time.sleep(5)

# Return text direction to left to right

lcd.text_direction = lcd.LEFT_TO_RIGHT

# Display cursor

lcd.clear()

lcd.cursor = True

lcd.message = “Cursor! ”

# Wait 5s

time.sleep(5)

# Display blinking cursor

lcd.clear()

lcd.blink = True

lcd.message = “Blinky Cursor!”

# Wait 5s

time.sleep(5)

lcd.blink = False

lcd.clear()

# Create message to scroll

scroll_msg = ‘《-- Scroll’

lcd.message = scroll_msg

# Scroll to the left

for i in range(len(scroll_msg)):

time.sleep(0.5)

lcd.move_left()

lcd.clear()

time.sleep(1)

lcd.message = “Going to sleep Cya later!”

time.sleep(5)

# Turn off LCD backlights and clear text

lcd.color = [0, 0, 0]

lcd.clear()

下载

GitHub上的Adafruit的Pi Python代码库

EagleCAD PCB文件

Adafruit Fritzing库中的Fritzing对象

检查“用法”页面,了解如何使用git直接从您的Pi安装示例python代码。

责任编辑:wv

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • lcd
    lcd
    +关注

    关注

    34

    文章

    4278

    浏览量

    164097
  • 树莓派
    +关注

    关注

    113

    文章

    1639

    浏览量

    104737
收藏 人收藏

    评论

    相关推荐

    在3伏电压下使用字符LCD模块

    LCD模块与七段LED显示屏相比,LCD模块比LED显示屏可以显示更多的字符。大多数 LCD 模块的功耗小于 1 mA,因此也适用于电池供电
    发表于 02-02 16:56 145次阅读
    在3伏电压下使用<b class='flag-5'>字符</b><b class='flag-5'>LCD</b>模块

    【开源项目】Emo:基于树莓 4B DIY 能笑会动的桌面机器人

    Emo是一款基于树莓4做的个人伴侣机器人,集时尚与创新于一身。它不仅仅是一款机器人,更是一个活生生的存在,与其他机器人不同,它拥有独特的个性和情感。 硬件部分 树莓 4B
    发表于 12-26 15:18

    树莓3树莓4原理图分享

    提供了树莓3、树莓3B、树莓4版本的原理图
    发表于 09-27 07:58

    如何连接16x2 LCD显示器

    电子发烧友网站提供《如何连接16x2 LCD显示器.zip》资料免费下载
    发表于 07-12 09:21 0次下载
    如何连接<b class='flag-5'>16x2</b> <b class='flag-5'>LCD</b>显示器

    适用于现有键盘的通用免触摸键盘适配器

    电子发烧友网站提供《适用于现有键盘的通用免触摸键盘适配器.zip》资料免费下载
    发表于 06-30 15:07 0次下载
    <b class='flag-5'>适用于</b>现有<b class='flag-5'>键盘</b>的通用免触摸<b class='flag-5'>键盘</b>适配器

    基于HC-05蓝牙模块控制16x2 LCD显示屏

    电子发烧友网站提供《基于HC-05蓝牙模块控制16x2 LCD显示屏.zip》资料免费下载
    发表于 06-30 15:05 0次下载
    基于HC-05蓝牙模块控制<b class='flag-5'>16x2</b> <b class='flag-5'>LCD</b>显示屏

    支持物联网的16x2 LCD屏幕

    电子发烧友网站提供《支持物联网的16x2 LCD屏幕.zip》资料免费下载
    发表于 06-28 14:35 0次下载
    支持物联网的<b class='flag-5'>16x2</b> <b class='flag-5'>LCD</b>屏幕

    如何将16x2 LCD与Raspberry pi4连接

    电子发烧友网站提供《如何将16x2 LCD与Raspberry pi4连接.zip》资料免费下载
    发表于 06-19 11:45 0次下载
    如何将<b class='flag-5'>16x2</b> <b class='flag-5'>LCD</b>与Raspberry pi4连接

    适用于Arduino的Adafruit NeoPixel Shield

    电子发烧友网站提供《适用于Arduino的Adafruit NeoPixel Shield.zip》资料免费下载
    发表于 06-09 10:27 0次下载
    <b class='flag-5'>适用于</b>Arduino的<b class='flag-5'>Adafruit</b> NeoPixel Shield

    NodeMCU 16X2 LCD代码问题如何解决?

    决它吗? 代码:全选#include #include // Set the LCD address to 0x27 for a 16 chars and 2 line displ
    发表于 06-09 08:00

    是否有适用于LPC4357的替代屏幕?

    我正在考虑使用 LPC4357-K43WQA 开发板开始一些开发。它适用于需要 LCD 屏幕的项目。LPC ARM 设备是我们在这里体验最多的,因此使用 LPC4357 并带有 LCD 屏幕的开发板
    发表于 06-02 07:57

    基于AT89C51单片机1602LCD显示仿手机键盘按键字符

    基于AT89C51单片机1602LCD显示仿手机键盘按键字符Proteus仿真及程序
    发表于 05-04 15:19 0次下载

    适用于 M16C/62P 的瑞萨入门套件快速入门指南

    适用于 M16C/62P 的瑞萨入门套件快速入门指南
    发表于 04-28 19:09 1次下载
    <b class='flag-5'>适用于</b> M<b class='flag-5'>16</b>C/62P 的瑞萨入门套件快速入门指南

    适用于 M16C/26A 教程手册的 Renesas 入门套件

    适用于 M16C/26A 教程手册的 Renesas 入门套件
    发表于 04-28 19:05 0次下载
    <b class='flag-5'>适用于</b> M<b class='flag-5'>16</b>C/26A 教程手册的 Renesas 入门套件

    适用于 M16C/29 教程手册的 Renesas 入门套件

    适用于 M16C/29 教程手册的 Renesas 入门套件
    发表于 04-28 19:02 0次下载
    <b class='flag-5'>适用于</b> M<b class='flag-5'>16</b>C/29 教程手册的 Renesas 入门套件