Arduino
Arduino有自己的一套IDE(整合開發環境),包含了編輯器以及編譯器,且它能編譯數十種不同型號的版子(不同的微控),有需要都可以上Google找。這篇主要是講Arduino IDE中的程式部分,要看介面使用請見這篇
Arduino IDE 2.0
因為Arduino是個不完全的Cpp,且語法不完全相同,加上它又需要去控制及讀取Arduino的訊號,所以時不時會需要不同的函式去做操作,最常見的有< SoftwareSerial.h > < SPI.h > < Wire.h >等,除了引用寫好的函式,也可以從網上下載,詳情請見Arduino Libraries
Arduino的腳位是用數字來定義,像是0到13的digital pin,其實只需要直接寫入就行,但有時為了辨識方便,所以用一個廣域變數來幫它命名,所以在主程式中打它的名字就會是你定義的腳位,有時會怕不小心動到腳位的定義,所以會在前面加上一個const。除了腳位定義,這裡也能放你需要計算的變數,在程式中的任何一個地方都能取用(全域變數)。
我們通常會將腳位的狀態定義放在這裡,或是像一些通訊的速率、頻段的設置,只需要做一次的事情放這就行了,不用讓它在下面的loop中一直跑。
顧名思義就是放要執行的程式的地方,和Cpp不同的是它本身就是一個無限迴圈,所以它會一直執行一套相同的動作,或是你用變數控制裡面的動作次數。
如果覺得寫一些要執行的動作會很複雜,又或是你要寫遞迴的式子,都可以用自訂函數來簡化loop中的結構,也能讓程式比較容易閱讀。
下面幾個常用的函式是內建在Arduino中的,雖簡單但是很重要,如果無法理解就很難融會貫通,而其它複雜的大多要進行include才能使用,但只需下面幾個就能做到很簡單的Arduino project,如需了解digital,analog的差別,請見基本電學及基礎電料
pinMode(腳位,狀態)
在setup中是不可或缺的一個函式,如果沒有定義腳位是輸出或輸入,它完全不會做動(沒有預設狀態),可設的狀態有兩種,分別是INPUT和OUTPUT,而在數位腳上,Arduino有內建上拉電阻,只要用INPUT_PULLUP就能啟動
digital
它適用於所有腳位包括類比腳位
1.digitalRead(腳位)
它讀到的數值只有1和0(高電位和低電位),多用來判斷有無觸發開關或感測器
2.digitalWrite(腳位,電位)
它和read相對,電位可以寫HIGH或是LOW(高電平及低電平)
analog
1.analogRead(腳位)
只適用類比腳位,讀入的數值會是0到1023的值(2⁰~2¹⁰)
2.analogWrite(腳位,電位)
只適用於有寫~(pwm)符號的數位腳位,這是pwm的寫法,可以輸出0-255的值,或是用map轉成0-1023,輸出電壓由低電位到高電位,pwm的介紹請見基本電學及基礎電料
Serial
1.Serial.begin(鮑率)
鮑率是板子和電腦之間的通訊頻率,通常會使用9600或是115200,鮑率介紹見Aduino IDE使用與操作
2.Serial.print(數值/字串/字元)
可以在序列埠監控視窗看到輸出,一次只能輸出一行,和cpp是一樣的
3.Serial.println(數值/字串/字元)
和print不同的是它會先換行再輸出
4.Srial.available()
通常會用if來判斷,它會讀取序列通訊介面是否有任何資料輸入,如果有則為true,反之為false。
補充.
習慣cpp的人在做輸入輸出時會很想打>>和<<,這可以在<Streaming.h>中找到,如要使用要上網下載函式庫
delay(毫秒數)
功用是延遲程式的執行,或是製造緩衝時間,也可以用delayMicroseconds()