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

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

3天内不再提示

OLED显示器如何与Raspberry Pi一起使用?

科技观察员 来源:circuitdigest 作者:萨达姆 2022-11-17 16:52 次阅读

我们大多数人都熟悉16×2点阵LCD显示器,在大多数项目中用于向用户显示一些信息。但是这些LCD显示器有很多局限性。在本教程中,我们将了解OLED显示器以及如何将它们与Raspberry Pi一起使用。市场上有很多类型的OLED显示器,有很多方法可以让它们工作。我们已经将 7 针 OLED 与 Arduino 一起使用。

所需硬件

128×64 OLED 显示模组 (SSD1306)

树莓派

面包板

连接线

电源

了解OLED显示器:

术语OLED代表“有机发光二极管”,它使用与我们大多数电视中使用的相同技术,但与它们相比像素更少。将这些看起来很酷的显示模块与Raspberry Pi连接真的很有趣,因为它会让我们的项目看起来很酷。我们在这里介绍了有关OLED显示器及其类型的完整文章。在这里,我们使用单色 4 针 SSD1306 0.96 英寸 OLED 显示屏。此液晶屏只能与 I2C 模式配合使用。

poYBAGN19keAISeQAAA76nBfuRE571.jpg

poYBAGN19kqANx8NAABLt8eQv9o212.jpg

以下是OLED与树莓派的连接:

有机硅引脚 RPI 引脚
可变资本公司 3.3V
接地 接地
自主权评估 SDA(物理引脚 3)
标准及校正实验所 SCL(物理引脚 5)

电路图:

pYYBAGN19kuAUn1JAADekWYXGQo048.png

poYBAGN19lGAZkrqAAE44vlSzYM680.jpg

将OLED与树莓派连接:

RPI社区已经为我们提供了很多库,可以直接用于使这变得更加简单。我尝试了一些库,发现Adafruit_SSD1306 OLED库非常易于使用,并且有一些图形选项,因此我们将在本教程中使用相同的选项。

步骤 1:启用 I2C 通信

在安装 Adafruit SSD1306 库之前,我们需要在树莓派中启用 I2C 通信。

要在树莓派控制台中执行此操作:

sudo raspi-config

然后会出现蓝屏。现在选择接口选项

pYYBAGN19lKALXQzAABaCu_MXus618.png

在此之后,我们需要选择I2C

pYYBAGN19lWAbvE-AABgdvt9pKQ463.png

在此之后,我们需要选择是并按回车键,然后确定

poYBAGN19laAWTcPAAAldGEUqF8406.png

在此之后,我们需要通过发出以下命令重新启动树莓派:

sodo reboot

第 2 步:查找 OLED I2C 地址并更新它

然后我们需要使用给定的命令找到OLED I2C地址,您将看到一个十六进制地址。

sudo i2cdetect –y 1

pYYBAGN19leAZUwVAAAVJM7Z8Zs681.png

然后使用给定的命令更新树莓派:

sudo apt-get update

第 3 步:安装 python-pip 和 GPIO 库

在此之后,我们需要使用给定的命令安装pip:

sudo apt-get install build-essential python-dev python-pip

并安装树莓派 GPIO 库

sudo pip installs RPi.GPIO

步骤 4:安装Python 映像库和smbus库

最后,我们需要使用给定的命令在 Raspberry Pi 中安装 Python 映像库和 smbus 库:

sudo apt-get install python-imaging python-smbus

pYYBAGN19liAeM9GAACcZ7_PLOk969.png

第 5 步:安装 Adafruit SSD1306 python 库

现在是时候使用给定的命令安装 Adafruit SSD1306 python 库代码和示例了:

sudo apt-get install git

git clone

https://github.com/adafruit/Adafruit_Python_SSD1306.git

cd Adafruit_Python_SSD1306 sudo python setup.py install

poYBAGN19luANEYoAAB8cGXW8LM309.png

现在用户可以在树莓派中找到OLED接口的代码,您可以直接播放或自己自定义。在这里,我们自定义了一个示例代码进行演示。您可以在文章末尾找到完整的 Python 代码。

pYYBAGN19l6AYxeeAADwmuf4REg794.jpg

编程说明:
用于将OLED与RPi项目接口的编程部分很容易。首先,我们需要导入一些必要的库。

import time
import Adafruit_GPIO.SPI as SPI
import Adafruit_SSD1306
from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont
import subprocess
在此初始化后初始化显示

RST = 0

disp = Adafruit_SSD1306.SSD1306_128_64(rst=RST)
disp.begin()
disp.clear()
disp.display()

width = disp.width
height = disp.height

image1 = Image.new('1', (width, height))

draw = ImageDraw.Draw(image1)
draw.rectangle((0,0,width,height), outline=0, fill=0)

padding = -2
top = padding

bottom = height-padding
x = 0
font = ImageFont.load_default()

在此之后,我们可以使用给定的代码将数据或图像发送到OLED
# Write two lines of text.

disp.clear()
disp.display()
draw.text((x, top), "OLED Interfacing " , font=font, fill=255)
draw.text((x, top+8), "Circuit Digest", font=font, fill=255)
draw.text((x, top+16), "For more Videos", font=font, fill=255)
draw.text((x, top+25), "Visit at", font=font, fill=255)
draw.text((x, top+34), "www.circuitdigest.com", font=font, fill=255)

# Display image.
disp.image(image1)
disp.display()
time.sleep(2)

if disp.height == 64:
image = Image.open('img1.png').convert('1')
else:
image = Image.open('img1.png').convert('1')

disp.image(image)
disp.display()
time.sleep(2)

if disp.height == 64:
image = Image.open('img3.jpg').convert('1')
else:
image = Image.open('img3.jpg').convert('1')

这款OLED有两种变体,一种是128 * 32,另一种是128 * 64,因此用户可以在初始化OLED时相应地选择任何人。在这里,我们为两者编写了此代码。用户只需要初始化128 * 64像素的OLED,例如:

disp = Adafruit_SSD1306.SSD1306_128_64(rst=RST)

所有代码和函数都易于理解,无需进一步解释。只需开始并尝试使用高度,宽度和图像,并尝试其他一些功能来创建一些更酷的几何图形。

import time

import Adafruit_GPIO.SPI as SPI

import Adafruit_SSD1306

from PIL import Image

from PIL import ImageDraw

from PIL import ImageFont

import subprocess


RST = 0


disp = Adafruit_SSD1306.SSD1306_128_64(rst=RST)

disp.begin()

disp.clear()

disp.display()


width = disp.width

height = disp.height

image1 = Image.new('1', (width, height))

draw = ImageDraw.Draw(image1)

draw.rectangle((0,0,width,height), outline=0, fill=0)


padding = -2

top = padding

bottom = height-padding

x = 0

font = ImageFont.load_default()


while True:

draw.rectangle((0,0,width,height), outline=0, fill=0)


# Write two lines of text.

disp.clear()

disp.display()

draw.text((x, top), "OLED Interfacing " , font=font, fill=255)

draw.text((x, top+8), "Circuit Digest", font=font, fill=255)

draw.text((x, top+16), "For more Videos", font=font, fill=255)

draw.text((x, top+25), "Visit at", font=font, fill=255)

draw.text((x, top+34), font=font, fill=255)


# Display image.

disp.image(image1)

disp.display()

time.sleep(2)


if disp.height == 64:

image = Image.open('img1.png').convert('1')

else:

image = Image.open('img1.png').convert('1')


disp.image(image)

disp.display()

time.sleep(2)


if disp.height == 64:

image = Image.open('img3.jpg').convert('1')

else:

image = Image.open('img3.jpg').convert('1')


disp.image(image)

disp.display()

time.sleep(2)


if disp.height == 64:

image = Image.open('img4.jpg').convert('1')

else:

image = Image.open('img4.jpg').convert('1')


disp.image(image)

disp.display()

time.sleep(2)

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

    关注

    0

    文章

    56

    浏览量

    12380
收藏 人收藏

    评论

    相关推荐

    通过以太网线与VEE一起使用Raspberry Pi不起作用

    一起使用Raspberry Pi。我的问题是VEE没有检测到我的设备,我尝试使用覆盆子的IP地址进行手动配置,但它不起作用。 Raspberry Pi和PC是连接
    发表于 10-10 17:15

    Raspberry Pi扩展板

    Raspberry Pi 扩展板,包含个 MIDI 接口、DAC 和 OLED 显示器,只需要通孔焊接技能。这主要用作mt32-pi Roland
    发表于 07-29 06:12

    Raspberry Pi 4机械开关和OLED屏幕护罩的资料分享

    Raspberry Pi 4 机械开关和 OLED 屏幕护罩。材料:4 个 10 欧姆电阻。4 个机械键盘开关。1 个树莓派 3B40x 通用引脚。(如果您的电路板有引脚,请跳过此部分)1x
    发表于 08-30 07:23

    Raspberry Pi 3B+机械开关和OLED屏幕护罩的资料分享

    Raspberry Pi 3B+ 机械开关和 OLED 屏幕护罩。材料:4 个 10 欧姆电阻。4 个机械键盘开关。1 个树莓派 3B+40x 通用引脚。(如果您的电路板有引脚,请跳过此部分
    发表于 08-30 07:49

    Raspberry Pi 2机械开关和OLED屏幕护罩的资料分享

    Raspberry Pi 2 机械开关和 OLED 屏幕护罩。材料:4 个 10 欧姆电阻。4 个机械键盘开关。1 个树莓派 240x 通用引脚。(如果您的电路板有引脚,请跳过此部分)1x
    发表于 08-30 06:32

    如何在Raspberry Pi Pico中使用OLED显示器

    Raspberry Pi Pico中使用OLED显示器.zip》资料免费下载
    发表于 10-18 09:15 4次下载
    如何在<b>Raspberry</b> <b>Pi</b> Pico中使用<b>OLED</b><b>显示器</b>

    Raspberry Pi 3B机械开关和OLED屏幕护罩

    Raspberry Pi 3B机械开关和OLED屏幕护罩.zip》资料免费下载
    发表于 02-06 10:27 0次下载
    <b>Raspberry</b> <b>Pi</b> 3B机械开关和<b>OLED</b>屏幕护罩

    Raspberry Pi 2机械开关和OLED屏幕护罩

    Raspberry Pi 2机械开关和OLED屏幕护罩.zip》资料免费下载
    发表于 02-06 10:28 0次下载
    <b>Raspberry</b> <b>Pi</b> 2机械开关和<b>OLED</b>屏幕护罩

    将Arduino库与Raspberry Pi Pico C/C++ SDK一起使用

    Raspberry Pi Pico C/C++ SDK一起使用.zip》资料免费下载
    发表于 06-15 14:43 0次下载
    将Arduino库与<b>Raspberry</b> <b>Pi</b> Pico C/C++ SDK<b>一起</b>使用

    Raspberry Pi添加15美元的显示器

    Raspberry Pi添加15美元的显示器.zip》资料免费下载
    发表于 06-20 11:04 0次下载
    为<b>Raspberry</b> <b>Pi</b>添加15美元的<b>显示器</b>

    oled显示器

    oled显示器
    发表于 12-11 18:59 1211次阅读

    TFT LCD与Raspberry Pi连接的方式

    Raspberry pi款信用卡大小的紧凑型计算机,如今在物联网应用和数据科学、python、机器学习等高计算应用中非常流行。许多应用程序需要外部显示器才能与 Raspberry Pi 连接
    的头像 发表于 08-12 15:42 3311次阅读
    TFT LCD与<b>Raspberry</b> <b>Pi</b>连接的方式

    如何在Raspbian上设置没有显示器和键盘的Raspberry Pi

    显示器和键盘的 Raspberry Pi
    发表于 09-22 16:31 701次阅读
    如何在Raspbian上设置没有<b>显示器</b>和键盘的<b>Raspberry</b> <b>Pi</b>

    三星显示器计划将透明PI基板应用于柔性OLED

    显示器(Samsung Display)表示,正在考虑开发透光性更好的OLED面板,以提高屏幕下摄像头的质量。据报道,三星显示器计划到2024年将透明聚酰亚胺
    的头像 发表于 10-10 10:48 929次阅读

    如何将RFID模块与Raspberry Pi集成在一起

    和执行Raspberry Pi集成在一起。基于本文讨论的基本原理,我们还会制造个RFID狗门。
    的头像 发表于 02-27 10:27 319次阅读
    如何将RFID模块与<b>Raspberry</b> <b>Pi</b>集成在<b>一起</b>