Arduinoと可変抵抗でLEDの明るさ制御

こんなこと、やります。 - Arduinoと可変抵抗でアナログ電圧値を読み取る - 電圧値に応じてLEDの明るさをPWM制御でコントロールする
準備
Arduino、可変抵抗、LEDの配線
図のようにArduino、可変抵抗、LEDを配線してください。
LEDはPWMに対応しているピンのどれかへつなぎましょう。Arduino Unoの場合は、基板に「〜」のマークが付いてます。3番・5番・6番・9番・10番・11番がPWM信号に対応してます。 また、LEDは1kΩ程度の抵抗を直列にはさんで過電流を防止します。
可変抵抗の端子番号
可変抵抗の端子番号は図のようになってます。
可変抵抗の1番をGNDへ、2番をArduinoのAnalogピンの0番へ、3番を5Vへつなぎます。
LEDの極性 アノードとカソードの見分け方
LEDには極性があり、アノードをプラス極、カソードをマイナス極にしてつなぎます。通常、LED端子の長いほうがアノードになってます。もしも、端子の長さが同じで区別のつかない場合は、LEDの内部を覗いてみて、受光素子のついている大きい台座がカソードになります。

ArduinoでLEDの明るさを制御

こちらの映像のように、可変抵抗の回転によってLEDの明るさが変化するArduinoプログラムをつくっていきます。
###
ソースコード
こちらが全体のソースコードになります。
#include <Arduino.h>
int POT = 0;
int LED = 3;
void setup() {
(POT, INPUT);
pinMode(LED, OUTPUT);
pinMode.begin(9600);
Serial}
void loop() {
float v = analogRead(POT);
(LED, v / 1023.0 * 255.0);
analogWrite}
プログラムの解説
可変抵抗の分圧されたアナログ電圧値を、analogRead
関数で読み取ります。
analogWrite
を使って、引数に渡された値を元に、PWM信号をデジタルピンから出力します。ただし、PWMに対応しているデジタルピンを使ってください。
引数に渡すことのできる値は、0〜255までの範囲です。出力されるPWM信号は、デューティ比が0〜100%まで変化します。
こちらの写真は、Arduinoのデジタルピンから出力されたPWM信号を、オシロスコープで観察したものです。デューティ比が50%の時の波形になります。
発展
PWM制御ができるようになると、さまざまなデバイスを制御できるようになって、やりたいことの幅が広がります。
MOSFETへの発展
さらに大きな負荷のもの、たとえばモータや複数のLEDがついた電球などを制御したい場合は、MOSFETのようなドライバが必要になります。
シリアルLEDの世界
通常のLEDの他に、シリアルLEDという素子があります。シリアルLEDを使うと、LEDの明るさや色を簡単に制御できます。

シリアルLEDとは
シリアルLEDとは、ひとつひとつのLEDはRGBフルカラーに対応しており、シリアルLEDを数珠つなぎにして増やすことができる素子です。たったの1本のデータ線で、いくつものLEDを制御できます。ネオピクセルと呼ばれるWS2812B
のシリアルLEDが有名です。
サーボモータの制御
実は、サーボモータの角度制御もPWM制御で行なってます。
ArduinoのServo
ライブラリを使えば簡単にサーボモータを使うことができます。
関連記事
- Arduinoで可変電圧器【Seeeduino Xiao】
- オペアンプ1個でつくる!PWMジェネレータ
- Raspberry PiでMOSFETを使おう
- 超音波センサHC-SR04の使い方|ArduinoとRaspberry Piで解説
- Arduinoでコンデンサの静電容量測定