相關產品的基本介紹,網路上有許多介紹,不妨上網搜尋一下~
至於使用那一個 Arduino 版本來學習,參考如下:
Arduino UNO - 網上範例最多,大部分範例均運用 Arduino Uno 為主
=========================================================
Digital I/O 數位輸入/輸出端共 14Pin( 0~13)(其中包含 6 組 PWM 端子)
Analog I/O 類比輸入/輸出端共 6Pin (A0~A5)。
支援 AREF 端子。
通信 UART Tx/Rx 端子
支援 USB 轉 TTL Tx/Rx 端子
Arduino Nano - 體積小,比 UNO 多了 A6/A7 Analog I/O 類比輸入端子
=========================================================
Digital I/O 數位輸入/輸出端共 14Pin( 0~13)(其中包含 6 組 PWM 端子)
Analog I/O 類比輸入/輸出端共 8Pin (A0~A7)。
支援 AREF 端子。
通信 UART Tx/Rx 端子
支援 USB 轉 TTL Tx/Rx 端子
Arduino MEGA2560 - 4 組 UART 通信接口,比其他版本多了 許多 I/O 端口
=========================================================
Digital I/O 數位輸入/輸出端共 54Pin(其中包含 15 組 PWM 端子)
Analog I/O 類比輸入/輸出端共 16Pin (A0~A15)。
支援 AREF 端子。
通信 UART Tx/Rx 端子 4 組
支援 USB 轉 TTL Tx/Rx 端子
所以一般運用,個人比較建議使用 Arduino Nano,因為 體積小;
又有比較多的 I/O 端子可以運用,例如 :8 Input / 12 Output 的運用。
詳細 Arduino 硬體規格運用再請上網搜尋。
~~~~~~~~~~~~~~~~~~~~
如何控制 Arduino 來做運用,就需要下載/安裝 Arduino IDE 開發程式 (參考 https://www.arduino.cc/en/Main/Software) 及程式撰寫。
Arduino 程式架構可以分為二大類:
一。為 void setup ();宣告 Arduino 的初始化設定
二。為 void loop ();撰寫 Arduino 主程式開始的迴圈
一。為 void setup (),Arduino 的初始化設定,例如 :
1. Arduino 硬體狀態設定:
pinMode (腳位代號, 輸出或輸入模式); // 腳位設定為輸出腳或輸入腳
2. Arduino 的程式初始化設定:(設定程式一開始的狀態)
digitalWrite (腳位代號, 輸出準位狀態設定);
二。為 void loop (),主程式開始的迴圈,例如:
digitalWrite (腳位代號, HIGH);// 輸出狀態
delay (10); // Delay 的延遲單位時間為 ms
// 所以 delay (10); 代表延遲 10ms
digitalWrite (腳位代號, LOW);
delay (20); // Delay 的延遲單位時間為 ms
// 所以 delay (20); 代表延遲 20ms
int PinNumber; 宣告 PinNumber 變數為
for (int PinNumber = 2; PinNumber <= 9; PinNumber++)
// PinNumber 代表 腳位代號;腳位由 第 2 腳開始到第 9 腳;
.......................
範例:LED 跑馬燈 (控制 D2 - D13 LED 亮或滅)
=======================================
// 定義 輸出 LED 腳位 號碼,由 D2-D13 腳位
int LEDPin[] = { 2, 3, 4, 5, 6, 7, 8, 9 ,10, 11, 12, 13};
/*
* 詳細上列定義 LEDPin 陣列內容:
* LEDPin[0] = 2; 第 D2 腳位
* LEDPin[1] = 3; 第 D3 腳位
* LEDPin[2] = 4; 第 D4 腳位
* LEDPin[3] = 5; 第 D5 腳位
* LEDPin[4] = 6; 第 D6 腳位
* LEDPin[5] = 7; 第 D7 腳位
* LEDPin[6] = 8; 第 D8 腳位
* LEDPin[7] = 9; 第 D9 腳位
*/
int delayMs = 50; // 設定延遲時間
int LED_Status = 1; // 設定 LED 亮燈方向。亮燈方向累加 = 1;亮燈方向累減 = 0
int LED_OnNumber = 0; // 設定亮燈的號碼,由 0 ~ 7。
void setup() {
// put your setup code here, to run once:
for (int LoopCount = 0; LoopCount <= 11; LoopCount++) {
pinMode(LEDPin[LoopCount], OUTPUT); // 設定 LEDPin[] 腳位為 輸出腳位
}
Serial.begin(9600); // 設定 Serial Port 鮑率 (Baudrate) = 9600
}
void loop() {
// put your main code here, to run repeatedly:
for (int LoopCount = 0; LoopCount <= 11; LoopCount++) {
digitalWrite(LEDPin[LoopCount], LoopCount == LED_OnNumber ? HIGH : LOW);
}
if (LED_Status == 1 ) // 設定 LED 亮燈方向。亮燈方向累加 = 1
LED_OnNumber++;
else if (LED_Status == 0 ) // 設定 LED 亮燈方向。亮燈方向累減 = 0
LED_OnNumber--;
if (LED_OnNumber == 11) // 亮燈號碼到最末號碼,則設定 LED 亮燈方向。亮燈方向累減 = 0
LED_Status = 0;
else if (LED_OnNumber == 0) // 亮燈號碼到最初號碼,設定 LED 亮燈方向。亮燈方向累加 = 1
LED_Status = 1;
// 透過 Serial Monitor 將目前狀態傳送出來顯示
Serial.print("LED_Status = ");
Serial.print(LED_Status);
Serial.print(", LED_OnNumber = ");
Serial.print(LED_OnNumber);
Serial.println("");
delay(delayMs); // 延遲一段 delayMs 設定的週期時間
}
=======================================
(程式範例結束)
沒有留言:
張貼留言