[Device]以Python及C語言控制LED亮滅

本文重點如下;利用TightVNCServer遠端控制,並以Python及C語言控制LED亮滅。由於是[Device]系列的第一篇文章,故設定的細節會有所著墨,未來這些細節均不再說明。

(一)以Python控制LED:
1.打開VNCServer,其密碼最多只有8碼,怪哉!














2.執行cat /proc/cpuinfo取得板子版本資訊。數字是採16進位,D、E、F是Model B Rev 2 512MB,2、3是Model B Rev 1。














3.GPIO腳位圖。
3.1 B type 26PIN
























3.2 B+ type 40PIN



















4.在 IDLE執行下列程式,以取得GPIO版本。





















5.若版本比5.2a還舊,需以sudo apt-get install RPi.GPIO執行更新。我的是5.11比5.2a要新,所以不用更新。

6.接著以PWM控制LED漸亮、漸暗,故接線以PIN-12接330歐姆電阻,再串接LED正極,LED負極接PIN-6。

7.開啟IDLE並選擇File---New Window,準備撰寫程式碼。

















8.程式碼完成後存檔。





















9.接著執行sudo python pwm.py就可以看到LED亮、滅,亮、滅的一直執行了。但按Ctrl+C強迫停止後,再執行上行指令會出現該PIN使用中的資訊,且無法關閉的問題!

(二)以C控制LED:
1.首先執行git clone git://git.drogon.net/wiringPi安裝wiringPi程式庫。

2.下載完成後;切到wiringPi資料夾,執行sudo ./buid程式對程式碼進行編譯動作。

3.執行gpio readall指令顯示所有腳位功能圖。
















4.執行gpio -1 mode 12 out設定PIN-12(Physical)為輸出。接著執行gpio -1 wirte 12 1讓LED燈亮,執行gpio -1 wirte 12 0讓LED燈滅。可以正常工作的話再進行下一步。

5.執行sudo nano ledpwm.c命令,進入nano編輯器後輸入下列內容。接著按ctrl+o、enter存檔,ctrl+x離開nano程式。



























6.接著執行gcc -lwiringPi -lpthread ledpwm.c -o ledpwm編譯程式,並產生ledpwm執行檔。

7.接著執行sudo ./ledpwm,沒問題的話即可看到LED一閃、一滅十次之後,結束本程式。

PS:本篇在操作時不小心遇到IP碰撞的問題(兩台Pi的IP不小心設成一樣),造成不小的錯誤!未來不應在發生這種事,要多注意hostname的辨識。至於後來發生unable to resolve hostname的問題解法在此

沒有留言:

張貼留言