紅綠燈
使用紅、黃、綠三種顏色的LED燈,搭配適當的延遲時間,製作一個小小紅綠燈。
# 實作步驟
- 學習使用
- 設計電路圖
- 連接電路
- 搭建積木程式 & 執行
# 學習使用
透過三種顏色的LED燈,來實現一個交通號誌的應用。(紅燈亮2秒 → 綠燈亮5秒 → 黃燈亮1秒,持續此循環)
# 設計電路圖
若對LED燈的連接方式還不熟悉,可以參考LED燈章節的說明。此範例將連接三個不同顏色的LED燈,為避免LED燈燒毀,各自連接上一個限流電阻,另一端腳位連接上樹莓派控制腳位。
紅色LED長腳連接至樹莓派實際針腳編號11,黃色LED長腳連接至樹莓派實際針腳編號12,綠色LED長腳連接至樹莓派實際針腳編號13,所有LED短腳各自連接上一個1KΩ電阻,該電阻再連接到樹莓派實際針腳編號6(GND)。
# 連接電路
實際線路如下圖,建議連接步驟如下,若您要移除電路時,請使用相反的順序進行即可。
- 於麵包板上連接相關元件
- 資料、控制腳位連接上樹莓派
- GND腳位連接上樹莓派
- VCC(5V or 3.3V)腳位連接上樹莓派
# 搭建積木程式 & 執行
開啟積木程式畫面如下,若您已經下載代理程式,並且完成「rp_agent」設定,可以將首次使用須知下方的框框,勾選「不再顯示此訊息」,並按下「確定」按鈕。
PS. cwBlockly頁面請於樹莓派中執行。
初始畫面如下。
控制LED的積木位於「發光元件」→「LED燈」。
拖曳「LED定義積木」至RPi預設積木中。
將腳位編號由預設的15,改成實際線路的「11」。
此腳位是用來控制紅色LED燈,為了容易識別,將名稱由「led」改成「red」,名稱修改步驟如下:
- 滑鼠左鍵點一下「led」名稱的部份,下拉清單出現,並選擇「重新命名變數...」項目。
- 出現變數重新命名輸入框,輸入「red」,按下確定按鈕。
- 該控制積木名稱已修改為「red」。
重複上述步驟,由「發光元件」→「LED燈」,再拖曳「LED定義積木」,並分別定義名稱為「yellow」及「green」,其分別連接的實體針腳編號為「12」及「13」。
欲控制LED燈亮滅,必須使用設定狀態積木。再次打開「LED燈」積木區,拖曳「LED設定狀態」積木。
將「LED設定狀態」積木,放置於「LED定義積木」下方,並將之前定義的red、yellow及green都設定為低電位,表示預設這三個LED燈都是暗的。
以上完成基本定義的部份,回顧此次交通號誌的主要行為:「紅燈亮2秒 → 綠燈亮5秒 → 黃燈亮1秒,持續此循環」。
能實現「重複循環」功能的積木,在「迴圈」積木區中,選擇第二個(由上往下數),當條件成立時重複執行的積木。
實現紅燈亮2秒的步驟如下:
- 於「red設定狀態」積木按下滑鼠右鍵,下拉選單選擇「複製」。
- 將「複製」後的積木,設定為「高電位」,並放置於「重複」積木的執行區塊中。
- 由「延遲」積木區,拖曳延遲積木。
- 將延遲時間改成「2」,並放置於「red設定狀態高電位」積木下方。
重複上述步驟,實現「綠燈亮5秒」及「黃燈亮1秒」。
是否完成了呢?如果在這個步驟就執行的話,會發現最終所有的LED燈都亮起來,因為還缺少關燈的動作。
思考一下,在紅燈亮之前,應該是黃燈亮著,所以當紅燈亮時,必須將黃燈關閉,也就是將其設定狀態為「低電位」。
依據上方的邏輯,將剩餘的關燈動作補上
按下右上方的Play按鈕,完成此次的實作體驗。
下載本範例積木程式 LED_traffic_light.rpb。
若您對基礎電子套件有興趣,可至蝦皮賣場購買,若是學校團體亦可來信訂購,謝謝。
若對本篇教學文章有任何建議或問題,歡迎您來信:chipwaygo@gmail.com,謝謝。