於 2013年尾才開始鑽研 Arduino 。誰知不玩由可,一玩就不能自拔,實在太吸引我了。最初我是看了一些關於 Arduino 的新聞,心想這麼細小的 IC可以做那麼多的事情,實在太牛了吧…對於我不是電子系出身的,這些新聞看了便算,不會當作一回事。後來,因工作方面需要弄一個溫度數據收集器,來即時監測整個 Server Room的不同區域的溫度,這時我就想起 Arduino 了。於是在網上查了一下有關 Arduino的玩法,看過後給我的感覺是—就是這麼簡單!?於是在淘寶買了一塊 UNO R3 和一些感應器,玩了一個星期後便著迷了。以一個人機界面的工程而言,要我編寫個界面用於電腦顯示是一件很容易的事,但如何去用程式驅動硬件就很困難了(也許之前也沒接觸過 8051,也不熟電子零件) 。但當我接觸了 Arduino後,這個再也不是問題了。
下圖為是在面包板上複製Arduino:
下圖為是在面包板上複製Arduino:
Arduino給我的感覺是:
很容易入門
— 在 Arduino 板子上分清楚:Power接口、Digital I/O接口和 Analog I/O接口。透過程式控制 Digital I/O 高低電位、讀取 I/O 接口的數值,來使不同特性的感應器和電子零件產生作用即成。
硬件連接方面也很簡單
— 我在這裡嘗試簡單地說說我在這幾個月來所收集的資料和我的理解。
電源連接。首先看清楚正負極,若要給電驅動的電子零件,就在Power接口接上。如果Arduino本身不夠電流或電壓,去驅動電流較大的電子零件或電器時,可以加外接電源如:外接變壓器或較高容量的電池 (記著要 Common Ground) 。
感應器連接。如果你的工程需要接收Arduino板子和電腦以外的訊息,例如:溫度、濕度、光度、磁場、濃煙、紅外線、Orientation…等等,就要接上感應器。可按不同需要,零敏度等選擇感應器。再根據該感應器的接腳接上VCC、GND、I/O腳即可。
控制連接。要產生高或低電位來控制的,就接上 Digital I/O。要讀入電壓降,就接 Analog I/O。要果讀入較大電流電壓就要先加個分流電阻。如果要驅動電流較大的電子零件或電器產品,就要選擇先接上 NPN Transistor、光耦、繼電器等等…再利用Digital I/O接口加以開關。如果Digital I/O接腳不夠,可以接個 74HC595(Output Only) 、74HC4067、PCF8574…等等來擴展。如果要輸出PWM值也可直接透過Arduino
本身已有的 PWM pin輸出,如果不夠 PWM pin,可以接TLC5940來擴展。
摩打(馬達) 連接。不要直接接上 Arduino板子,因為會燒掉Arduino板子的。你可以透過NPN Transistor、光耦、繼電器等等…如果你要控制摩打又要向前又要向後又或者要控制步進Servo Motor時,請利用 L298 / L295 IC來驅動比較容易及合適。
USB連接。如果你是自製Arduino板子,又或者是 Arduino Pro Mini、 Microduino…等,沒有USB接口的板子。可以加個 PL2303、CH340、CP2102、FTDI…等的USB
Module…再網上流存,FTDI的最穩,但亦最貴。根據本人實測,PL2303與CP2102也不錯,可選有 DTR腳引出的那種(如要作成 Auto Reset)。將 VCC接上板的 VCC,GND接上板的 GND,TX接上板的 RX,RX接上板的 TX,DTR接上 104pf陶瓷電容,電容另一隻腳Reset腳。如果是自製板子請於 Reset腳同時另接
10k電阻,電阻另一端接到 VCC。
Arduino 的程式 Framework 很簡單很容易令人理解
— 一般的開發者,如果已經懂 C / C++則即可上馬,完全無痛。Arduino 的程序很簡單,主要有兩個函式:void setup() 和 void loop()。setup()就是把要預設的東西,通通放到這裡就是了。例如:pinMode(led, OUTPUT); 簡單而言就是 Initialization... 初始化所有設定。loop()簡單不過,就是不停重覆又重覆運行…除非你個 program有 bug又或者 memory overflow,如果不是的話,它是會不停地運行直至電源給拔掉才會停止。
我下次會嘗試以我消化之後的角度去談談如何複製 Arduino…
我下次會嘗試以我消化之後的角度去談談如何複製 Arduino…
沒有留言:
張貼留言