mBlock & Arduino(19)透過網路調節 LED 亮度


Arduino Uno 板子沒有銜接網路模組,是無法進行網路連線的,不過 mBlock 具有網路連接功能,兩台電腦分別開啟 mBlock,就可以進行網路通訊,也就是說,你可以透過網路控制另一頭連接的 Arduino,反之亦然。

建立網路連線

要使用 mBlock 建立網路連線,兩台電腦都必須開啟 mBlock,接著在其中一台執行「網路連接/自定義連接」後,輸入另一台電腦的 IP:

建立網路連線

按下「連接」按鈕,如果連線成功的話,兩台電腦上的 mBlock 都會呈現「網路連接 已連接」的字樣:

建立網路連線

記得!一定要按下「連接」按鈕,直接按下 Enter 鍵是不會有反應 … XD

接下來就可以寫個簡單的通訊啦!例如,在其中一台不斷地發送計時器的訊息:

建立網路連線

而另一台不斷接收訊息並顯示:

建立網路連線

按下兩個 mBlock 的綠旗,你就會看到另一個 mBlock 接到訊息並顯示出來:

建立網路連線

透過網路調節 LED 亮度

接下來示範一下,如果透過網路調節 LED 亮度,在兩台電腦上分別連接上 Arduino,並記得在 mBlock 上分別指定好「串口連接」,當然,也得記得如上透過網路連線兩個 mBlock。

接著,其中一台 Arduino 如下連接一個可變電阻:

建立網路連線

另一台 Arduino 如下連接電阻與 LED:

建立網路連線

因為要透過 Arduino 調節 LED 亮度,別忘了要接在有 PWM 功能的腳位上,因此在上頭我是接在 D11 腳位。

接著,連接著可變電阻的電腦上,在 mBlock 上撰寫如下的程式:

建立網路連線

這會不斷地讀取類比腳位的電壓值並透過網路送出,而在另一台連接著 LED 的電腦上,在 mBlock 中撰寫如下的程式:

建立網路連線

別忘了,Arduino 類比腳位的輸入值是 0 ~ 1023,而透過有 PWM 功能的腳位模擬類比電壓時,可指定的值是 0 ~ 255,因此,必須透過計算作轉換,「讀取壹行數據」並不會阻斷程式流程,因此我們必須檢查值是否為 0 到 1023。

在上頭的程式中,「當收到數據時」方塊會在「讀取壹行數據」方塊完成後觸發執行,你也可以將「如果」方塊的部份,直接放在「不停重複」之中,兩種寫法都可以!

接下來分別執行程式,並試著轉動可變電阻,你會發現另一台 Arduino 上的 LED 會隨著可變電阻的轉動而有不同的明亮。

影片示範