跳到主要內容

Arudino 教學(五):開關 + 數位輸入 + IF 語法

本次實作將使用開關元件,並運用 Arduino 的數位輸入功能偵測信號,依照輸入信號執行 LED 燈號程序。內容比較複雜,將分次分階段進行。本次實作每個同學需要抄寫「實作目的」、「線路說明」、「程式說明」與「進階」作為實作報告。

實作目的:
  • 正確使用開關元件,並架構電位測量電路
  • 正確使用 Arduino 數位輸入電路
  • 使用 IF 語法,偵測數位輸入信號進行 LED 程序
階段一:認識開關元件

零件包內附的開關是4支腳位,分成兩組,從背面觀察(上圖下),從條紋來辨識,左邊2支腳位是互通的,右邊2支也是;而必須按下開關,左右兩邊才會連通。

階段二:Arduino 數位輸入與電位測量電路

Arduino 數位輸入是電位訊號而非電流,所以不可以直接將電流直接導入 Arduino 腳位。必須架構電位測量電路來達成數位訊號輸入。


本階段使用 Arduino UNO 的 6 號腳位作為數位輸入,按下開關之後控制內建 LED

digitalRead(6):讀取 6 號腳位的訊號,高電位 HIGH,低電位 LOW

階段三:由開關控制 LED 程序

現在開始要結合前兩階段以及上個實作,由開關來啟動 LED 閃動程序。由 6 號腳位接受數位輸入訊號。利用 IF 語法控制 LED 程序。LED 電路和程序和上一個實作相同。

電路圖:


線路說明:
  • 8、10、12號腳位組成共陰極 LED 線路
  • 6 號腳位連接由開關元件所組成的電位測量線路,作為數位輸入端
程式截圖:

程式說明:
  • int var = 0; 表示宣告一個變數 var 作為後續讀取輸入訊號用
  • 在 setup 區塊設定 6 號腳位為數位輸入端,8號、10號、12號腳位為數位輸出端
  • 在 loop 區塊中,利用 var = digitalRead(6); 讀取 6 號腳位訊號到變數 var 中
  • 利用 IF 語法,判斷變數 var 是否為 HIGH (高電位)。若是則開始執行 LED 程序

進階:
  • 變更間隔時間與次數
  • 增加 LED 或 燈號變化
  • 使用雙分支結構增加變化

補充說明:IF 語法

if (判斷式){
    …
    (成立時執行的程序)
    …

雙分支結構
if (判斷式){
    …
    (成立時執行的程序)
    …
} else {
    …
    (不成立執行的程序)
    …
}

判斷式:== 表示相同;!= 表示不相同














留言

這個網誌中的熱門文章

Arudino 教學(三):多顆 LEDs

本次實作將加深 LED 電路,練習多顆 LEDs 與共地線電路,並使用 Arduino Uno 進行控制。另外, 本次實作每個同學需要抄寫「實作目的」、「線路說明」、「程式說明」與「進階」作為實作報告。 實作目的: 熟悉多顆 LEDs 與共地線電路接線 使用 Arduino 程式進行多顆 LEDs 控制 電路圖: 線路說明: LEDs 負極(短腳)共同連接在一起,再接至 Arduino GND(接地)腳位 LEDs 正極(長腳)先連接一220Ω 電阻之後,再分別連接至 Arduino 10 號與 11號腳位 程式截圖: 程式說明: 在 setup 區塊中,利用 pinMode 設定 10 腳位為輸出用途,設定 11 腳位為輸出用途 在 loop 區域中,利用 digitalWrite 送出 HIGH 點亮  LED,LOW 關閉 LED 燈,其中 10 號腳位 HIGH 時,11號腳位則為 LOW,反之亦然 delay(1000) 延遲一秒 進階: 改變延遲時間 增加閃動變化 增加 LED 的數量

IPv6 系列(五):KEA DHCP SERVER

學校在純 IPv4 的環境時,採用 ISC-DHCP Server 來發放教學區域的私有 IP(10.10.xxx.xxx),並使用閘道 Fortigate 作 NAT 連接到 Internet。 採用 IPv6 後,原本是要使用 ISC-DHCPv6 來作為 IPv6 發放,結果 ISC-DHCPv6 架不起來。不過在查詢 DHCPv6 的過程中,發現 ISC(Internet System Consortium)已開發出下一代的 DHCP Server:Kea Dhcp Server。 Kea Dhcp Server 官網: https://www.isc.org/kea/ 摘錄  https://www.itread01.com/content/1548712273.html  對 Kea DHCP Server 的介紹: Kea DHCP Server 由 Internet Systems Consortium(ISC) 開發的開源 DHCPv4/DHCPv6 伺服器。Kea DHCP Server 是一個高效能的,可擴充套件的DHCP伺服器引擎。通過hooks library可以很容易的修改和擴充套件。 Kea包含的功能元件 keactrl — kea伺服器啟動,停止,配置重置和狀態查詢元件 kea-dhcp4 — DHCPv4伺服器程式,用於響應客戶端的DHCPv4查詢。 kea-dhcp6 — DHCPv6伺服器程式,用於響應客戶端的DHCPv6查詢。 kea-dhcp-ddns — DHCP動態DNS程式.這個程式在DHCP伺服器和DNS伺服器之間扮演者調解者。它接收來自DHCP伺服器域名更新請求和傳送DNS更新訊息給DNS伺服器。也就是說DDNS捕獲使用者每次變化的IP地址,然後將其與域名相對應,這樣其他上網使用者就可以通過域名來進行交流。而最終客戶所要記憶的全部,就是記住動態域名商給予的域名即可,而不用去管他們是如何實現的。 軟體執行環境 加密庫Botan或者OpenSSL log4cplus 1.0.3+ 如果有需要mysql,需要MySQL headers and libraries。可選(postgresql、cassandra類同) 選用 Kea DHCP Server 的原因,...

幾個網頁排版技巧

  1、首行縮排2字元 中文文章會習慣每段的首行縮排2字元 CSS設定:text-indent: 2em 2、利用 Web font loader 動態載入網路字型 JS: <script src="https://ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js"></script> <script>      WebFont.load({           google: {   families: ['Noto Sans TC','Droid Sans'] }   }); </script> 參考資料: 網路字型載入工具  |  Google Fonts  |  Google Developers typekit/webfontloader: Web Font Loader gives you added control when using linked fonts via @font-face. (github.com) 网页字体优化之字体异步加载 | Blog @ GIUEM Web字体载入利器(Web Font Loader)使用详解(Web字体加载缓慢解决办法)_web加载字体_lt_1111的博客-CSDN博客 Web字体载入利器-->Web Font Loader - w3ctech 3、常用CDN jQuery CDN Google Hosted Libraries  |  Google Developers 4、改善字型 render body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; font-smoothing: antialiased; }