3.3 Arduino analogRead() -> Processing

Analog Bar Chart

效果

將Arduino收到的兩個analog值用bar chart顯示出來。

螢幕快照 2015-04-07 下午04.01.52

電路圖

2ldr

程式碼

Arduino

Processing

說明

Arduino程式可參考這裡

Processing程式中,上半部分是跟之前的Serial接收是一樣的。後半部分:

fill(255,0,0);: 是填色,就是將長方形填上紅色。

rect(width/5, height*4/5, 80, - data[0]/3); : Processing預設畫長方形的模式是rect(x, y, width, height),所以現在長方形的寬度是80, 高度是收到的data[0]/3,再乘收負號,令其向上增長(參考這裡)。widthheight是keyword,就是setup()size()的兩個值。所以現在都是512。

Analog V-T graph

效果

讀取Arduino的analog讀數,用時間軸顯示令其像示波器。

螢幕快照 2015-04-07 下午04.03.33

電路圖

2ldr

程式碼

Arduino

Processing

說明

Arduino程式跟之前的一樣。

Processing中,收集完之資料之後,將兩個收集到的data放入voltage0voltage1之中。

strokeWeight(4); : 是畫圖形的邊框粗度,4就是4個像素粗。

stroke(255,0,0); : 是邊框的顏色,用line()point()就需要用stroke()來決定其顏色,而用rect()ellipse()等就用stroke()來決定邊框顏色,用fill()來決定填滿顏色。

point(time, height - voltage0/2); : 是畫點,輸入的兩個參數是點的位置,由於Processing的y軸是由上至下的,所以在畫V-T graph時,需要收height減去收到的值,令其曲線上下反轉。而voltage0voltage1的最大值是1023,畫面只有512高,所以要除2。(你可以試用map()指令來重新縮放 voltage0)

動動腦

  1. 將Processing收的的兩個數值變成兩個圓形,收到的數值越大,圓形的直徑跟著變大。 螢幕快照 2015-04-07 下午03.20.33

  2. 將收到的數值用儀錶板顯示出來。(Processing的線段沒有角度設定的,試用sin()cos()radians()控制線段末點座標。
    螢幕快照 2015-04-07 下午03.22.23螢幕快照 2015-04-07 下午03.58.00