紅綠燈

最後更新日期:2022-03-24 10:06:41

使用紅、黃、綠三種顏色的LED燈,搭配適當的延遲時間,製作一個小小紅綠燈。

# 實作步驟

  • 學習使用
  • 設計電路圖
  • 連接電路
  • 搭建積木程式 & 執行

# 學習使用

透過三種顏色的LED燈,來實現一個交通號誌的應用。(紅燈亮2秒 → 綠燈亮5秒 → 黃燈亮1秒,持續此循環)

# 設計電路圖

若對LED燈的連接方式還不熟悉,可以參考LED燈章節的說明。此範例將連接三個不同顏色的LED燈,為避免LED燈燒毀,各自連接上一個限流電阻,另一端腳位連接上樹莓派控制腳位。

Traffic Light 01

紅色LED長腳連接至樹莓派實際針腳編號11黃色LED長腳連接至樹莓派實際針腳編號12綠色LED長腳連接至樹莓派實際針腳編號13,所有LED短腳各自連接上一個1KΩ電阻,該電阻再連接到樹莓派實際針腳編號6(GND)

# 連接電路

實際線路如下圖,建議連接步驟如下,若您要移除電路時,請使用相反的順序進行即可。

  1. 於麵包板上連接相關元件
  2. 資料、控制腳位連接上樹莓派
  3. GND腳位連接上樹莓派
  4. VCC(5V or 3.3V)腳位連接上樹莓派

紅綠燈實際電路連接圖

# 搭建積木程式 & 執行

開啟積木程式畫面如下,若您已經下載代理程式,並且完成「rp_agent」設定,可以將首次使用須知下方的框框,勾選「不再顯示此訊息」,並按下「確定」按鈕。

PS. cwBlockly頁面請於樹莓派中執行。

積木程式首次使用須知

初始畫面如下。

積木程式初始畫面

控制LED的積木位於「發光元件」→「LED燈」。

發光元件積木區

LED燈積木區

拖曳「LED定義積木」至RPi預設積木中。

放置LED定義積木

將腳位編號由預設的15,改成實際線路的「11」。

修改連接腳位

此腳位是用來控制紅色LED燈,為了容易識別,將名稱由「led」改成「red」,名稱修改步驟如下:

  1. 滑鼠左鍵點一下「led」名稱的部份,下拉清單出現,並選擇「重新命名變數...」項目。

    重新命名變數

  2. 出現變數重新命名輸入框,輸入「red」,按下確定按鈕。

    輸入變數名稱

  3. 該控制積木名稱已修改為「red」。

    確定修改變數名稱

重複上述步驟,由「發光元件」→「LED燈」,再拖曳「LED定義積木」,並分別定義名稱為「yellow」及「green」,其分別連接的實體針腳編號為「12」及「13」。

LED定義積木

欲控制LED燈亮滅,必須使用設定狀態積木。再次打開「LED燈」積木區,拖曳「LED設定狀態」積木。

LED設定狀態積木

將「LED設定狀態」積木,放置於「LED定義積木」下方,並將之前定義的red、yellow及green都設定為低電位,表示預設這三個LED燈都是暗的。

LED設定狀態為低電位

以上完成基本定義的部份,回顧此次交通號誌的主要行為:「紅燈亮2秒 → 綠燈亮5秒 → 黃燈亮1秒,持續此循環」。

能實現「重複循環」功能的積木,在「迴圈」積木區中,選擇第二個(由上往下數),當條件成立時重複執行的積木。

迴圈積木

實現紅燈亮2秒的步驟如下:

  1. 於「red設定狀態」積木按下滑鼠右鍵,下拉選單選擇「複製」。

    右鍵,選擇複製項目

  2. 將「複製」後的積木,設定為「高電位」,並放置於「重複」積木的執行區塊中。

    複製積木

  3. 由「延遲」積木區,拖曳延遲積木。

    延遲積木

  4. 將延遲時間改成「2」,並放置於「red設定狀態高電位」積木下方。

    修改延遲時間

重複上述步驟,實現「綠燈亮5秒」及「黃燈亮1秒」。

重複上述步驟,完成其餘亮燈時間

是否完成了呢?如果在這個步驟就執行的話,會發現最終所有的LED燈都亮起來,因為還缺少關燈的動作。

思考一下,在紅燈亮之前,應該是黃燈亮著,所以當紅燈亮時,必須將黃燈關閉,也就是將其設定狀態為「低電位」。

Traffic Light 20

依據上方的邏輯,將剩餘的關燈動作補上

Traffic Light 21

按下右上方的Play按鈕,完成此次的實作體驗。

下載本範例積木程式 LED_traffic_light.rpb


若您對基礎電子套件有興趣,可至蝦皮賣場購買,若是學校團體亦可來信訂購,謝謝。

若對本篇教學文章有任何建議或問題,歡迎您來信:chipwaygo@gmail.com,謝謝。