Arduinoと可変抵抗でLEDの明るさをコントロール

Arduinoと可変抵抗でLEDの明るさをコントロール

この記事では、Arduinoで可変抵抗(ボリューム抵抗)を使ってLEDライトの明るさをコントロールする方法を解説する。

開発環境

項目バージョン
ArduinoデバイスArduino Uno Rev3
可変抵抗100kΩ(Bカーブ)
統合開発環境VS Code x Platform IO
パソコンmacOS Big Sur 11.0.1

可変抵抗はBカーブを使用したが、LEDの明るさのコントロールにはAカーブの方が向いているかもしれない。とはいえ、Bカーブでもプログラム次第ではAカーブのような特性を持たせることも可能だ。

TOOHUI ポテンショメータ B5K B10K B20K B50K B100K オーム WH148 ポテンショメーター ノブ 音量 制御 ロータリー 3ターミナルリニアテ Bタイプ 15mm 20個セット カラーノブキット
TOOHUI ポテンショメータ B5K B10K B20K B50K B100K オーム WH148 ポテンショメーター ノブ 音量 制御 ロータリー 3ターミナルリニアテ Bタイプ 15mm 20個セット カラーノブキット

★ 産品名:ポテンショメータ; 抵抗値:B5K B10K B20K B50K B100K オーム 。 ★ 調整タイプ:トップ調整; 特徴:ローレットシャフト。 ★ 標準のWH148つまみ付き、シングルリニアロータリテーパポテンショメータ、3端子、シングルリニア。 ★トップ調整種類とローレットシャフ、 日常の簡単な操作のため。 ★ 主に電気装置を制御するために使用する、例えばボリュームコントロール。

Amazon
Arduino Uno Rev3 ATmega328 マイコンボード A000066
Arduino Uno Rev3 ATmega328 マイコンボード A000066

Uno Rev.3、8 bit、AVR、ATmega328、USB-シリアルコンバータとしてプログラムされたATmega 16U2搭載

AmazonRakuten

Arduinoと可変抵抗の配線

Arduinoと可変抵抗の配線
Arduinoと可変抵抗の配線

可変抵抗の配線
可変抵抗の配線

可変抵抗の1番をGND、2番をArduinoのAnalogピンの0番、3番を5Vへ繋ぐ。また、LEDは1kΩ程度の抵抗を介してDIGIALピンの3番へ繋いでいる。

LEDの明るさはPWMでコントロールするため、PWMに対応しているピン(〜のマークが付いている3・5・6・9・10・11)のどれかへ繋ぐこと。

LEDの明るさをコントロールするプログラム

Arduinoと可変抵抗でLEDの明るさをコントロール
Arduinoと可変抵抗でLEDの明るさをコントロール

可変抵抗を使って、LEDの明るさをコントロールするプログラムがこちら。

#include <Arduino.h>

int POT = 0;
int LED = 3;

void setup() {
  pinMode(POT, INPUT);
  pinMode(LED, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  float v = analogRead(POT);
  analogWrite(LED, v / 1023.0 * 255.0);
}

プログラムの解説

デジタルピンからPWM信号の観察
デジタルピンからPWM信号の観察

可変抵抗の分圧された電圧をanalogRead関数で読み取って、それに応じてLEDの明るさを変化させている。

PWMに対応しているデジタルピンでは、アナログ出力の関数analogWriteを使って簡単にPWM信号を出力することができる。数値は0〜255までの範囲で指定でき、デューティ比が0〜100%まで変化する。写真は、実際にデジタルピンからの出力をオシロスコープで観察したものだ。デューティ比50%の時の波形である。

今回使用した関連製品はこちら

TOOHUI ポテンショメータ B5K B10K B20K B50K B100K オーム WH148 ポテンショメーター ノブ 音量 制御 ロータリー 3ターミナルリニアテ Bタイプ 15mm 20個セット カラーノブキット
TOOHUI ポテンショメータ B5K B10K B20K B50K B100K オーム WH148 ポテンショメーター ノブ 音量 制御 ロータリー 3ターミナルリニアテ Bタイプ 15mm 20個セット カラーノブキット

★ 産品名:ポテンショメータ; 抵抗値:B5K B10K B20K B50K B100K オーム 。 ★ 調整タイプ:トップ調整; 特徴:ローレットシャフト。 ★ 標準のWH148つまみ付き、シングルリニアロータリテーパポテンショメータ、3端子、シングルリニア。 ★トップ調整種類とローレットシャフ、 日常の簡単な操作のため。 ★ 主に電気装置を制御するために使用する、例えばボリュームコントロール。

Amazon
Arduino Uno Rev3 ATmega328 マイコンボード A000066
Arduino Uno Rev3 ATmega328 マイコンボード A000066

Uno Rev.3、8 bit、AVR、ATmega328、USB-シリアルコンバータとしてプログラムされたATmega 16U2搭載

AmazonRakuten

こんな商品も人気です!

1.54インチ 電子ペーパーモジュール 200x200ラズベリーパイ エンベデッドコントローラ付き E-Inkディスプレイ画面
1.54インチ 電子ペーパーモジュール 200x200ラズベリーパイ エンベデッドコントローラ付き E-Inkディスプレイ画面

バックライトがなく、電源を切っても最後のコンテンツが長時間表示される。 超低消費電力、基本的に電力はリフレッシュにのみ必要です。 SPIインターフェイス、Raspberry Pi / Arduino / Nucleoなどのコントローラーボードとの接続用。

AmazonRakuten
M5Stack 開発ボード M5Stack Core2 開発キットデュアルコア32ビット240Mhz LX6プロセッサーUIFlow, MicroPython, A r d u i n o用
M5Stack 開発ボード M5Stack Core2 開発キットデュアルコア32ビット240Mhz LX6プロセッサーUIFlow, MicroPython, A r d u i n o用

Amazon
ELEGOO Arduino用 Nanoボード V3.0 CH340/ATmega328P、Nano V3.0互換
ELEGOO Arduino用 Nanoボード V3.0 CH340/ATmega328P、Nano V3.0互換

NanoはArduinoと互換性があり、ATmega328PやCH340と同じの公式バージョンで使用しています。 これは、最小で、完全で、ブレッドボードに優しいボードです。より多くのアナログ入力ピンとオンボード+ 5V AREFジャンパを備えた(電気的に)すべてが備わっています。

Amazon
ELEGOO Arduino用の 2.8 Inches TFT ターチスクリーン カードソケット付
ELEGOO Arduino用の 2.8 Inches TFT ターチスクリーン カードソケット付

無料チュートリアル(CDに収録)、より良い価格、より良いサービス。 (技術データ付き) 2.8インチ多彩なディスプレイ液晶画面 タッチペンも付き

AmazonRakuten

Arduinoの参考書

ESP32&Arduino 電子工作 プログラミング入門
ESP32&Arduino 電子工作 プログラミング入門

電子工作ファンに人気のマイコンArduino、そしてWiFiとBluetooth内蔵でネットワーク接続しやすいESP32。それらのマイコンでプログラムを組む際に使うのが「Arduino言語」です。「電子工作は好きだけどプログラミングはよくわからない」あるいは「プログラミングの経験がある。それを活かして電子工作を楽しみたい」--そんなみなさまのための電子工作プログラミング入門が本書です。

KindleAmazonRakuten
電子部品ごとの制御を学べる! Arduino 電子工作実践講座 改訂第2版
電子部品ごとの制御を学べる! Arduino 電子工作実践講座 改訂第2版

電子パーツを自由自在に組み合わせて電子工作ができるように、Arduinoによる電子部品ごとの制御方法を詳しく解説。初心者や電子工作に躓いた人でも安心して取り組めるよう、豊富な図・写真で徹底解説。2018年発刊の「Arduino 電子工作 実践講座」の改訂版です。

KindleAmazonRakuten
Arduinoをはじめよう 第3版 (Make:PROJECTS)
Arduinoをはじめよう 第3版 (Make:PROJECTS)

本書では、開発者自らが、Arduinoの哲学、ハードウェア、ソフトウェアの基礎を解説、誰にでもできる簡単なチュートリアルを行います。

AmazonRakuten

Amazonでお得に購入するなら、Amazonギフト券がオススメ!

\Amazonギフトがお得/

コンビニ・ATM・ネットバンキングで¥5,000以上チャージすると、プライム会員は最大2.5%ポイント、通常会員は最大2%ポイントがもらえます!
Amazonギフト券

\この記事をシェアする/