// --------------------------------------------------------------------------------
/*

06 使用可變電阻調校 LED 亮度

[學習重點]

1. 認識可變電阻
2. 認識 Arduino 板上的 Analog In
3. 認識 analogRead (0 - 1023)
4. 認識 map(value, fromLow, fromHigh, toLow, toHigh)

[挑戰]

- 試以一種能作 Analog 輸出的感應器替換現有的可變電阻


Created by Jason on 6 Aug 2022.

*/
// --------------------------------------------------------------------------------

int ledPin = 9; // 定義 ledPin 變數並設定適合的 Pin 號
int potPin = A1; // 定義接收可變電阻數值的 Pin 號
int potValue; // 可變電阻回傳的數值 (0-1023)

void setup() {
  pinMode(ledPin, OUTPUT); // 設定 ledPin 為輸出模式
  pinMode(potPin, INPUT); // 設定 potPin 為輸入模式
}

void loop() {
	potValue = analogRead(potPin); // 讀取可變電阻的數值 (0-1023)
  int ledValue = map(potValue, 0, 1023, 0, 255); // map(value, fromLow, fromHigh, toLow, toHigh) 根據可變電阻的數值 (0-1023) 計算出 LED 的亮度值 (0-255)
	analogWrite(ledPin, ledValue); // 因應 ledValue 值向 ledPin 輸出不同電位
	delay(100); // 延時 0.1 秒
}