ここまでの学習で、PWMを使ったLEDの明るさコントロール、ADCを使ったポテンショメーターの値取得について学習しました。
					あわせて読みたい
					
 					
			
						Project 4.1 PWM制御/Breathing LED
						前回は複数のLEDをフォンフォンさせました。 https://kaneshige.org/?p=209 今回は単独のLEDの明るさを制御して「じわ~」っと光らせてみましょう。 本家freenoveのテキ...					
				
					あわせて読みたい
					
 					
			
						Project 9.1 ADコンバーター/Read the Voltage of Potentiometer
						前回はシリアル通信を使用して、ESP32-S3でデータを受け取る処理を動かしてみました。 https://kaneshige.org/?p=321 今回はESP32-S3のADC機能を使って、ポテンショメー...					
				今回はそれらを組み合わせて、ポテンショメーターを使用したLEDの明るさ制御をしてみましょう。
目次
回路図

接続図

コード
/**********************************************************************
  Filename    : SoftLight
  Description : Controlling the brightness of LED by potentiometer.
  Auther      : www.freenove.com
  Modification: 2022/10/21
**********************************************************************/
#define PIN_ANALOG_IN   1
#define PIN_LED         14
#define CHAN            0
void setup() {
  ledcSetup(CHAN, 1000, 12);
  ledcAttachPin(PIN_LED, CHAN);
}
void loop() {
  int adcVal = analogRead(PIN_ANALOG_IN); //read adc
  int pwmVal = adcVal;        // adcVal re-map to pwmVal
  ledcWrite(CHAN, pwmVal);    // set the pulse width.
  delay(10);
}
ポイントは11行目でledcSetupする際に、12ビットで設定しているところです。以前のPWMを使用したLEDの明るさ制御では8ビットで初期化していましたが、ここを12ビットにすることでADCの12ビットと解像度が一致します。そのため、18行目のledcWriteでpwmValをそのまま設定することができます。
次回はポテンショメーターを3つに増やしてRGB LEDの色を制御してみましょう。
					あわせて読みたい
					
 					
			
						Project 11.2 ADコンバータとbitマップ/Soft Colorful Light
						前回はADCとポテンショメーターを使ってLEDの明るさをPWMで制御してみました。 https://kaneshige.org/?p=384 今回はポテンショメーターの数を増やしてRGB LEDの色をコ...					
				
			
			
			
			
			
コメント