2014年7月21日 星期一

Raspberry Pi GPIO ( 一 ) 使用 Python 控制 LED


在實作之前先來看看 RPI 的 I / O 腳

RPI 上面共有 26 支 GPIO 腳位 ( 2 x 13 ) ,如下圖:


雖然有 26 個腳位 ,但有 6 支針腳是沒有用到的,所以實際上只有 26 - 6 = 20 支腳可以用

在使用這些腳位的時候要非常小心,因為 RPI 上面並沒有保護電路,所以千萬不能直接輸入
 3.3 V 以上的電壓到任一腳位上,運氣好只燒掉 1 支腳 ,運氣不好整塊板子就死掉了!!
所以最好在接到任何負載之前,先接到緩衝器 (Buffer) 或二極體以免回衝。

=======================================================================

接下來就是 GPIO 控制 LED 的部分:

由於這是個簡單的範例,所以就沒有接上保護的電路,直接實作,但是
如果接錯線讓板子燒掉的話,請自行負責喔!!

首先將 3.3V (pin 1) 接到 LED的正端,然後接上保護電阻 (220~1K),
最後接上 GPIO0 (pin 11) ,這樣硬體的部分就完成了,如下圖:


再來就是程式的部分,我是使用 Python 來控制 GPIO:

由於新版的 Raspbian 已經內建 GPIO 套件了,所以不用下載安裝

打開終端機,用 pi 執行以下指令:

sudo python

就會看到下面的訊息

Python 2.7.3 (default, Mar 18 2014, 05:13:23)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>

進入 Python 的命令列之後

先匯入 GPIO & 時間 函式庫
>>>import RPI.GPIO as GPIO
>>>import time

定義使用RPI的腳位編號
>>>GPIO.setmode(GPIO.BOARD)

設定輸出腳位
>>>GPIO.setup(11, GPIO.OUT)

讓 Pin 11 輸出 Low,這個時候就可以看到 LED亮起來了
>>>GPIO.output(11, GPIO.LOW)

讓 Pin 11 輸出 High,這樣就可以關掉LED
>>>GPIO.output(11, GPIO.HIGH)

要離開 Python 要輸入以下命令
>>>exit()

實際影片:



再來就可以把我們剛剛輸入的指令寫成檔案來執行:

vim XXX.py

#!/usr/bin/python

import RPi.GPIO as GPIO

import time

GPIO.setmode(GPIO.BOARD)

ledPin=11

print "Setup Pin 11 is Output..."

GPIO.setup(ledPin,GPIO.OUT)

print "Starting..."

while True:

        GPIO.output(ledPin,GPIO.HIGH)

        print "Set Output HIGH"

        time.sleep(1)

        GPIO.output(ledPin,GPIO.LOW)

        print "Set Output LOW"

        time.sleep(1)


存檔後就可以執行以下指令來執行我們的程式:

sudo python XXX.py

實際影片:

















沒有留言:

張貼留言