內容目錄
資料最小單位
bit(位元)
電腦處理的最小單位,可表示為0、1兩種狀態。
透過這一堆0、1的組合,Arduino就可以計算出來我們要的數值。
byte(位元組)
第二小的單位,byte是由8個位元組合而成,也就是8個0、1的排列組合。
如下圖,想像成8個開關,因此會有2^8=256個組合。

這裡可以再延伸到二進位轉十進位,下列影片有蠻清楚的說明如何將二進位轉成十進位
我們將上圖的10110101練習看看,轉成十進位會是多少吧?

資料類型
大致了解資料基本的組成概念後,我們透過這個二進位方式就可以表現出更多種組合。
但是我們要告訴電腦說,我現在用了幾個bit來表現我要的數值,因此創造了下列幾種資料類型。
之後電腦看到一堆0,1的時候,就知道要如何換算成我們想要的數值了。
額外補充,8位元和32位元的微控制器在int及double上的記憶體容量不同,而Arduino uno 就是8位元的微控制器。
類型 | 中文名稱 | 占用記憶體大小 | 數值範圍 |
---|---|---|---|
boolean | 布林 | 8 bit | true或false(1或0) |
byte | 位元組 | 8 bit | 0~255 |
char | 字元 | 8 bit | -128~127 |
int | 整數 | 16 bit (8位元微控制器) 32 bit (32位元微控制器) | -32768~32767 -2147483648~2147483647 |
long | 長整數 | 32 bit | -2147483648~2147483647 |
float | 浮點數 | 32 bit | +/-3.4E+38 |
double | 雙倍精確度浮點數 | 32 bit 64 bit (32位元微控制器) | +/-3.4E+38 +/-1.7E+308 |
補充說明,E是科學記號,+3.4E+38=3.4*10^38,
所以float的範圍就會是 -3.4*10^38 ~ +3.4*10^38,而其有效數字為7位數。
無正負號資料類型
如果不需要正負號的話,可以在資料類型名稱前面加上“unsigned”,就可以擴大數值範圍。
從下表可以看出來,就是把負數的範圍往正數推,
原本整數(int)範圍為-32768~32767,若加入unsigned,其範圍就是0到32767-(-32768)=65535
類型 | 中文名稱 | 數值範圍 |
---|---|---|
unsigned int | 正整數 | 0~65535 或 0~4294967295(32位元微控制器) |
unsigned long | 正長整數 | 0~4294967295 |
宣告變數
宣告變數語法

這裡的”等號”,我們把它稱作為賦值,其意思就是我們將變數賦予等號後面的數值。
與以往的”等於”意義有點不同,用賦予的概念會讓你更容易理解程式運作的方式。
變數命名規則
變數名稱只能包含字母、數字和底線(_)。
第一個字不能是數字。
變數名稱大小寫有別。
對應有意義的名稱,讓程式碼更容易閱讀。
避免用“保留字”來命名,通常保留字就是那些有功能指令的字,像是print、digitalWrite…,官網有列出來可以參考https://www.arduino.cc/reference/en/。
另外就是命名的小技巧,以led pin 命名時,
可以用led_pin,兩個字中間用底線,利用底線代替空白。
也可以用ledPin,兩個字連接在一起,但第二個首字大寫,駝峰式命名法。
溢位錯誤
在選擇資料型態時,要注意該類型的變數儲存最大容量。
若超過最大容量時,將會造成溢位錯誤。

像byte的數值範圍為0~255,如果放256進去(超過1),就會變成0; 若是放進去257(超過2),實際上則是1。
簡單來說超過範圍後,又會從0開始往後跑。
所以要挑選適合的資料型態來存放你的變數。
宣告常數
常數就是一個固定的變數,就是說我們無法再將這個變數賦予新的數值進去,只能是唯讀的狀態。
像是LED的腳位不會變動的話,那就可以使用const來宣告常數。
或是像是一些固定不變的參數(圓周率、換算匯率、等等等),就可以使用常數來宣告。

最後!! 你喜歡這篇文章,或是這篇文章對你有幫助的話,也歡迎分享出去給需要的人,訂閱免費電子報獲得最新資訊😄😄😄