どうも、なかしーです。
僕は自動車のマイコンにプログラミングをする組み込みエンジニアとして働きつつ、YouTubeでArduinoの使い方を解説しています。
>>なかしーの電子工作部
Arduinoと可変抵抗ってどうやって使うんだろう?
という悩みにお答えします。
可変抵抗は抵抗値を任意の値に調整することができ、オーディオ機器のボリュームを調整するツマミとして使われています。
可変抵抗も電流を流すと、電圧が発生します。
抵抗値に合わせて、電圧を変化させることが可能です。
Arduinoにはアナログの電圧を取り込むことができるA/D変換の機能が備わっているため、取り込んだ電圧値に合わせて次のことが実現可能です。
- LEDの点滅速度を変える
- サーボモータの角度を変える
また、センサーのオフセット値を調整するためにも使われます。
この記事では「Arduinoで可変抵抗を使う方法」について紹介します。
可変抵抗の特徴
可変抵抗は抵抗値を調整できますが、最大値が決まっています。
最大値は3ケタの数字で記されており、十の位、一の位、10の何乗かの順で書いてあります。
例えば、可変抵抗に103と書かれている場合は
10kΩとなります。
また、可変抵抗には変化の仕方がAカーブ、Bカーブ、Cカーブの3パターンあります。
マルチメータで抵抗値を測定してみました。
Arduinoで可変抵抗の電圧を取り込む方法
まずは可変抵抗をArduinoに接続しましょう。
可変抵抗の両端に+5VとGNDを接続、真ん中のピンはArduinoのアナログピンと接続します。
可変抵抗のツマミを回すことで、抵抗値の変化と共に真ん中のピンの電圧が5Vから0Vまで変化します。
その電圧をA/D変換してArduinoに取り込みます。
アナログ入力A0ピンに可変抵抗を繋いで、シリアルモニタにA/D変換したデータを表示させてみました。
int AD_data = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
AD_data = analogRead(0); /* A/D変換 */
Serial.println(AD_data); /* シリアルモニタへデータ送信 */
}
A/D変換したデータを元にLEDの点滅速度やサーボモーターの角度を変えるプログラムを作ってみました。
ArduinoでA/D変換する方法について詳しく知りたい方は「ArduinoでA/D変換する方法」をご覧ください。
ArduinoでA/D変換する方法【電子工作の入門講座】LEDの点滅速度を変える
A/D変換したデータに応じてLEDの点滅速度を変えるプログラムを作りました。
int AD_data = 0;
void setup() {
pinMode(3, OUTPUT);
}
void loop() {
AD_data = analogRead(0); /* A/D変換 */
digitalWrite(3, HIGH);
delay(AD_data);
digitalWrite(3, LOW);
delay(AD_data);
}
A/D変換のデータに範囲を設けて、点滅速度を変えたりすると良いかもしれません。
サーボモータの角度を変える
可変抵抗のツマミに合わせてサーボモータの角度を変えるプログラムを作りました。
#include
Servo myservo;
int AD_data = 0;
int angle = 0;
void setup() {
myservo.attach(3);
}
void loop() {
AD_data = analogRead(0); /* A/D変換 */
angle = (int)(((float)AD_data / 1023) * 180);
myservo.write(angle);
}
Arduinoに書き込んで動かしてみるとツマミに応じて、サーボモータの角度が変わります。
Arduinoで可変抵抗を使う方法|まとめ
この記事では「Arduinoで可変抵抗を使う方法」について紹介しました。
可変抵抗は抵抗値を調整することができるので、電流を流して電圧をArduinoに取り込み色んなものを操作することができます。
Arduino以外にも発信回路の周波数やセンサーのオフセット調整にも可変抵抗を使ったりします。
とても便利なので、ぜひ使いこなしてください!
Arduino関連の人気記事
>>【Arduino入門キット】電子工作の勉強におすすめ【こんなに安くていいの?】
>>Arduinoでできることを紹介【逆にできないことは何?】
当ブログで人気のArduino入門キット