Project 11.1 ADコンバータとPWM/Soft Light

ここまでの学習で、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の色...
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

金重総合研究所の主席研究員。
子供の頃から研究者を目指し、ライフワークとして日々様々な研究をしています。
経営・マネジメント・金融・DXあたりが本職です。
私を採用したい人、私と一緒に働きたい人、一緒に知識を肥やしていきたい人はぜひお声がけ下さい。

コメント

コメントする

目次