python控制燈_Python 控制樹莓派 GPIO 輸出:控制 LED 燈

樹莓派 GPIO 控制輸出的入門應該都是從控制 LED 燈開始的吧。

樹莓派版本:Model 3B+

樹莓派系統:Raspbian Stretch with desktop and recommended software,April 2019

連接裝置

準備一個 LED 燈,兩個兩頭都為母的杜邦線。對照下圖連接樹莓派和 LED 燈,要求一個是地線(GND)連接燈的負極,一個有 GPIO + BCM 編號連接正極。我選擇了 pin 號為 6 和 12 的兩個引腳。你也可以選擇別的,記得將之后的代碼中 BCM 編號修改正確

1385863-20190530105709363-214627156.png

在斷電狀態下連接。連接好的如下圖,我的 LED 燈有正負極的提示,圖中所示紅色箭頭指向的是正極,藍色箭頭是負極。如果你的 LED 燈是最簡單的那種,長引腳就是正極,短的負極。

1385863-20190530110320003-523689149.jpg

樹莓派開機。

安裝 RPI.GPIO

我裝的樹莓派系統已經滿足所需要的環境,不需要額外下載。

你可以測試是否已經有該模塊,在終端打開 Python3,然后嘗試導入庫: import RPi.GPIO as GPIO 。如果沒有出現error,就表示已經有了,可以直接跳到下一步。

如果出現錯誤,則執行以下命令:

sudo apt-get updatesudo apt-get install python3-rpi.gpio

測試 GPIO

按下圖所示依次輸入命令,觀察。

1385863-20190530122647304-831160365.png

GPIO.setmode() 有兩種參數可以選擇:可以使用 GPIO.BOARD 選項告訴庫根據 GPIO 接口的引腳號引用信號,或者使用 Broadcom 芯片的信號編號( GPIO.setmode(GPIO.BCM) )。

在選擇了模式之后,需要確定在程序中使用哪一個 GPIO 信號以及將家門用來作為輸入還是輸出:GPIO.setup(channel, direction)。我給的例子里是 GPIO.setup(18, GPIO.OUT) 。

后面兩個命令控制燈的開關: GPIO.output(18, GPIO.HIGH) 和 GPIO.output(18, GPIO.LOW) 。

GPIO.cleanup() 用于重置 GPIO 接口,它把所有的 GPIO 引腳設置為低電平狀態,所以沒有多余的信號出現在界面上。在不使用改函數的情況下,如果試圖配置一個已分配信號值的 GPIO 信號引腳,那么 RPi.GPIO 模塊會產生一條警告信息。

閃爍 LED

然后我在樹莓派上編寫了下面這個代碼讓 LED 燈閃爍五次,保存在 Desktop,命名為 led.py。

#!/usr/bin/python3

importRPi.GPIO as GPIOimporttime

GPIO.setmode(GPIO.BCM)

GPIO.setup(18, GPIO.OUT)

GPIO.output(18, GPIO.LOW)

blinks=0print('開始閃爍')while (blinks < 5):

GPIO.output(18, GPIO.HIGH)

time.sleep(1.0)

GPIO.output(18, GPIO.LOW)

time.sleep(1.0)

blinks= blinks + 1GPIO.output(18, GPIO.LOW)

GPIO.cleanup()print('結束閃爍')

演示結果:

1385863-20190530124327302-296142046.gif

1385863-20190530124349034-1440188892.gif

也可以以通過PWM 信號來達到讓燈閃爍的效果。

#!/usr/bin/python3

importRPi.GPIO as GPIO

GPIO.setmode(GPIO.BCM)

GPIO.setup(18, GPIO.OUT)

blink= GPIO.PWM(18, 1)try:

blink.start(50)whileTrue:pass

exceptKeyboardInterrupt:

blink.stop()

GPIO.cleanup()

start() 方法指定了占空比(從 1 到 100)。在開始 PWM 信號后,程序就可以解放出來做其他事情了。GPIO 18 會持續發送 PWM 信號,直到停止它。 blink = GPIO.PWM(18, 1) 指定了 PWM 信號以 1HZ 的頻率發送,燈 1 秒閃爍一次。按 Control + C 中止閃爍。

參考資料

《樹莓派Python編程 入門與實戰(第2版)》,人民郵電出版社

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/396937.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/396937.shtml
英文地址,請注明出處:http://en.pswp.cn/news/396937.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

圖論:弦圖最小點染色

弦圖的定義&#xff1a;當圖中任意長度大于3的環都至少有一個弦時&#xff0c; 一個無向圖稱為弦圖 不存在四角、五角等關系就說明這個圖是一個弦圖 題目問的是&#xff0c;任何一對相互認識的人不可以組一隊&#xff0c;問最多可以組多少對 所有的人構成的關系圖是一個弦圖&am…

報錯型sql注入原理分析

0x00&#xff1a;前言關于sql注入&#xff0c;經久不衰&#xff0c;現在的網站一般對sql注入的防護也相對加強了&#xff0c;2016年的***測試報告中&#xff0c;出現最多的是xss&#xff08;跨站腳本***&#xff09;和明文傳輸等&#xff0c;但是對sql注入的利用方式&#xff0…

matlab矩陣 0,matlab zeros初始化為0矩陣

zeros為創建一個值為零的數組&#xff1b;如matrix1zeros(4,5);%4*5的矩陣&#xff0c;矩陣中每個元素都為0matrix2zeros(4,5,3);%4*5*3的數組&#xff0c;數組中每個元素都為0下面舉一個將圖像存到數組的例子對RGB圖片1.jpg&#xff0c;2.jpg&#xff1b;大小為700*500*3創建4…

HDU 2199

人生中第一道搜索題 精度精度、&#xff01;&#xff01;&#xff01; 1 #include<iostream>2 #include<algorithm>3 #include<cmath>4 #include<cstdio>5 using namespace std;6 double f(double x)7 {8 return 8*pow(x,4.0)7*pow(x,3.0)2*pow(x,…

python文件編譯_編譯Python文件

編譯Python文件 一、編譯Python文件 為了提高加載模塊的速度&#xff0c;強調強調強調&#xff1a;提高的是加載速度而絕非運行速度。python解釋器會在__pycache__目錄中下緩存每個模塊編譯后的版本&#xff0c;格式為&#xff1a;module.version.pyc。通常會包含python的版本號…

SDN-博客收集

1、云網融合的多云網絡轉載于:https://www.cnblogs.com/snowwhite/p/9624404.html

php cookie 字串,php入門(字符串,cookie,session)

php入門(字符串,cookie,session)&#xff0c;有需要的朋友可以參考下。字符串獲取字符串的長度: strlen()函數獲取中文字長echo mb_strlen($str,”UTF8”);英文字符串截取$stri love you;復制代碼//截取love這幾個字母echo substr($str, 2, 4);//為什么開始位置是2呢&#xff0…

批處理命令Start

2019獨角獸企業重金招聘Python工程師標準>>> 運行hello.exe&#xff08;最小化&#xff09; start /MIN hello.exe 用記事本打開readme.txt&#xff08;最大化&#xff09; start /MAX notepad readme.txt 打開網頁 start http://www.baidu.com/ 調用另外一個腳本&…

vim亂碼的解決

解決vim文件亂碼&#xff0c;打開文件亂碼&#xff0c;菜單&#xff0c;提示信息亂碼&#xff1a; 有四個跟字符編碼方式有關的選項&#xff0c;encoding、fileencoding、fileencodings、termencoding 在linux中修改.vimrc&#xff08;在win中是_vimrc&#xff09;A&#xff0c…

arcgis python實例_arcgis二次開發_arcgis二次開發python_arcgis二次開發實例

[1.rar] - QQ連連看的源碼.單消秒殺掛機等功能喜歡的朋友請拿去研究 [qqCHAR.rar] - qq 驗證碼識別程序 可以叫準確的識別出qq登陸前的驗證碼 [1.rar] - 本書以Visualc作為開發語言&#xff0c;結合大量實例&#xff0c;詳細介紹了利用Arcobjects組件進行GIS二次開發的方法和過…

Linux命令-自動掛載文件/etc/fstab功能詳解

一、/etc/fstab文件的作用磁盤被手動掛載之后都必須把掛載信息寫入/etc/fstab這個文件中&#xff0c;否則下次開機啟動時仍然需要重新掛載。系統開機時會主動讀取/etc/fstab這個文件中的內容&#xff0c;根據文件里面的配置掛載磁盤。這樣我們只需要將磁盤的掛載信息寫入這個文…

微分方程在matlab中的實現,Matlab微分方程參數優化的Forcal實現

FCC文件缺省設置&#xff1a;(XNote請修改為X軸單位) (YNote請修改為Y軸單位)(AutoY1) (XMin0) (XMax1) (YMin0) (YMax1)(BorderPixels60) (MultiplyX1) (MultiplyY1) (Grid0) (DivideXY10) (XYNumWidth3) (DataMax2)(ForMax50) (LoadDll)[CODE]// 通用設置&#xff1a;// (XNo…

常用命令

1.在控制臺下關閉Java進程&#xff1a;taskkill /f /im java.exe轉載于:https://www.cnblogs.com/super90/p/5133906.html

一、在windows環境下修改pip鏡像源的方法(以python3為例)

在windows環境下修改pip鏡像源的方法(以python3為例) 1.在windows文件管理器中,輸入 %APPDATA% 2.會定位到一個新的目錄下&#xff0c;在該目錄下新建pip文件夾&#xff0c;然后到pip文件夾里面去新建個pip.ini文件 3.在新建的pip.ini文件中輸入以下內容&#xff0c;搞定 [glob…

得到選擇框句柄 怎么操作_電腦版微信怎么多開?最簡單的三種電腦版微信多開教程...

?在現實中的我們在網絡上卻又很多張臉&#xff0c;多開微信很多人都是需要的&#xff0c;這里就介紹3個方法給大家多開。方法1&#xff1a;BAT文件鼠標右鍵單擊微信圖標選擇 屬性在屬性選項夾內復制 “目標”例如我的是("D:Program Files (x86)TencentWeChatWeChat.exe&q…

php起始符大全,PHP 符號大全

注解符號:// 單行注解/* */ 多行注解引號的使用’ ’ 單引號,沒有任何意義,不經任何處理直接拿過來;" "雙引號,php動態處理然后輸出,一般用于變量.變量形態:一種是True 即 真的;另一種是False 即假的常見變量形態:string 字串(數字\漢字\等等)int…

關于tomcat內路徑跳轉的一些思考

初學jspservlet時經常碰上的幾個錯誤&#xff1a;404、路徑正確但頁面沒有任何內容、樣式和圖片丟失。這幾個錯誤曾經讓我在debug時頭大&#xff0c;現在總結一下&#xff0c;其實它們都跟路徑有關&#xff0c;正是因為沒有處理好路徑跳轉的問題&#xff0c;才引發了這一連串的…

Filter責任鏈模式

Filter責任鏈的創建 org.apache.catalina.core.ApplicationFilterFactory#createFilterChain, 此方法是被org.apache.catalina.core.StandardWrapperValve#invoke調用的, 對每個request都會創建FilterChain public static ApplicationFilterChain createFilterChain(ServletR…

python中的類裝飾器應用場景_這是我見過最全面的Python裝飾器教程了!

裝飾器(Decorators)是 Python 的一個重要部分。簡單地說:他們是修改其他函數的功能的函數。他們有助于讓我們的代碼更簡短,也更Pythonic(Python范兒)。在程序開發中經常使用到的功能&#xff0c;合理使用裝飾器&#xff0c;能讓我們的程序如虎添翼。1. 函數名應用 函數名是什么…

對于個人(注冊表)與團隊(團隊表)(兩張表沒有關聯)的展示與可空判斷

對于個人&#xff08;注冊表&#xff09;與團隊(團隊表)&#xff08;兩張表沒有關聯&#xff09;的展示與可空判斷 1&#xff0c;在Model中只有GroupId沒有名稱&#xff08;GroupName&#xff09;,所以自己定義一個&#xff1a; /// <summary>/// RegistratorMessage 界面…