Assembed Gertboard (Rev2.0) - 利用 Raspberry Pi (樹莓派) 學習與開發電子 (週邊) 的最佳拍檔
PiGertboard 套件 (A) - Raspberry Pi (樹莓派) Gertboard 嵌入式套件
PiGertboard 套件 (B) - Raspberry Pi (樹莓派) Gertboard 外接式套件
Gertboard - Open Collector Driver ( 黃色框線 ),source: Gertboard User Manual (Rev 2.0) |
Gertboard - Open Collector Driver 電路圖,source: Assembled Gertboard Schematics |
有沒想過,當要控制一串 10 幾顆順向電壓 3.5V 的藍光 LED 開關或是亮度控制要怎麼做 ?DC 12V 直流馬達怎麼用 DC 3.3 V 或是 DC 5V 電壓輸出的微控制器作控制 ?
GertBoard 裡所使用的電壓是直流 3V3,因此想要控制大電壓或是需要大一點電流的設備裝置 ( 例如,直流馬達、步進馬達、繼電器、LEDs...等 ),就可以使用板子上所提供的 ULN2803 晶片所提供的開集極驅動的功能,使用外部電壓 ( Max. 50V / 500mA ) 來驅動所要驅動的設備裝置,每一個通道內部還有一顆用來做為保護的二極體,如下所示為 GertBoard 上單一通道的 ULN2803 線路示意圖。
單一開集極驅動通道電路示意圖,source: Gertboard User Manual (Rev 2.0) |
簡單一點來說,驅動電源 ( GertBoard 的 GND ) 與設備電源要共地 ( 接在 ⊥ ),然後將要被控制的設備 ( 例如直流馬達 ) 一端接在 common ( + ) 一端接在 OUT ( - ),因為是開集極所以可視為一個開關,因此你必須將外部電源的正極 ( + ) 再接到 common ( + ) 上,如此一來就可以看到馬達開始轉動了!
對照上面的三張圖,電路示意圖上的 Raspi 對應到 GertBoard 電路板上的 J4 ( RLY1 ~ 6 );電路示意圖上的 common 接腳對應到 GertBoard 電路板 J6、J12 ~ J17上標示為 RPWR 的接腳;電路示意圖上的 OUT 接腳對應到 GertBoard 電路板 J12 ~ J17上標示為 RLY1 ~ 6 的接腳。
下面實際看接線圖再想一下,對照上面的說明,應該就能清楚了 !!!
LEDs 驅動 - 接線圖:
下圖使用 GP4 控制 RLY1,再驅動控制兩顆 LED。若供應電壓為 DC9V ( 正極接 J6-RPWN,負極接 J6-⊥ ),驅動串連兩顆順向電壓 3.5V 的藍光 LED 並限流為 10 mA,則限流電阻可選 200 Ω ( 可耐 0.02 W 以上 ) 的電阻來用。這串聯的 LED 串,( 如圖 ) 正端與 DC 9V 的正極 ( 或 J6-RPWR ) 相接,另一端則接到 J6-RLY1,當 GP4 輸出為高準位時,LED 串亮起,反之則熄滅。
開集極驅動 LEDs 接線圖,source: Gertboard User Manual (Rev 2.0) |
所以就是這樣的接法才是正確的 !!!
LEDs 驅動 - 程式測試:
C 語言的按鈕測試程式為 ocol,Python 是 ocol-rg.py 和 ocol-wp.py ( "程式名稱-rg.py" 表示是使用 RPi.GPIO 函式庫, "程式名稱-wp.py"表示是使用 wiringpi 函式庫 ),程式的說明請自行參考 Assembled Gertboard Manual Rev2.0, Page 26 - 27。
兩種程式的執行結果都一樣,請看如下影片的展示:
不管是要使用什麼方法驅動設備裝置,請注意每個元件都有它的使用限制,使用之前一定要先確認所要驅動的設備裝置電壓與電流的需求,再選擇適用的驅動元件。
另外,在 Gordons Projects 網頁裡,有一篇網頁 Higher Current Drivers ,使用GertBoard 上的 Buffer I/O 和 ULN2803 驅動七段顯示器來顯示樹莓派的系統時間。原始程式碼在 wiringPi 函式庫安裝目錄 $HOME/wiringPi/example 中,名稱是 7segments.c;如果系統中沒有安裝過 C / C++ 語言用的 wiringPi 函式庫,請看下面的補充說明。
Gertboard - ULN2803 驅動七段顯示器,from: projects.drogon.net |
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
補充資料:wiringPi 函式庫安裝 for C / C++,照著下面指令做一遍就可以了
pi@raspberrypi ~ $ sudo apt-get install git-core ... << 過程省略 >> ... update-rc.d: using dependency based boot sequencing pi@raspberrypi ~ $ git clone git://git.drogon.net/wiringPi Cloning into 'wiringPi'... ... << 過程省略 >> ... pi@raspberrypi ~ $ ls -l 總計 20 drwxr-xr-x 2 pi pi 4096 4月 29 15:27 Desktop -rw-r--r-- 1 pi pi 5781 2月 3 13:07 ocr_pi.png drwxrwxr-x 2 pi pi 4096 7月 21 2012 python_games drwxr-xr-x 6 pi pi 4096 4月 29 15:37 wiringPi pi@raspberrypi ~ $ cd wiringPi/ pi@raspberrypi ~/wiringPi $ ./build # <-- 不要加 sudo wiringPi Build script ===================== The wiringPi I2C helper libraries will not be built. WiringPi library [UnInstall] [Compile] wiringPi.c [Compile] wiringPiFace.c [Compile] wiringSerial.c [Compile] wiringShift.c [Compile] gertboard.c [Compile] piNes.c [Compile] lcd.c [Compile] piHiPri.c [Compile] piThread.c [Compile] wiringPiSPI.c [Compile] softPwm.c [Compile] softServo.c [Compile] softTone.c [Link (Dynamic)] [Install] GPIO Utility [Compile] gpio.c [Link] [Install] All Done. ####### 測試 wiringPi 函式庫是否正確安裝 pi@raspberrypi ~/wiringPi $ gpio -v gpio version: 1.12 Copyright (c) 2012 Gordon Henderson This is free software with ABSOLUTELY NO WARRANTY. For details type: gpio -warranty This Raspberry Pi is a revision 2 board. pi@raspberrypi ~/wiringPi $ gpio readall +----------+------+--------+------+-------+ | wiringPi | GPIO | Name | Mode | Value | +----------+------+--------+------+-------+ | 0 | 17 | GPIO 0 | IN | High | | 1 | 18 | GPIO 1 | IN | High | | 2 | 27 | GPIO 2 | IN | High | | 3 | 22 | GPIO 3 | IN | High | | 4 | 23 | GPIO 4 | IN | High | | 5 | 24 | GPIO 5 | IN | High | | 6 | 25 | GPIO 6 | IN | High | | 7 | 4 | GPIO 7 | IN | High | | 8 | 2 | SDA | IN | High | | 9 | 3 | SCL | IN | High | | 10 | 8 | CE0 | IN | Low | | 11 | 7 | CE1 | IN | Low | | 12 | 10 | MOSI | IN | Low | | 13 | 9 | MISO | IN | Low | | 14 | 11 | SCLK | IN | Low | | 15 | 14 | TxD | ALT0 | High | | 16 | 15 | RxD | ALT0 | High | | 17 | 28 | GPIO 8 | IN | Low | | 18 | 29 | GPIO 9 | IN | Low | | 19 | 30 | GPIO10 | IN | Low | | 20 | 31 | GPIO11 | IN | Low | +----------+------+--------+------+-------+ pi@raspberrypi ~/wiringPi $
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
賣場部落格 "認識 GertBoard " 系列文章:
- [ 認識與使用 Gertboard ] 首部曲 - 瞭解 GertBoard 電路板、建置編輯環境與測試程式碼下載與安裝
- [ 認識與使用 Gertboard ] 第二部曲 - 輸出入緩衝線路 ( 開關和 LED )
- [ 認識與使用 Gertboard ] 第三部曲 - ULN2803 開集極驅動 ( Open Collect Driver )
- [ 認識與使用 Gertboard ] 第四部曲 - 馬達驅動控制器 ( Motor Controller )
- [ 認識與使用 Gertboard ] 第五部曲 - 數位轉類比 ( MCP4802 ) 和類比轉數位 ( MCP3002 ) 轉換器 ( D to A and A to D converters )
- [ 認識與使用 Gertboard ] 第六部曲 - 各部分組合測試
- [ 認識與使用 Gertboard ] 第七部曲 - Atmel Atmega chip
撰寫中...
撰寫中...
<< Gertboard 相關資料文件下載>>
- TOSHIBA - ULN2803 Datasheet ( PDF ) 8ch Darlington Sink Driver
- Assembled Gertboard Manual Rev2.0 ( PDF ) Gertboard 使用手冊 (Rev 2.0)
- Assembled Gertboard Schematics ( PDF ) Gertboard (Rev2.0) 電路圖
- Gertboard: Application Library for Gertboard Kit (Linux) Application Library for Gertboard Kit (Linux), contains test/example programs written in C.
Gertboard 應用函式庫 (由 C 語言寫成) 裡面包括原始檔與範例程式
- Gertboard Test Suite in Python 2.7 Gertboard Python 函式庫與範例程式
沒有留言:
張貼留言
留言屬名為"Unknown"或"不明"的用戶,大多這樣的留言都會直接被刪除掉,不會得到任何回覆!
發問問題,請描述清楚你(妳)的問題,別人回答前不會想去 "猜" 問題是什麼?
不知道怎麼發問,請看 [公告] 部落格提問須知 - 如何問問題 !