02 從燈開始

(2020/01/09)

一、使用Sensor Shield for Arduino V5.0 感測器擴充板

  • 將Arduino UNO板與Sensor Shield for Arduino V5.0 擴展板結合

    • 結合後,常用腳位介紹:

        • 註:SVG一組腳位通常用來接一個感應器或元件:S接到感應器的訊號腳位上,為傳遞腳位訊號用;V本身有5V的電;G為接地。所以V、G兩腳就像具有5V的電池一樣,用來提供感應器或元件的電源。一般V接到感應器的VCC端(或+極)(通常用紅色杜邦線)、G接到感應器的GND端(或- 極)(通常用黑色杜邦線)。

二、點亮一顆燈

  • 將一顆LED燈與Arduino板連接

  • (LED為發光二極體,長腳為正極、短腳為負極)

  • 註:所有的數位腳位都可以用來接LED燈(通常比較不會用腳位0及腳位1),如果數位腳位不足,也可以用類比腳位來當數位腳位!(A0就相當於D14)

    • 準備一塊多功能擴展板

      • 註:1、接LED燈時,只要接二支腳(S、G)就可以了

      • 2、多功能擴展板說明 (宇宙機器人代理)

    • 程式部份:LED燈會每隔1秒鐘一亮一滅

三、點亮多顆燈或一顆三色LED燈

  • 分別準備3顆不同顏色的LED燈,接到D8、D9、D10這3個腳位

    • 程式部份:先亮第1顆燈、1秒後亮第2顆燈,再1秒後亮第3顆燈,以此類堆

    • 同理,也可以在這3個腳位接上一顆共陰的三色LED燈,同樣用上面的程式來讓一次亮一種顏色(RGB)

四、利用按鍵點燈

  • 按鍵為一個【數位輸入】裝置,在使用按鍵控制亮燈前,先要知道按鍵下去時,所輸入的值是0、還是1

    • 將【按鍵模組】接在D2腳位,一樣,所有數位腳位都可以接按鍵模組。

    • 程式部份:(利用序列埠監控視窗來顯示結果)

    • 開啟序列埠監控視窗

      • 點擊IDE

        • 會開啟Arduino IDE,然後選取正確的序列埠 (Arduino 接到電腦所使用的埠數)

        • 點擊右上角【序列埠監控視窗】

        • 這時會開啟【序列埠監控視窗】,由於程式中設定傳輸率(鮑速)為9600bps,所以右下角速度要選9600

        • 最後,請同學按下按鍵,看視窗內顯示的數字有沒有改變,是不是變1了。也就是按下按鍵相當於輸入的值是 1

        • 在還沒有接上顯示器前,就利用監控視窗來顯示結果。

  • 將按鍵模組接在D2腳位,LED燈接在D8腳位(還使用之前的三色LED燈) (接線圖同上題)

    • 題目一:當按下按鍵時燈亮;當放開按鍵時燈滅

      • 二分法:符合條件(開燈)與不符合條件(關燈)時的動作

    • 題目二:當按下按鍵時燈亮(放開時燈還亮);再按下一次按鍵時,燈就滅掉,以此類堆。

    • 也就是求按下的次數是奇數還是偶數?奇數亮燈,偶數不亮燈!

  • 同理,同學們會不會利用【滾珠開關】、【霍爾感應器】或各式的【感應器】來開燈了嗎?

五、可控制燈的亮度

  • 之前利用【數位輸出】來控制亮燈,輸出高電位(1)則亮燈,輸出低電位(0)則燈滅,所以不是亮燈就是滅燈

  • 本節改利用【類比輸出】來控制亮燈,燈除了亮、滅外,還可以控制稍亮或稍暗等不同程度的亮燈

  • 前一章介紹過Arduino只有D3、D5、D6、D9、D10、D11這6個腳位(上圖編號前有 ~ 圖案),可模擬成【類比輸出】腳位(又稱PWM腳位)。

  • PWM腳位的值介於0(相當於數位的0) 到 255(相當於數位的1),也就是介於0、1間還有很多值可用。

  • 以下程式為燈由暗、漸亮、到最亮的呈現

    • 認識【類比輸入】

    • 前一節介紹的按鍵是【數位輸入】,輸入時不是0就是1,本節介紹的【類比輸入】其值介於0(相當於數位輸入的0)、1023(相當於數位輸入的1),也就是0、1間還有很多中間的值可用

  • 顯示電位計(可變電阻器)所輸入的值

    • 將電位計(可變電阻器)接在A0腳位

      • 將A0類比值顯示在序列埠監控視窗,程式如下:

      • 顯示結果

  • 利用電位計控制燈的亮度

    • 將電位計接在A0、LED燈接在D9

    • 程式:

      • 試試看,旋轉電位計時,燈的亮度是否也會跟著改變。

  • 呼吸燈

    • 所謂呼吸燈,就是燈由暗漸亮,再由亮漸暗,一直重複下去,感覺就像人呼吸一樣

    • 其實,將上面的電位計由最小慢慢轉到最大,再從最大慢慢轉到最小,一直重複下去,這燈的變化就是呼吸燈的感覺

    • 程式: