ここまでの学習で、PWMを使ったLEDの明るさコントロール、ADCを使ったポテンショメーターの値取得について学習しました。
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の色をコ...
コメント