我们大多数人都会熟悉大多数项目中用来向用户显示某些信息的16×2点矩阵LCD显示器。但是这些LCD显示器有很多限制。在本教程中,我们将学习 OLED显示以及如何在Raspberry Pi中使用它们。市场上有很多类型的OLED显示器,并且有很多使它们工作的方法。我们已经在Arduino上使用了7针OLED。
所需硬件:
- 128×64 OLED显示模块(SSD1306)
- 树莓派
- 面包板
- 连接线
- 电源供应
了解OLED显示器:
OLED一词代表“ 有机发光二极管”, 它使用了与我们大多数电视相同的技术,但与之相比像素更少。将这些外观酷炫的显示模块与Raspberry Pi进行接口确实很有趣,因为它将使我们的项目看起来很酷。我们在这里涵盖了有关OLED显示器及其类型的完整文章。在这里,我们使用的是 单色4针SSD1306 0.96英寸OLED显示屏。此LCD只能在I2C模式下工作。
以下是OLED与Raspberry pi的连接:
OLED引脚 | RPI针 |
VCC | 3.3v |
地线 | 地线 |
SDA | SDA(物理引脚3) |
SCL | SCL(物理引脚5) |
电路原理图:
将OLED与Raspberry Pi连接:
RPI社区已经为我们提供了许多库,可以直接使用它们来简化此过程。我试用了一些库,发现Adafruit_SSD1306 OLED库非常易于使用,并且具有少量图形选项,因此在本教程中将使用相同的库。
步骤1:启用I2C通信
在安装Adafruit SSD1306库之前,我们需要在Raspberry Pi中启用I2C通信。
为此,请在Raspberry Pi控制台中输入:
须藤raspi -config
然后将出现一个蓝屏。现在选择界面选项
之后,我们需要选择I2C
之后,我们需要选择是,然后按Enter,然后单击确定
此后,我们需要通过发出以下命令来重新启动树莓派:
SODO重启
步骤2:找到OLED I2C地址并更新
然后,我们需要使用给定的命令查找OLED I2C地址,您将看到一个十六进制地址。
sudo i2cdetect –y 1
然后使用给定的命令更新Raspberry Pi:
sudo apt-get更新
步骤3:安装python-pip和GPIO库
之后,我们需要使用给定命令 安装pip :
sudo apt-get install build-essential python-dev python-pip
并安装Raspberry Pi GPIO库
sudo pip安装RPi.GPIO
步骤4:安装 Python Imaging Library和 smbus 库
最后,我们需要使用给定的命令在Raspberry Pi中安装 Python Imaging Library和 smbus 库:
须藤apt-get install python-imaging python-smbus
步骤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安装
现在,用户可以在Raspberry Pi中找到OLED接口的代码,您可以直接播放或自定义它。在这里,我们定制了一个示例代码进行演示。您可以在文章结尾找到完整的Python代码。
编程说明:
OLED与RPi项目的接口编程部分很容易。首先,我们需要导入一些必要的库。
导入时间导入Adafruit_GPIO.SPI作为SPI从PIL导入Adafruit_SSD1306从PIL导入图像从PIL导入ImageDraw从PIL导入ImageFont导入子进程
在此之后初始化显示
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)填充= -2顶部=填充底部=高度填充x = 0字体= ImageFont.load_default() 之后,我们可以使用给定的代码将数据或图像发送到OLED
#写两行文字。 disp.clear() disp.display() draw.text((x,top),“ OLED接口”,font = font,fill = 255) draw.text((x,top + 8),“ Circuit Digest”, font = font,fill = 255) draw.text((x,top + 16),“观看更多视频”,font = font,fill = 255) draw.text((x,top + 25),“访问于” ,font = font,fill = 255) draw.text((x,top + 34),“ www.circuitdigest.com”,font = font,fill = 255) #显示图像。 如果disp.height == 64:disp.image(image1) disp.display( )time.sleep(2) : image = Image.open('img1.png')。convert('1') else: image = Image。打开('img1.png')。转换('1' ) 显示 图像(图像)显示。display() time.sleep (2) 如果disp.height == 64: image = Image.open('img3.jpg')。convert('1') else: image = Image.open('img3.jpg')。convert('1')
该OLED有两个变体,一个是128 * 32,另一个是128 * 64,因此用户可以在初始化OLED时相应地选择任何人。在这里,我们为两者编写了此代码。用户只需初始化OLED即可获得128 * 64像素,例如:
显示= Adafruit_SSD1306.SSD1306_128_64(rst = RST)
所有的代码和功能都易于理解,不需要进一步说明。刚开始并尝试播放高度,宽度和图像,然后尝试其他一些功能来创建一些更酷的几何图形。
完整的python代码和演示视频在下面给出,在这里您可以找到我们在该程序中使用的图像。
还要检查OLED与Arduino的接口。