設備與材料
個人電腦 × 1
arduino Uno × 1
麵包板 × 1
LED × 8
可變電阻10kΩ × 1
9pin A型 331排阻 × 1
連接線 若干
指令介紹
當需要跟電腦通訊的時候,可以使用串列通訊,Arduino 有內定串列通訊物件,物件類別函數如下。
Serial.begin():開始使用串列通訊
Serial.print():把資料列印到 Serial port。
Serial.println():功能跟 Serial.print() 相同,一樣是把資料列印到 Serial port,不過 Serial.println() 會在資料尾端加上換行字元。
註:使用串列通訊,D0 與 D1 這兩支接腳就不能再當作數位輸入或輸出使用 。
電路圖
實體接線圖
程式
//宣告輸入接腳
const int VR = A2; //可變電阻輸入腳
//宣告變數
int val = 0; //類比輸入
int _val = 0; //舊類比輸入
void setup() {
// 設定輸入接腳
pinMode(VR,INPUT);
//開啟串列埠 功能,並設定鮑率9600
Serial.begin(9600);
}
void loop() {
val = analogRead(VR); //讀取 VR 腳的類比輸入
//數值有改變時則傳送給電腦
if(val!=_val){
Serial.println(val); //傳送資料給電腦
_val = val; //更新舊讀取值
delay(10); //延時 10ms
}
}
監看
如下圖,打開 Arduino IDE 的”序列埠監控視窗”,就可以看到 Arduino Uno 板傳回電腦的數值。轉動可變電阻時,A2腳的輸入電壓會改變範圍從 0~5V,因為從 USB供電,有時候最大電壓無法達到5V,因此類比轉換最大可能無法達到1023。
功能
本實習用可變電阻來選擇10燈LED不同跑法,
當 讀 A2 腳 數值 0~250,10燈LED 1燈來回跑,每次移動一個燈 延遲時間 100ms
當 讀 A2 腳 數值 251~500,10燈LED 2燈來回跑,每次移動一個燈 延遲時間 100ms
當 讀 A2 腳 數值 501~750,10燈LED 3燈來回跑,每次移動一個燈 延遲時間 100ms
當 讀 A2 腳 數值 751~1023,10燈LED 4燈來回跑,每次移動一個燈 延遲時間 100ms
提示
上面程式只是示範 A2 腳的讀取程式,請使用 if() 判斷式,參考 Arduino 布林運算子,作範圍判斷,來完成此功能(LED 10支輸出腳記得宣告)。
相關知識
Arduino 布林運算子
analogRead 函數
Serial 物件
自定函數
if 判斷式
if else 判斷式
digitalRead 函數
boolean
陣列
for 迴圈
Arduino 複合運算子
const
Arduino Uno 硬體
int
void
setup 函數
loop 函數
pinMode 函數
digitalWrite 函數
delay 函數
Arduino 輸出實習(單燈閃爍)
Arduino 輸出實習(跑馬燈-愚公移山)
Arduino 輸出實習(跑馬燈-for迴圈)
Arduino 數位輸入實習
Arduino 數位輸入實習(INPUT_PULLUP)
Arduino 類比輸入實習
Arduino PWM 實習 (呼吸燈)
Arduino PWM 實習 (光感應調光燈)
Arduino 8×8 LED Matrix MAX7219 實習
Arduino 紅綠燈小綠人 實習
Arduino 計時器 實習
Arduino 音樂盒
Arduino 電子琴(鍵盤掃描)
Arduino DHT11 溫濕度感應器
Arduino OLED 顯示
Arduino 超音波測距模組 HC-SR04
Arduino 執行時間實習
Arduino 電容測試器
Arduino 紅外線接收實習
Arduino 紅外線發射實習 EPSON 投影機控制
ESP-12F 網路智慧開關(MQTT)
ESP-12F 雲端記錄型 K-Type 溫度計(MQTT ThingSpeak)
ESP-12F 手機雲端紅外線控制
ESP-12F 網路電台收音機
ESP-12F 電子鼓