女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

如何用樹莓派驅動16x2 LCD

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

概述

向任何項目添加LCD會立即使它提高一個檔次。本教程說明了如何使用6個GPIO引腳將廉價的HDD44780兼容LCD連接到Raspberry Pi。盡管還有其他方法可以使用I2CUART進行連接,但這是直接使用裸機的最直接方法。

此技術:

允許使用廉價LCD

不需要任何 i2c驅動程序

不會竊取Pi上唯一的串行端口

示例Python代碼發送日期,時間和Pi的IP地址到顯示器。如果您在無頭模式下運行Pi,一眼就能確定IP地址非常方便。

要遵循本教程,您將需要

標準LCD 16x2 +其他功能

Pi T-Cobbler Plus,Pi Cobbler Plus用于模型B +/Pi 2或原始Pi補鞋匠

(2)半尺寸面包板

連接線

A Raspberry Pi(與所有26pin和40pin Pi兼容

您幾乎可以將任何字符LCD與本教程-適用于16x1、16x2、20x2、20x4 LCD。它不適用于40x4 LCD

將補鞋匠連接到LCD

LCD

每當遇到帶有16個連接器的LCD顯示器時,最有可能使用HD44780控制器。這些設備提供相同的引出線,使其相對易于使用。 LCD使用并行接口,這意味著我們需要樹莓派的許多引腳來控制它。在本教程中,我們將使用4個數據引腳(4位模式)和兩個控制引腳。

數據引腳很簡單。他們正在將數據發送到顯示器(高/低切換)。我們將僅使用寫入模式,而不讀取任何數據。

寄存器選擇引腳有兩種用途。拉低時,它可以向LCD發送命令(例如移至或清除屏幕的位置)。這稱為寫指令或命令寄存器。當以另一種方式切換(1)時,寄存器選擇引腳進入數據模式,并將其用于將數據發送到屏幕。

讀/寫引腳將被拉低(僅寫)。 ),因為我們只希望基于此設置寫入LCD。

啟用引腳將被切換為將數據寫入寄存器。

LCD引腳排列

接地

VCC- 5v不是3.3v

電位器的對比度調整(VO)

寄存器選擇(RS)。 RS = 0:命令,RS = 1:數據

讀/寫(R/W)。 R/W = 0:寫,R/W = 1:讀(我們將不使用此引腳)

時鐘(啟用)。觸發下降沿

位0 (4位操作中不使用)

位1 (4位操作中不使用)

位2 (在4位操作中不使用)

位3 (在4位操作中不使用)

第4位

第5位

第6位

第7位

背光LED陽極( +)

背光LED陰極(-)

在接線前,請檢查LCD是否具有LED背光,而不是EL背光。 LED背光使用10-40mA的功率,EL背光使用200 + ma! EL背光燈通常價格便宜但無法使用,請確保不要使用背光燈,否則Pi會過載。一些帶有LED背光的廉價LCD在LCD模塊的背光上沒有電阻,如果不確定,請在15針和5V引腳之間連接一個1Kohm電阻,而不是直接連接。 所有Adafruit液晶顯示器都具有帶內置電阻器的LED背光燈,因此您不需要額外的電阻器!

5v LCD vs 3.3v Pi

樹莓派GPIO設計for3.3v,但我們的LCD是5v設備。 使用5v顯示屏很好,但前提是我們要從Pi向外發送數據。我們不會在補鞋匠上使用3.3v電源軌,我們將顯示器的 RW (讀/寫)引腳連接到GND,因為我們不希望顯示器發送5v信號進入Pi。

別越過溪流!

接線圖

首先,將補鞋匠電源引腳連接到面包板電源導軌。補鞋匠提供的+ 5.0V連接至紅色條紋導軌(紅色線),補鞋匠提供的GND連接至藍色條紋導軌(黑色線)

為了將數據發送至LCD,我們將其接線為遵循

LCD的引腳#1接地

LCD的引腳#2達到+ 5V

引腳#3(Vo)連接到電位計的中間

4號針(RS)連接到補鞋匠#22

Pin#5(RW)接地

Pin #6(EN)連接到補鞋匠#17

跳過LCD引腳#7,#8,#9和#10

引腳#11(D4)連接到補鞋匠#25

Pin#12(D5)連接到Cobbler#24

Pin#13(D6)連接到Cobber#23

Pin#14(D7)連接到Cobber#18

針#15(LED +)轉到+ 5V(紅線)

針#16(LED-)接地(黑色線)

然后連接電位計,左引腳接地(黑線),右引腳接地+ 5V(紅線)

以下是T-Cobbler Plus版本的草圖:

》素描以26針的補鞋匠覆盆子Pi(v1,v2)

準備LCD

開始之前,請進行以下操作確保您有一個帶0.1“公頭的排針和一個10K電位器。所有Adafruit字符LCD都帶有這些部件,因此您應該一切順利。

大多數LCD都有頂部有16個針腳的條帶,如果標頭稍長,請將其斷開,直到其正確的長度

接下來,您需要將接頭連接到LCD。 您必須執行此操作,僅嘗試“壓入” LCD是不可行的!

首先連接補鞋匠的 5V 和 GND 線到面包板。然后將針腳#1,#2和#15,#16連接到面包板電源導軌,如圖所示。背光應點亮。如果沒有,請檢查接線!

接下來,進行對比電位計,如上圖所示,中間引腳連接到LCD引腳#3,另兩個引腳連接到5V并接地。

扭轉電位計,直到您看到LCD的第一行充滿了方框。如果看不到方框,請檢查接線!

完成 RS,RW,EN,D4,D5,D6,和 D7 引腳的接線,如圖所示

就是這樣!現在您可以運行Python腳本在屏幕上繪制文本了!

必要的軟件包

最新的Raspbian

您的Pi必須運行最新版本的Raspbian。本教程使用Raspbian Stretch(2018年11月)編寫。如果尚未為Raspberry Pi準備SD卡,請查閱我們的指南。安裝完成后,請確保并運行以下命令以確保您的安裝軟件包是最新的。

下載:文件

復制代碼

$ sudo apt-get update -y

$ sudo apt-get upgrade -y $ sudo apt-get update -y

$ sudo apt-get upgrade -y

安裝pip3

pip3已與完整的Raspbian安裝一起安裝,但Raspbian Lite并未安裝包括pip3,因此需要按如下所示進行安裝。

下載:文件

復制代碼

$ sudo apt-get install python3-pip $ sudo apt-get install python3-pip

安裝adafruit-blinka

下載:文件

復制代碼

$ sudo pip3 install adafruit-blinka $ sudo pip3 install adafruit-blinka

安裝adafruit-circuitpython-charlcd

下載:文件

C opy代碼

$ sudo pip3 install adafruit-circuitpython-charlcd $ sudo pip3 install adafruit-circuitpython-charlcd

Python腳本

以下代碼可以下載到您的樹莓派上,并運行以在LCD顯示屏上獲取機器的日期,時間和IP地址。

代碼

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

復制代碼

from subprocess import Popen, PIPE

from time import sleep

from datetime import datetime

import board

import digitalio

import adafruit_character_lcd.character_lcd as characterlcd

# Modify this if you have a different sized character LCD

lcd_columns = 16

lcd_rows = 2

# compatible with all versions of RPI as of Jan. 2019

# v1 - v3B+

lcd_rs = digitalio.DigitalInOut(board.D22)

lcd_en = digitalio.DigitalInOut(board.D17)

lcd_d4 = digitalio.DigitalInOut(board.D25)

lcd_d5 = digitalio.DigitalInOut(board.D24)

lcd_d6 = digitalio.DigitalInOut(board.D23)

lcd_d7 = digitalio.DigitalInOut(board.D18)

# Initialise the lcd class

lcd = characterlcd.Character_LCD_Mono(lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6,

lcd_d7, lcd_columns, lcd_rows)

# looking for an active Ethernet or WiFi device

def find_interface():

find_device = “ip addr show”

interface_parse = run_cmd(find_device)

for line in interface_parse.splitlines():

if “state UP” in line:

dev_name = line.split(‘:’)[1]

return dev_name

# find an active IP on the first LIVE network device

def parse_ip():

find_ip = “ip addr show %s” % interface

find_ip = “ip addr show %s” % interface

ip_parse = run_cmd(find_ip)

for line in ip_parse.splitlines():

if “inet ” in line:

ip = line.split(‘ ’)[5]

ip = ip.split(‘/’)[0]

return ip

# run unix shell command, return as ASCII

def run_cmd(cmd):

p = Popen(cmd, shell=True, stdout=PIPE)

output = p.communicate()[0]

return output.decode(‘ascii’)

# wipe LCD screen before we start

lcd.clear()

# before we start the main loop - detect active network device and ip address

sleep(2)

interface = find_interface()

ip_address = parse_ip()

while True:

# date and time

lcd_line_1 = datetime.now().strftime(‘%b %d %H:%M:%S ’)

# current ip address

lcd_line_2 = “IP ” + ip_address

# combine both lines into one update to the display

lcd.message = lcd_line_1 + lcd_line_2

sleep(2)

from subprocess import Popen, PIPE

from time import sleep

from datetime import datetime

import board

import digitalio

import adafruit_character_lcd.character_lcd as characterlcd

# Modify this if you have a different sized character LCD

lcd_columns = 16

lcd_rows = 2

# compatible with all versions of RPI as of Jan. 2019

# v1 - v3B+

lcd_rs = digitalio.DigitalInOut(board.D22)

lcd_en = digitalio.DigitalInOut(board.D17)

lcd_d4 = digitalio.DigitalInOut(board.D25)

lcd_d5 = digitalio.DigitalInOut(board.D24)

lcd_d6 = digitalio.DigitalInOut(board.D23)

lcd_d7 = digitalio.DigitalInOut(board.D18)

# Initialise the lcd class

lcd = characterlcd.Character_LCD_Mono(lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6,

lcd_d7, lcd_columns, lcd_rows)

# looking for an active Ethernet or WiFi device

def find_interface():

find_device = “ip addr show”

interface_parse = run_cmd(find_device)

for line in interface_parse.splitlines():

if “state UP” in line:

dev_name = line.split(‘:’)[1]

return dev_name

# find an active IP on the first LIVE network device

def parse_ip():

find_ip = “ip addr show %s” % interface

find_ip = “ip addr show %s” % interface

ip_parse = run_cmd(find_ip)

for line in ip_parse.splitlines():

if “inet ” in line:

ip = line.split(‘ ’)[5]

ip = ip.split(‘/’)[0]

return ip

# run unix shell command, return as ASCII

def run_cmd(cmd):

p = Popen(cmd, shell=True, stdout=PIPE)

output = p.communicate()[0]

return output.decode(‘ascii’)

# wipe LCD screen before we start

lcd.clear()

# before we start the main loop - detect active network device and ip address

sleep(2)

interface = find_interface()

ip_address = parse_ip()

while True:

# date and time

lcd_line_1 = datetime.now().strftime(‘%b %d %H:%M:%S ’)

# current ip address

lcd_line_2 = “IP ” + ip_address

# combine both lines into one update to the display

lcd.message = lcd_line_1 + lcd_line_2

sleep(2)

下載代碼

為了簡單起見,將此文件放在您的主目錄中。 wget命令使事情變得簡單。

下載:文件

復制代碼

$ wget https://raw.githubusercontent.com/adafruit/Adafruit_Learning_System_Guides/master/Drive_a_16x2_LCD_with_the_Raspberry_Pi/Drive_a_16x2_LCD_with_the_Raspberry_Pi.py $ wget https://raw.githubusercontent.com/adafruit/Adafruit_Learning_System_Guides/master/Drive_a_16x2_LCD_with_the_Raspberry_Pi/Drive_a_16x2_LCD_with_the_Raspberry_Pi.py

運行代碼

以下命令將啟動該程序,您應該會看到LCD顯示屏上顯示了日期,時間和IP地址。

下載:文件

復制代碼

$ sudo python3 。/Drive_a_16x2_LCD_with_the_Raspberry_Pi.py $ sudo python3 。/Drive_a_16x2_LCD_with_the_Raspberry_Pi.py

在每次啟動時顯示時間和IP

擁有一個可以手動運行的腳本是一件好事,但花時間和時間來做不是很好Raspberry Pi啟動時,顯示屏上會彈出IP地址嗎?這是使用初始化腳本完成的,該腳本在每次Raspberry Pi啟動時都會運行我們的Python代碼。

下載服務文件

以下命令將使您可以將lcd.service文件直接下載到您的Pi。 p》

下載:文件

復制代碼

$ wget https://raw.githubusercontent.com/adafruit/Adafruit_Learning_System_Guides/master/Drive_a_16x2_LCD_with_the_Raspberry_Pi/lcd.service $ wget https://raw.githubusercontent.com/adafruit/Adafruit_Learning_System_Guides/master/Drive_a_16x2_LCD_with_the_Raspberry_Pi/lcd.service

下載:Project Zip 或 lcd.service | 在Github上查看

復制代碼

[Unit]

Description=LCD date|time|ip

Requires=network-online.target

After=network-online.target

[Service]

ExecStart=/usr/bin/python3 Drive_a_16x2_LCD_with_the_Raspberry_Pi.py

WorkingDirectory=/home/pi

StandardOutput=inherit

StandardError=inherit

Restart=always

User=pi

[Install]

WantedBy=network-online.target

[Unit]

Description=LCD date|time|ip

Requires=network-online.target

After=network-online.target

[Service]

ExecStart=/usr/bin/python3 Drive_a_16x2_LCD_with_the_Raspberry_Pi.py

WorkingDirectory=/home/pi

StandardOutput=inherit

StandardError=inherit

Restart=always

User=pi

[Install]

WantedBy=network-online.target

放置lcd.service文件

lcd.service文件需要復制到正確的位置,并且可以使用systemctl命令來啟動|停止|啟用服務。在啟用此功能之前,最好先進行測試,因為系統上的路徑可能存在細微差別。

下載:文件

復制代碼

$ sudo cp lcd.service /etc/systemd/system $ sudo cp lcd.service /etc/systemd/system

測試lcd.service

下載:文件

復制代碼

$ sudo systemctl daemon-reload

$ sudo systemctl start lcd.service

$ ps auxww | grep -i 16x2 $ sudo systemctl daemon-reload

$ sudo systemctl start lcd.service

$ ps auxww | grep -i 16x2

以下命令讀取對服務文件的更新,啟動lcd.service并確認該進程正在運行。如果腳本顯示在“ ps”命令輸出中,則說明您已正確完成所有操作,現在可以啟用服務并重新啟動。該服務應在啟動時自動激活。

啟用lcd.service

下載:文件

復制代碼

$ sudo systemctl enable lcd.service $ sudo systemctl enable lcd.service

現在,每次啟動時,LCD都會在啟動時自動顯示日期/時間/ip地址。這意味著您無需插入監視器即可知道何時可以訪問Pi以及IP地址是什么。

時區

最后,但并非最不重要:我的Pi已配置了UT(通用時間)。我更喜歡根據我的時區(山)來查看時間。這是在Pi上為任何位置配置時間的方法。這是一次配置設置,將在兩次重啟之間保留。

我們可以使用raspi-config輕松設置時區。選擇以下內容:

本地化選項

更改時區

大陸/國家/地區

時區

運行raspi-config

下載:文件

復制代碼

$ sudo raspi-config $ sudo raspi-config

責任編輯:wv

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

    關注

    34

    文章

    4504

    瀏覽量

    170754
  • 樹莓派
    +關注

    關注

    121

    文章

    1947

    瀏覽量

    106998
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    樹莓“揪出”家里的耗電怪獸!

    在本應用中,我們將使用樹莓設置一個CE電流監測器,并通過網頁界面顯示電路的電流讀數。本項目使用的組件硬件組件樹莓2ModelBx112通
    的頭像 發表于 06-04 15:33 ?474次閱讀
    用<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>“揪出”家里的耗電怪獸!

    樹莓“吉尼斯世界記錄”:將樹莓的性能發揮到極致的項目!

    樹莓是一款功能強大、體積小巧且高度可定制的設備,多年來,我們見證了它被應用于眾多領域。無論是將其裝入3D打印的經典游戲機外殼,還是簡單地將它隱藏起來作為家庭文件服務器,我們都報道過在社區里用樹莓
    的頭像 發表于 05-22 16:53 ?447次閱讀
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b>“吉尼斯世界記錄”:將<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>的性能發揮到極致的項目!

    能夠精準定位的樹莓機器人!

    我為我的自制機器人BigRob(同樣由樹莓驅動)配備了基于樹莓的精準GPS導航系統。本項目所用組件硬件組件NV08C-CSMx1NV08
    的頭像 發表于 05-17 08:33 ?277次閱讀
    能夠精準定位的<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>機器人!

    樹莓 Zero 打造的智能漫游車!

    使用PXFMini和樹莓Zero打造您自己的自主漫游車。本項目所用組件硬件組件ErleRoboticsPXFmini×1樹莓Zero×1樹莓
    的頭像 發表于 05-13 16:39 ?275次閱讀
    用 <b class='flag-5'>樹莓</b><b class='flag-5'>派</b> Zero 打造的智能漫游車!

    驚了!這個“神器”讓樹莓秒變智能管家,圖像識別+無線投屏,太秀了!

    樹莓的無限可能樹莓作為一款小巧的單板計算機,一直以來都是技術愛好者和開發者的寵兒。它不僅能聯網,還能通過各種傳感器和模塊實現豐富的功能。今天,我們就來深入探索一下,如
    的頭像 發表于 03-25 09:23 ?458次閱讀
    驚了!這個“神器”讓<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>秒變智能管家,圖像識別+無線投屏,太秀了!

    關于DLPDLCR230NPEVM與樹莓4B的幾個問題求解

    有關于DLPDLCR230NPEVM與樹莓4B的以下幾個問題,望大佬解答: 1、如何用DLP投影出樹莓4B的桌面,按照官方提供的步驟一
    發表于 02-18 07:06

    deepin 23+樹莓讓小車動起來

    。 ? ? 硬件準備 以下是所需的硬件清單,看看自己都備齊了嗎? 樹莓 4b 智能小車底盤 雙層圓盤(兩輪附帶電機、電池盒) Type-C?接口 5V 鋰電池(給樹莓供電) TB6
    的頭像 發表于 02-12 09:12 ?667次閱讀
    deepin 23+<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>讓小車動起來

    樹莓傳感器使用方法 樹莓 Raspberry Pi 4優缺點

    開發和物聯網應用。以下是一些基本的樹莓傳感器使用方法: 1. 連接傳感器 GPIO引腳 :樹莓的GPIO(通用輸入/輸出)引腳允許直接連接傳感器。這些引腳可以用于讀取數字信號(如按
    的頭像 發表于 12-06 10:35 ?1922次閱讀

    樹莓gpio有什么用,樹莓gpio接口及編程方法

    一、樹莓GPIO的用途 樹莓(Raspberry Pi)是一款小巧、功能強大的單板計算機,廣泛應用于編程教育、物聯網項目、家庭媒體中心等領域。GPIO(General Purpos
    的頭像 發表于 10-22 18:09 ?2466次閱讀

    什么是樹莓樹莓是什么架構的

    什么是樹莓 樹莓(Raspberry Pi,簡寫為RPi,別名為RasPi/RPI)是由英國“Raspberry Pi 慈善基金會”開發的一款為學習計算機編程教育而設計的微型電腦。
    的頭像 發表于 10-22 17:33 ?4346次閱讀

    樹莓和單片機的優缺點是什么

    樹莓(Raspberry Pi)和單片機(Microcontroller)是兩種廣泛應用于電子項目和嵌入式系統的硬件平臺。它們各自具有獨特的優缺點,適用于不同的應用場景。 樹莓
    的頭像 發表于 08-30 18:21 ?2661次閱讀

    樹莓的功能用途是什么

    樹莓(Raspberry Pi)是一款由英國樹莓基金會研發的信用卡大小的單板計算機,自2012年推出以來,已經發展出多個型號和版本。樹莓
    的頭像 發表于 08-30 18:01 ?4228次閱讀

    樹莓x86還是arm

    樹莓(Raspberry Pi)是一款由英國樹莓基金會(Raspberry Pi Foundation)開發的微型計算機。它基于ARM架構,而非
    的頭像 發表于 08-30 15:42 ?2275次閱讀

    樹莓裝ubuntu和raspbian哪個更好

    樹莓(Raspberry Pi)是一款由英國樹莓基金會開發的單板計算機,廣泛應用于教育、科研、物聯網等領域。樹莓
    的頭像 發表于 08-30 15:41 ?2569次閱讀

    樹莓5,Raspberry Pi 5 評測

    樹莓4已經算是一款強大的單板計算機了,樹莓5聲稱其處理能力是樹莓4的兩到三倍。
    發表于 06-19 14:51