int analogPin = 34; // 類比輸入接腳
int analogValue; // 類比讀入值(0~4096)
float voltage; // 電壓值(浮點數)
int LED[6] = {15, 16, 17, 18, 19, 21};
unsigned long previousMillis = 0; // 前一次的millis()時間
const long interval = 300; // 預設計時的時間
//---------------------------------------------------------------------
int Led = 15; // LED燈
int brightness;
void setup() {
Serial.begin(9600); // 啟用監看視窗
digitalWrite(Led, HIGH); // LED初始值為熄滅
pinMode(analogPin, INPUT); // 宣告輸入接腳
for (int i = 0; i <= 5; i++) {
digitalWrite(LED[i], HIGH); // 所有LED亮
}
delay(1000); // 延遲1秒
for (int i = 0; i <= 5; i++) {
digitalWrite(LED[i], LOW); // 所有LED熄滅
}
}
void loop() {
unsigned long currentMillis = millis(); // 當前的millis()時間
if (currentMillis - previousMillis >= interval) // 若達到預設計時的時間
{
//---------------------------------------------------------------------
// 每經過一個interval的時間,要做的事
//---------------------------------------------------------------------
analogValue = analogRead(analogPin); // 儲存類比讀入值
voltage = 3.3 * analogValue / 4096; // 將類比讀入值 轉換為 電壓值
brightness = 256 * analogValue / 4096; // 將類比讀入值 轉換為 輸出亮度
Serial.print("analog value:");
Serial.print(analogValue); // 印出類比讀入值
Serial.print(", voltage:");
Serial.print(voltage); // 印出電壓值
Serial.print(", brightness:");
Serial.println(brightness); // 印出輸出亮度值
analogWrite(Led, brightness); // 類比輸出到LED
//---------------------------------------------------------------------
previousMillis = currentMillis; // 更新前一次的millis()時間
}
}