在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

84x48像素單色LCD顯示屏的使用教程

454398 ? 來源:網絡整理 ? 作者:網絡整理 ? 2019-11-28 09:33 ? 次閱讀

概述

84x48像素單色LCD顯示屏的使用教程

這是我們84x48像素單色LCD顯示屏的快速教程。這些顯示器很小,直徑僅約1.5英寸,但由于具有很好的可讀性,并帶有背光。該顯示器由84x48單個像素組成,因此您可以將其用于圖形,文本或位圖。這些顯示器價格便宜,易于使用,僅需要幾個數字I/O引腳,并且功率也相當低。

要驅動顯示器,您將需要3到5個數字輸出引腳(取決于您是否要手動控制芯片選擇和復位線) )。另一個引腳可用于控制(通過開/關或PWM)背光為了使您更輕松,我們編寫了一個不錯的圖形庫,可以打印文本,像素,矩形,圓形和線條!該庫是為Arduino編寫的,但可以輕松移植到您最喜歡的微控制器

您可以在adafruit商店中選擇其中一個顯示器!

電源要求

顯示器使用飛利浦的PCD8544控制器芯片,并用于諾基亞3310和5110手機。該芯片設計為僅在3.3V電壓下運行,并具有3v的通信電平,因此對于5V的微控制器,需要邏輯電平轉換器(否則很容易損壞顯示屏)。

如果要使用背光燈,最多可以繪制80mA(4個白色LED,每個20mA)。背光引腳連接到晶體管,因此您可以從微控制器引腳一次PWM所有4個LED。

Arduino接線

LCD的運行電壓為3.3V,因此您需要使用電平轉換芯片與5V微控制器配合使用。以下將假定是這種情況。如果您正在運行3.3V微控制器系統,則可以跳過電平轉換器。

我們假設您要在面包板上使用它,請使用一塊0.1英寸接頭8針

span》

將LCD的任一側滑動到頁眉上,“較厚”的一端在頂部。

焊接所有引腳。

將電平轉換器芯片放在側面。引腳1在左側。

我們將從電源線開始。系統必須由3.3V供電,所以這里的紅色通過Arduino連接到3V引腳,接地為黑色。

連接引腳1 4050,LCD VCC 引腳和LCD 背光引腳為3.3V。

連接引腳 8 和4050的LCD的 GND 引腳接地。

驗證您是否看到背光LED點亮

可調光的背光選項:

這些板的較新版本的背光電路明顯不同,比舊板更亮。您可以在背光中添加一個鍋,以便您可以控制亮度。 (這也適用于較舊的電路板,但是亮度范圍會較低。)

可以如下圖所示連接可選電位計:

接下來,我們將開始對數據線進行接線。

將LCD的 RST (重置)引腳(橙色線)連接到4050的 2 引腳

將 CS (片選)引腳(黃線)連接到4050的 4 引腳。

將 D/C (數據/命令)引腳(綠線)連接到4050的 6 引腳。

下一步,連接:

DIN (數據輸入)引腳(藍色導線)到4050的 15 引腳

CLK (時鐘)引腳(紫色線)連接到4050的 12 引腳。

然后我們就可以連接數據了從arduino到LCD的線路。我們可以使用任意 5個引腳,但是您可能想先從我們的示例開始。

Arduino引腳 3 (橙色)變為引腳《4050的strong》 3 。

Arduino引腳 4 (黃色)變為引腳的 5 4050。

Arduino引腳 5 (綠色)轉到4050的引腳 7 。

Arduino引腳 6 (藍色)轉到4050的引腳 14 。

Arduino引腳 7 (紫色)轉到4050的引腳 11 。

現在您可以進行測試了!

Arduino測試

您可以在github上找到我們的Nokia Display Arduino庫。要安裝它,請單擊此按鈕以下載壓縮的ZIP文件,然后安裝它。如果您從未安裝過Arduino庫,本指南將幫助您進行安裝。

下載Adafruit PCD8544諾基亞LCD庫

然后您將擁有對github提供的Adafruit GFX Graphics核心庫執行相同的操作。點擊按鈕下載。然后,像完成庫一樣安裝Adafruit_GFX,只是這次將其命名為 Adafruit_GFX 等。

下載Adafruit GFX庫

重新啟動Arduino軟件。您應該在內部看到一個名為 Adafruit_PCD8544 的新示例文件夾,該示例名為 pcdtest 。打開該草圖并將其上傳到您的Arduino。您應該看到示例測試序列。

您可以控制背光,將背光引腳連接到5V時,背光要明亮得多(如果使用Adafruit的諾基亞顯示器,則不需要電平轉換器)。您可以使用Arduino引腳來控制背光,因為板上有一個晶體管。

圖形庫

我們已經準備就緒,可以使用具有位圖,形狀和文本基元的基本圖形庫。您可能可以使用它來做所有想做的事情。由于顯示器的工作方式,我們需要將整個顯示器緩沖在84x48位(504字節)的ram中。但是,屏幕更新非常快。

有關Adafruit GFX庫的詳細信息,請訪問http://learn.adafruit.com/adafruit-gfx-graphics-library-它支持線條,矩形,圓角矩形,圓形,

請注意,由于此顯示為MONOCHROMATIC,因此僅支持兩種顏色: 黑色或白色。黑色是顯示的點,白色是用于擦除像素的

不要忘記,在屏幕上繪制任何內容后,調用 display()將其寫到LCD上!

接線(較少的針腳)

您可以通過將CS引腳連接到接地來保存一些引腳(這意味著您不能在屏幕更新之間重復使用LCD的引腳,但是也許可以。您也可以連接 RST 固定到Arduino 重置,以便它將自動重置屏幕。

CircuitPython接線

使用帶有CircuitPython和 Adafruit CircuitPython PCD8544 模塊的諾基亞5110/3310 LCD很容易。此模塊使您可以輕松編寫Python代碼來控制顯示。

您可以將此傳感器與任何CircuitPython微控制器板一起使用,或者與具有GPIO和Python的計算機配合使用。 ,我們的CircuitPython-for-Python兼容性庫。

我們將介紹如何將諾基亞LCD連接到CircuitPython微控制器板上。首先組裝LCD。

我們將向您展示如何將其連接到Feather M4 Express。由于Feather M4 Express上的邏輯電平已經是3.3v,因此不需要邏輯電平轉換器。

將LCD連接到微控制器板上,如下所示。

微控制器GND 到 LCD Gnd

微控制器3V 到 LCD Vcc

單片機SCK 到 LCD Clk

微控制器MOSI 到 LCD Din

微控制器D6 至 LCD D/C

Microcontroller D5 到 LCD CS

Microcontroller D9 到 LCD Rst

微控制器D10 至 LCD Led

下載Fritzing圖

CircuitPython設置

PCD8544的CircuitPython安裝庫

要在您的Adafruit CircuitPython板上使用諾基亞5110/3310 LCD,您需要在板上安裝Adafruit CircuitPython PCD8544模塊。

首先請確保您運行的是最新版

下一步,您需要安裝必要的庫才能使用硬件-仔細按照以下步驟從Adafruit的CircuitPython庫包中查找并安裝這些庫。我們的CircuitPython入門指南上有一個很棒的頁面,介紹如何安裝庫捆綁包。

如果選擇,您可以在板上單獨手動安裝庫:

adafruit_pcd8544

adafruit_framebuf

adafruit_bus_device

在繼續制作之前確保您開發板的lib文件夾或根文件系統具有 adafruit_pcd8544 .mpy , adafruit_framebuf.mpy 和 adafruit_bus_device 文件和文件夾 已復制。

下一步連接到開發板的串行REPL,這樣您就可以在CircuitPython上得到》》》 提示。

CircuitPython的用法

使用帶有CircuitPython和 Adafruit CircuitPython PCD8544 模塊的諾基亞5110/3310 LCD很容易。該模塊使您可以輕松地編寫Python代碼來控制顯示。

您可以將此顯示與任何CircuitPython微控制器板一起使用。

為演示用法,我們將初始化該庫并使用Python代碼從開發板的Python REPL控制LCD。

初始化

首先需要初始化SPI總線。為此,請運行以下命令:

下載:文件

復制代碼

import adafruit_pcd8544

import board

import busio

import digitalio

spi = busio.SPI(board.SCK, MOSI=board.MOSI)

dc = digitalio.DigitalInOut(board.D6) # data/command

cs = digitalio.DigitalInOut(board.D5) # Chip select

reset = digitalio.DigitalInOut(board.D9) # reset

display = adafruit_pcd8544.PCD8544(spi, dc, cs, reset) import adafruit_pcd8544

import board

import busio

import digitalio

spi = busio.SPI(board.SCK, MOSI=board.MOSI)

dc = digitalio.DigitalInOut(board.D6) # data/command

cs = digitalio.DigitalInOut(board.D5) # Chip select

reset = digitalio.DigitalInOut(board.D9) # reset

display = adafruit_pcd8544.PCD8544(spi, dc, cs, reset)

初始化程序的最后三個參數是連接到顯示器的 DC 的引腳, CS ,并按此順序重置行。再次確保在連接到板上時使用正確的引腳名稱!

控制背光LED

您也可以控制顯示屏的背光LED。只要確保LED線已連接到您的微控制器即可。只需將其初始化為DigitalInOut輸出線即可。如果將其連接到其他輸出,請確保相應地更改端口

下載:文件

復制代碼

backlight = digitalio.DigitalInOut(board.D10) # backlight

backlight.switch_to_output() backlight = digitalio.DigitalInOut(board.D10) # backlight

backlight.switch_to_output()

要打開它,只需將其設置為True并設置為將其關閉,只需將其設置為False。

下載:文件

復制代碼

# Turn Backlight on

backlight.value = True

#Turn Backlight off

backlight.value = False # Turn Backlight on

backlight.value = True

#Turn Backlight off

backlight.value = False

“對比度和偏差”

兩個重要的設置是“對比度”和“偏差設置”,以便您可以看到顯示的內容。讓我們先看一下Bias設置。

Bias

Bias設置控制進入顯示屏的電壓量。值越高,顯示越暗。有點像顯示器上的亮度設置,但會使像素更濃。值通常為4-5很好。例如,要將其設置為5,您將鍵入:

下載:文件

復制代碼

display.bias = 5 display.bias = 5

對比度

對比度設置控制暗像素和亮像素之間的差異可以設置為0-127之間的任何值。就像顯示器上的對比度設置一樣。值太高會使所有內容顯得較暗,值太低會使所有內容顯得太淺。大約50-60的值看起來不錯。例如,要將其設置為50,您將鍵入:

下載:文件

復制代碼

display.contrast = 50 display.contrast = 50

您可能需要使用這些值的不同組合來查看是什么使您的特定顯示器

繪圖

PCD8544模塊當前支持在顯示器上繪制的一組基本命令。您可以設置單個像素,填充屏幕并寫文本行。

要填充或清除整個屏幕,請使用fill功能。此函數采用一個參數來指定要填充的顏色,對于白色,0,對于黑色,1。例如,將屏幕填充為黑色:

下載:文件

復制代碼

display.fill(1)

display.show() display.fill(1)

display.show()

注意,fill函數實際上并未更改顯示。您必須在執行繪制命令后調用show才能將更新的像素數據發送到顯示器!

要將屏幕清除為白色,只需再次調用fill,但顏色為0:

下載:文件

復制代碼

display.fill(0)

display.show() display.fill(0)

display.show()

要設置像素,請使用pixel功能。此函數采用以下參數:

像素X位置

像素Y位置

像素顏色(0 =白色,1 =黑色)

例如將第一個像素設置為黑色:

下載:文件

復制代碼

display.pixel(0, 0, 1)

display.show() display.pixel(0, 0, 1)

display.show()

嘗試通過更改X和Y位置將其他像素設置為白色。請記住,設置像素后必須調用show才能看到它們!

文本

要將文本寫入顯示,必須下載字體文件并將其復制到CIRCUITPY驅動器。單擊下面的按鈕下載文件,然后將 font5x8.bin 復制到您的 CIRCUITPY 驅動器中。

下載font5x8.bin文件

您可以使用text功能編寫一行文本。此函數采用以下參數:

文本字符串

文本X位置

文本Y位置

文本顏色(0 =白色,1 =黑色)

例如,清除屏幕然后寫兩行文本:

下載:文件

復制代碼

display.fill(0)

display.text(‘Hello’, 0, 0, 1)

display.text(‘World’, 0, 10, 1)

display.show() display.fill(0)

display.text(‘Hello’, 0, 0, 1)

display.text(‘World’, 0, 10, 1)

display.show()

請注意,第二行文本從Y位置10開始,它將其向下移動顯示屏10個像素,因此它位于下方文本的第一行。文本功能使用的字體高8像素,因此10的大小在行之間留出一些空間。

反轉

最后,您可以使用invert屬性反轉顯示顏色:

下載:文件

復制代碼

display.invert = True display.invert = True

注意invert函數不需要在其后調用show即可查看更改。

要返回非反相顯示運行:

下載:文件

復制代碼

display.invert = False display.invert = False

所有這些都可以通過CircuitPython在諾基亞5110/3310 LCD 顯示屏上繪制!繪圖功能是基本功能,但提供了更高級用法的構建塊。例如,您可以顯示帶有傳感器讀數或其他狀態的文本,甚至可以編寫諸如pong之類的簡單游戲!

完整示例代碼

下載: Project Zip 或 pcd8544_simpletest.py | 在Github上查看

復制代碼

import time

import board

import busio

import digitalio

import adafruit_pcd8544

# Initialize SPI bus and control pins

spi = busio.SPI(board.SCK, MOSI=board.MOSI)

dc = digitalio.DigitalInOut(board.D6) # data/command

cs = digitalio.DigitalInOut(board.D5) # Chip select

reset = digitalio.DigitalInOut(board.D9) # reset

display = adafruit_pcd8544.PCD8544(spi, dc, cs, reset)

display.bias = 4

display.contrast = 60

# Turn on the Backlight LED

backlight = digitalio.DigitalInOut(board.D10) # backlight

backlight.switch_to_output()

backlight.value = True

print(“Pixel test”)

# Clear the display. Always call show after changing pixels to make the display

# update visible!

display.fill(0)

display.show()

# Set a pixel in the origin 0,0 position.

display.pixel(0, 0, 1)

# Set a pixel in the middle position.

display.pixel(display.width//2, display.height//2, 1)

# Set a pixel in the opposite corner position.

display.pixel(display.width-1, display.height-1, 1)

display.show()

time.sleep(2)

print(“Lines test”)

# we‘ll draw from corner to corner, lets define all the pair coordinates here

corners = ((0, 0), (0, display.height-1), (display.width-1, 0),

(display.width-1, display.height-1))

display.fill(0)

for corner_from in corners:

for corner_to in corners:

display.line(corner_from[0], corner_from[1],

corner_to[0], corner_to[1], 1)

display.show()

time.sleep(2)

print(“Rectangle test”)

display.fill(0)

w_delta = display.width / 10

h_delta = display.height / 10

for i in range(11):

display.rect(0, 0, int(w_delta*i), int(h_delta*i), 1)

display.show()

time.sleep(2)

print(“Text test”)

display.fill(0)

display.text(’hello world‘, 0, 0, 1)

display.text(’this is the‘, 0, 8, 1)

display.text(’CircuitPython‘, 0, 16, 1)

display.text(’adafruit lib-‘, 0, 24, 1)

display.text(’rary for the‘, 0, 32, 1)

display.text(’PCD8544! :) ‘, 0, 40, 1)

display.show()

while True:

display.invert = True

time.sleep(0.5)

display.invert = False

time.sleep(0.5)

import time

import board

import busio

import digitalio

import adafruit_pcd8544

# Initialize SPI bus and control pins

spi = busio.SPI(board.SCK, MOSI=board.MOSI)

dc = digitalio.DigitalInOut(board.D6) # data/command

cs = digitalio.DigitalInOut(board.D5) # Chip select

reset = digitalio.DigitalInOut(board.D9) # reset

display = adafruit_pcd8544.PCD8544(spi, dc, cs, reset)

display.bias = 4

display.contrast = 60

# Turn on the Backlight LED

backlight = digitalio.DigitalInOut(board.D10) # backlight

backlight.switch_to_output()

backlight.value = True

print(“Pixel test”)

# Clear the display. Always call show after changing pixels to make the display

# update visible!

display.fill(0)

display.show()

# Set a pixel in the origin 0,0 position.

display.pixel(0, 0, 1)

# Set a pixel in the middle position.

display.pixel(display.width//2, display.height//2, 1)

# Set a pixel in the opposite corner position.

display.pixel(display.width-1, display.height-1, 1)

display.show()

time.sleep(2)

print(“Lines test”)

# we’ll draw from corner to corner, lets define all the pair coordinates here

corners = ((0, 0), (0, display.height-1), (display.width-1, 0),

(display.width-1, display.height-1))

display.fill(0)

for corner_from in corners:

for corner_to in corners:

display.line(corner_from[0], corner_from[1],

corner_to[0], corner_to[1], 1)

display.show()

time.sleep(2)

print(“Rectangle test”)

display.fill(0)

w_delta = display.width / 10

h_delta = display.height / 10

for i in range(11):

display.rect(0, 0, int(w_delta*i), int(h_delta*i), 1)

display.show()

time.sleep(2)

print(“Text test”)

display.fill(0)

display.text(‘hello world’, 0, 0, 1)

display.text(‘this is the’, 0, 8, 1)

display.text(‘CircuitPython’, 0, 16, 1)

display.text(‘adafruit lib-’, 0, 24, 1)

display.text(‘rary for the’, 0, 32, 1)

display.text(‘PCD8544! :) ’, 0, 40, 1)

display.show()

while True:

display.invert = True

time.sleep(0.5)

display.invert = False

time.sleep(0.5)

Python接線

使用帶有Python和Adafruit CircuitPython PCD8544模塊的諾基亞5110/3310 LCD很容易。該模塊使您可以輕松編寫Python代碼來控制顯示。

我們將介紹如何將諾基亞LCD連接到Raspberry Pi。首先組裝您的LCD。

由于有數十種Linux計算機/主板可以使用,因此我們將顯示Raspberry Pi的接線。對于其他平臺,請訪問Linux上的CircuitPython指南,以了解您的平臺是否受支持。

將如下所示的LCD連接到Raspberry Pi。

Raspberry Pi GND 到 LCD Gnd

Raspberry Pi 3.3V 要 LCD Vcc

Raspberry Pi SCK(GPIO 11) 要 LCD Clk

Raspberry Pi MOSI(GPIO 10) 到 LCD Din

Raspberry Pi GPIO 6 到 LCD D/C

Raspberry Pi CE0(GPIO 8) 到 LCD CS

Raspberry Pi GPIO 5 到 LCD Rst

Raspberry Pi GPIO 13 到 LCD Led

下載Fritzing圖

Python設置

您需要安裝Adafruit_Blinka庫,該庫在Python中提供了CircuitPython支持。這可能還需要在平臺上啟用SPI并驗證您正在運行Python3。由于每個平臺都略有不同,并且Linux經常更改,請訪問Linux上的CircuitPython指南以使您的計算機準備就緒!

PCD8544庫的Python安裝

完成后,從命令行運行以下命令:

pip3 install adafruit-circuitpython-pcd8544

如果您的默認Python是版本3,則可能需要運行‘pip代替。只需確保您不嘗試在Python 2.x上使用CircuitPython,就不支持它!

如果抱怨沒有安裝pip3,請先運行它以安裝它:

sudo apt-get install python3-pip

DejaVu TTF字體

Raspberry Pi通常隨附已安裝的DejaVu字體,但如果未安裝,則可以運行以下命令進行安裝:

sudo apt-get install ttf-dejavu

枕頭庫

我們還需要PIL(Python影像庫),以允許使用帶有自定義字體的文本。 PIL依賴于幾個系統庫,因此通過軟件包管理器進行安裝是引入所有內容的最簡單方法:

sudo apt-get install python3-pil

就是這樣。您應該已經準備好了。

Python用法

使用帶有CircuitPython和 Adafruit CircuitPython PCD8544 模塊的諾基亞5110/3310 LCD很容易。此模塊可讓您輕松編寫Python代碼來控制顯示。

您可以在具有GPIO和Python 的計算機上使用此顯示,這要歸功于我們的CircuitPython-for-Adafruit_Blinka Python兼容性庫。

為了演示用法,我們將初始化該庫,并使用Python代碼從開發板的Python REPL中控制LCD。

由于我們在上運行完整的CPython在我們的Linux/計算機上,我們可以利用強大的Pillow圖像繪制庫來處理文本,形狀,圖形等。Pillow是圖像和圖形處理的黃金標準,您可以在此處閱讀所有內容。

初始化

首先需要初始化SPI總線。為此,請運行以下命令:

下載:文件

復制代碼

import adafruit_pcd8544

import board

import busio

import digitalio

spi = busio.SPI(board.SCK, MOSI=board.MOSI)

dc = digitalio.DigitalInOut(board.D6) # data/command

cs = digitalio.DigitalInOut(board.CE0) # Chip select

reset = digitalio.DigitalInOut(board.D5) # reset

display = adafruit_pcd8544.PCD8544(spi, dc, cs, reset) import adafruit_pcd8544

import board

import busio

import digitalio

spi = busio.SPI(board.SCK, MOSI=board.MOSI)

dc = digitalio.DigitalInOut(board.D6) # data/command

cs = digitalio.DigitalInOut(board.CE0) # Chip select

reset = digitalio.DigitalInOut(board.D5) # reset

display = adafruit_pcd8544.PCD8544(spi, dc, cs, reset)

初始化程序的最后三個參數是連接到顯示器的 DC 的引腳, CS ,并按此順序重置行。再次確保在連接到板上時使用正確的引腳名稱!

控制背光LED

您也可以控制顯示屏的背光LED。只要確保LED線已連接到您的微控制器即可。只需將其初始化為DigitalInOut輸出線即可。如果將其連接到其他輸出,請確保相應地更改端口。

下載:文件

復制代碼

backlight = digitalio.DigitalInOut(board.D13) # backlight

backlight.switch_to_output() backlight = digitalio.DigitalInOut(board.D13) # backlight

backlight.switch_to_output()

要打開它,只需將其設置為True并設置為將其關閉,只需將其設置為False。

下載:文件

復制代碼

# Turn Backlight on

backlight.value = True

#Turn Backlight off

backlight.value = False # Turn Backlight on

backlight.value = True

#Turn Backlight off

backlight.value = False

“對比度和偏差”

兩個重要的設置是“對比度”和“偏差設置”,以便您可以看到顯示的內容。讓我們先看一下Bias設置。

Bias

Bias設置控制進入顯示屏的電壓量。值越高,顯示越暗。有點像顯示器上的亮度設置,但會使像素更濃。值通常為4-5很好。例如,要將其設置為5,您將鍵入:

下載:文件

復制代碼

display.bias = 5 display.bias = 5

對比度

對比度設置控制暗像素和亮像素之間的差異可以設置為0-127之間的任何值。就像顯示器上的對比度設置一樣。值太高會使所有內容顯得較暗,值太低會使所有內容顯得太淺。大約50-60的值看起來不錯。例如,要將其設置為50,您將鍵入:

下載:文件

復制代碼

display.contrast = 50 display.contrast = 50

您可能需要使用這些值的不同組合來查看是什么使您的特定顯示器

示例代碼

下載:Project Zip 或 pcd8544_pillow_demo.py | 在Github上查看

復制代碼

“”“

This demo will fill the screen with white, draw a black box on top

and then print Hello World! in the center of the display

This example is for use on (Linux) computers that are using CPython with

Adafruit Blinka to support CircuitPython libraries. CircuitPython does

not support PIL/pillow (python imaging library)!

”“”

import board

import busio

import digitalio

from PIL import Image, ImageDraw, ImageFont

import adafruit_pcd8544

# Parameters to Change

BORDER = 5

FONTSIZE = 10

spi = busio.SPI(board.SCK, MOSI=board.MOSI)

dc = digitalio.DigitalInOut(board.D6) # data/command

cs = digitalio.DigitalInOut(board.CE0) # Chip select

reset = digitalio.DigitalInOut(board.D5) # reset

display = adafruit_pcd8544.PCD8544(spi, dc, cs, reset)

# Contrast and Brightness Settings

display.bias = 4

display.contrast = 60

# Turn on the Backlight LED

backlight = digitalio.DigitalInOut(board.D13) # backlight

backlight.switch_to_output()

backlight.value = True

# Clear display.

display.fill(0)

display.show()

# Create blank image for drawing.

# Make sure to create image with mode ’1‘ for 1-bit color.

image = Image.new(’1‘, (display.width, display.height))

# Get drawing object to draw on image.

draw = ImageDraw.Draw(image)

# Draw a black background

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

# Draw a smaller inner rectangle

draw.rectangle((BORDER, BORDER, display.width - BORDER - 1, display.height - BORDER - 1),

outline=0, fill=0)

# Load a TTF font.

font = ImageFont.truetype(’/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf‘, FONTSIZE)

# Draw Some Text

text = “Hello World!”

(font_width, font_height) = font.getsize(text)

draw.text((display.width//2 - font_width//2, display.height//2 - font_height//2),

text, font=font, fill=255)

# Display image

display.image(image)

display.show()

“”“

This demo will fill the screen with white, draw a black box on top

and then print Hello World! in the center of the display

This example is for use on (Linux) computers that are using CPython with

Adafruit Blinka to support CircuitPython libraries. CircuitPython does

not support PIL/pillow (python imaging library)!

”“”

import board

import busio

import digitalio

from PIL import Image, ImageDraw, ImageFont

import adafruit_pcd8544

# Parameters to Change

BORDER = 5

FONTSIZE = 10

spi = busio.SPI(board.SCK, MOSI=board.MOSI)

dc = digitalio.DigitalInOut(board.D6) # data/command

cs = digitalio.DigitalInOut(board.CE0) # Chip select

reset = digitalio.DigitalInOut(board.D5) # reset

display = adafruit_pcd8544.PCD8544(spi, dc, cs, reset)

# Contrast and Brightness Settings

display.bias = 4

display.contrast = 60

# Turn on the Backlight LED

backlight = digitalio.DigitalInOut(board.D13) # backlight

backlight.switch_to_output()

backlight.value = True

# Clear display.

display.fill(0)

display.show()

# Create blank image for drawing.

# Make sure to create image with mode ’1‘ for 1-bit color.

image = Image.new(’1‘, (display.width, display.height))

# Get drawing object to draw on image.

draw = ImageDraw.Draw(image)

# Draw a black background

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

# Draw a smaller inner rectangle

draw.rectangle((BORDER, BORDER, display.width - BORDER - 1, display.height - BORDER - 1),

outline=0, fill=0)

# Load a TTF font.

font = ImageFont.truetype(’/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf‘, FONTSIZE)

# Draw Some Text

text = “Hello World!”

(font_width, font_height) = font.getsize(text)

draw.text((display.width//2 - font_width//2, display.height//2 - font_height//2),

text, font=font, fill=255)

# Display image

display.image(image)

display.show()

讓我們一一看一下代碼的各個部分,我們首先導入board,以便我們可以訪問引腳定義busio,以便我們可以初始化SPI,digitalio ,幾個用于圖像繪制的PIL模塊和adafruit_pcd8544驅動程序。

下載:文件

復制代碼

import board

import busio

import digitalio

from PIL import Image, ImageDraw, ImageFont

import adafruit_pcd8544 import board

import busio

import digitalio

from PIL import Image, ImageDraw, ImageFont

import adafruit_pcd8544

易于更改顯示尺寸,我們將在此處一處定義一些變量。我們有邊框大小和字體大小,我們將在下面進一步解釋。

下載:file

復制代碼

BORDER = 5

FONTSIZE = 10 BORDER = 5

FONTSIZE = 10

接下來,我們使用。我們還定義了一些引腳,這些引腳將用于顯示并初始化顯示。有關更多詳細信息,請參見上面的初始化部分。

下載:文件

復制代碼

busio.SPI() spi = busio.SPI(board.SCK, MOSI=board.MOSI)

dc = digitalio.DigitalInOut(board.D6) # data/command

cs = digitalio.DigitalInOut(board.CE0) # Chip select

reset = digitalio.DigitalInOut(board.D5) # reset

display = adafruit_pcd8544.PCD8544(spi, dc, cs, reset)

接下來,我們設置“偏差和對比度”。有關更多詳細信息,請參見“對比度和偏差”部分。

下載:文件

復制代碼

spi = busio.SPI(board.SCK, MOSI=board.MOSI)

dc = digitalio.DigitalInOut(board.D6) # data/command

cs = digitalio.DigitalInOut(board.CE0) # Chip select

reset = digitalio.DigitalInOut(board.D5) # reset

display = adafruit_pcd8544.PCD8544(spi, dc, cs, reset) # Contrast and Brightness Settings

display.bias = 4

display.contrast = 60

之后,我們設置背光。有關更多信息,請參見上面的“背光”部分。

下載:文件

復制代碼

# Contrast and Brightness Settings

display.bias = 4

display.contrast = 60 # Turn on the Backlight LED

backlight = digitalio.DigitalInOut(board.D13) # backlight

backlight.switch_to_output()

backlight.value = True

接下來,如果使用任何隨機工件數據初始化顯示,我們將清除顯示。

下載:文件

復制代碼

# Turn on the Backlight LED

backlight = digitalio.DigitalInOut(board.D13) # backlight

backlight.switch_to_output()

backlight.value = True # Clear display.

display.fill(0)

display.show()

接下來,我們需要初始化PIL以創建要繪制的空白圖像。將其視為虛擬畫布。由于這是單色顯示,因此我們將其設置為1位彩色,這意味著像素是白色或黑色。我們也可以利用LCD的width和height屬性。

下載:file

復制代碼

# Clear display.

display.fill(0)

display.show() # Create blank image for drawing.

# Make sure to create image with mode ’1‘ for 1-bit color.

image = Image.new(’1‘, (display.width, display.height))

# Get drawing object to draw on image.

draw = ImageDraw.Draw(image)

現在,我們開始實際繪制。在這里,我們告訴我們要繪制一個矩形,該矩形從左上角的# Create blank image for drawing.

# Make sure to create image with mode ’1‘ for 1-bit color.

image = Image.new(’1‘, (display.width, display.height))

# Get drawing object to draw on image.

draw = ImageDraw.Draw(image)到顯示器的整個寬度和高度。我們希望它都被填充并具有黑色的輪廓,因此我們將兩個數字都傳遞255,代表填充量。

下載:文件

復制代碼

(0,0) # Draw a black background

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

如果運行代碼現在,它將仍然顯示為空白,因為我們尚未告訴python使用我們的虛擬畫布。如果您想了解操作方法,可以跳到最后。這就是我們的畫布當前在內存中的樣子。

接下來,我們將創建一個較小的白色矩形。最簡單的方法是繪制一個比全屏稍小的矩形,不填充或勾勒輪廓并將其放置在特定位置。在這種情況下,我們將創建一個矩形,每邊小5個像素。這是 BORDER 變量開始使用的地方。它使計算第二個矩形的大小變得更加容易。我們希望由前兩個參數組成的起始坐標為BORDER值。然后對于接下來的兩個參數,即我們的結束坐標,我們要從寬度和高度中減去邊界值。另外,由于這是一個從零開始的坐標系,因此我們還需要從每個數字中減去1。

下載:文件

復制代碼

# Draw a black background

draw.rectangle((0, 0, display.width, display.height), outline=255, fill=255) # Draw a smaller inner rectangle

draw.rectangle((BORDER, BORDER, display.width - BORDER - 1, display.height - BORDER - 1),

outline=0, fill=0)

這是虛擬畫布在內存中的外觀。

現在,使用PIL繪制文本非常簡單。首先,我們將字體設置為默認系統文本。之后,我們定義文本并獲取文本的大小。我們正在獲取它將呈現的大小,以便我們可以計算中心位置。最后,我們使用字體大小和屏幕大小來計算要在其上繪制文本的位置,該位置將出現在屏幕中央。

下載:文件

復制代碼

# Draw a smaller inner rectangle

draw.rectangle((BORDER, BORDER, display.width - BORDER - 1, display.height - BORDER - 1),

outline=0, fill=0) # Load a TTF font.

font = ImageFont.truetype(’/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf‘, FONTSIZE)

# Draw Some Text

text = “Hello World!”

(font_width, font_height) = font.getsize(text)

draw.text((display.width//2 - font_width//2, display.height//2 - font_height//2),

text, font=font, fill=255)

最后,我們需要將虛擬畫布顯示在LCD上,并使用2個命令進行操作。首先,我們將圖像設置在屏幕上,然后告訴它顯示圖像。

下載:file

復制代碼

# Load a TTF font.

font = ImageFont.truetype(’/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf‘, FONTSIZE)

# Draw Some Text

text = “Hello World!”

(font_width, font_height) = font.getsize(text)

draw.text((display.width//2 - font_width//2, display.height//2 - font_height//2),

text, font=font, fill=255) # Display image

display.image(image)

display.show()

i》 別忘了您必須調用display.image(image)和display.show()才能真正顯示圖形。 LCD需要一段時間才能繪制,因此將所有繪制功能聚集到緩沖區中(快速),然后將它們一次顯示到LCD(緩慢)

最終輸出應如下所示。

下載

我們的PCD8544(Nokia 5110)LCD顯示Arduino庫位于github 上,附帶示例代碼。該庫使用1/2 KB的RAM,因為它需要緩沖整個顯示,但是速度非常快!該代碼很容易適應任何其他微控制器。

您還需要獲得Adafruit GFX Graphics核心庫,該庫可以打印文本,位圖,像素,矩形,圓形和直線,也可以使用在github 上。

PCD8544數據表會告訴您有關顯示器可以做什么的所有信息。
責任編輯:wv

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • lcd
    lcd
    +關注

    關注

    34

    文章

    4438

    瀏覽量

    168475
  • 顯示屏
    +關注

    關注

    28

    文章

    4512

    瀏覽量

    74779
收藏 人收藏

    評論

    相關推薦

    低功耗128*128點陣工業SPI串口通訊單色LCD液晶顯示模塊 128128點陣COG顯示屏

    顯示屏
    深圳市乾思迪電子科技有限公司
    發布于 :2024年12月13日 14:26:08

    2.8寸單色LCD液晶顯示屏12864點陣SPI或并口通訊 低功耗工業級128*64點陣COG顯示屏

    顯示屏
    深圳市乾思迪電子科技有限公司
    發布于 :2024年12月13日 14:09:59

    小尺寸單色LCD液晶顯示屏12832圖形點陣 低功耗128*32點陣COG顯示模塊

    顯示屏
    深圳市乾思迪電子科技有限公司
    發布于 :2024年12月13日 10:11:31

    2.0寸單色LCD液晶顯示屏,12864圖形點陣

    顯示屏串口
    乾思迪電子科技
    發布于 :2024年11月19日 16:45:32

    oled是什么顯示屏 OLED與LCD的區別

    的電流成正比。OLED顯示屏由非常薄的有機材料涂層和玻璃基板(或柔性有機基板)構成,當有電流通過時,這些有機材料就會發光。OLED顯示屏中的每個像素點都能獨立發光,無需背光支持,因此具有一系列獨特的優點。 OLED
    的頭像 發表于 10-21 16:40 ?2448次閱讀

    液晶顯示屏與led顯示屏的區別

    在現代電子設備中,顯示屏是人機交互的重要界面。隨著科技的發展,顯示屏技術也在不斷進步,其中液晶顯示屏LCD)和LED顯示屏是兩種主流的
    的頭像 發表于 10-12 10:39 ?1840次閱讀

    lcd和led顯示屏有什么區別

    LCD(液晶顯示器)和LED(發光二極管)顯示屏是兩種常見的顯示技術,它們在許多方面都有顯著的不同。以下是對這兩種技術的比較: 1. 基本工作原理
    的頭像 發表于 10-10 14:18 ?1783次閱讀

    像素間距矩陣LED顯示屏中的常見LED顯示挑戰

    電子發燒友網站提供《窄像素間距矩陣LED顯示屏中的常見LED顯示挑戰.pdf》資料免費下載
    發表于 09-05 10:57 ?0次下載
    窄<b class='flag-5'>像素</b>間距矩陣LED<b class='flag-5'>顯示屏</b>中的常見LED<b class='flag-5'>顯示</b>挑戰

    P2.5LED顯示屏好還是P3LED顯示屏好?

    好? 一、LED顯示屏 LED顯示屏是一種新型的顯示設備,其通過發光二極管的發光實現顯示的功能。它具有色彩鮮艷、亮度高、壽命長、能耗低等優點,應用廣泛。常見的LED
    的頭像 發表于 08-29 15:33 ?611次閱讀

    顯示器的像素間距越小,顯示效果越好嗎

    像素間距(Pixel Pitch) 是指LED顯示屏LCD顯示器上相鄰兩個像素點之間的距離,通常以毫米(mm)為單位表示。
    的頭像 發表于 08-10 09:56 ?1356次閱讀

    詳解LED顯示屏的基本結構和控制方式

    體結構 LED顯示屏體是顯示信息的核心部分,主要由顯示點陣、行列驅動電路和其他輔助電路組成。顯示
    的頭像 發表于 07-19 08:49 ?1417次閱讀

    什么是LED顯示屏像素

    LED顯示屏像素作為數字顯示領域的重要組成部分,以其獨特的魅力和廣泛的應用前景,正在點亮我們未來的世界。讓我們共同期待LED顯示屏像素在未來
    的頭像 發表于 05-28 01:32 ?979次閱讀

    什么是LED顯示屏像素距(點間距)?

    LED顯示屏像素距(點間距)作為衡量其性能的重要指標之一,正不斷推動著LED顯示屏技術的發展和應用的拓展。我們有理由相信,在不久的將來,LED顯示屏將會以更加驚艷的視覺效果和更加智能的
    的頭像 發表于 05-28 01:27 ?1771次閱讀
    什么是LED<b class='flag-5'>顯示屏</b><b class='flag-5'>像素</b>距(點間距)?

    LED顯示屏顯示效果的影響因素深度解析

    分辨率是指顯示屏上橫向和縱向的像素點數,通常以水平像素數×垂直像素數來表示。分辨率越高,顯示效果越清晰,圖像細節表現也更加精細。
    發表于 04-08 10:58 ?1343次閱讀

    LED電子顯示屏的相關報告

    顯示屏、異形顯示屏等多種類型。LED電子顯示屏經歷了從單色到彩色、從低分辨率到高分辨率、從小型化到大型化的發展歷程。未來,LED電子顯示屏
    發表于 04-03 17:18 ?0次下載
    主站蜘蛛池模板: 国产一区二区三区毛片 | 深爱激情五月婷婷 | 2022欧美高清中文字幕在线看 | 久热久 | 狠狠操狠狠干 | 可以看黄色的网站 | 国产高清色视频免费看的网址 | 欧美黄视频在线观看 | 一本到午夜92版免费福利 | 狠狠噜天天噜日日噜 | 亚洲啪啪 | 国产精品福利午夜在线观看 | 日韩亚射| 色老头影视 | 又黄又爽又猛午夜性色播在线播放 | 色综合小说天天综合网 | 免费看一毛一级毛片视频 | 色多多www网站 | 男女免费网站 | 亚洲精品成人在线 | 国产一区二区三区毛片 | 视频在线观看一区二区 | 日韩第二页 | 性欧美视频videos6一9 | 中国一级黄色毛片 | 亚洲日本中文字幕天天更新 | 久久视频精品36线视频在线观看 | 国产免费私拍一区二区三区 | 天堂网久久 | 又粗又长又爽又长黄免费视频 | 亚洲国产色婷婷精品综合在线观看 | 欧美一级高清免费播放 | 久久婷婷是五月综合色狠狠 | 亚洲视频五区 | 性欧美1819| 日本三级香港三级人妇 m | 狠狠色丁香六月色 | 1024你懂的国产欧美日韩在 | 最刺激黄a大片免费观看下截 | 色综合视频在线观看 | 久久精品五月天 |