ポテンションメーターを使う | 中華で始める Arduino入門日記11
こんにちは、のすけです。
中華で始める Arduino入門日記の11回目になります。
この連載は、爆安の中華製のArduino互換機を入手し、色々と苦しみながらも安い互換機でArduinoを学習してしまおうというものです。 入手の話はこちらから。
中華で始める Arduino入門日記1 はじめに「中華機を購入してみる」 - hollywis's diary (はりうすブログ)
今回のお題
前回は傾きを検出しました。
傾きを検出してみる | 中華で始める Arduino入門日記10 - hollywis's diary (はりうすブログ)
今回は、Potentiometerを利用して傾きを検出してみたいと思います。
チュートリアルのchapter9に対応しています。
早速始めましょう。
ポテンションメーターとは
調整つまみがついたデバイスで、回し具合に応じて様々な抵抗にすることができます。
可変抵抗器ですね。

3つの端子がありますが、両端の2つに基準電圧を掛けて、真ん中の端子で変更された電圧を受けることができます。
回路を作る
両端の端子に5Vの基準電圧をかけます。
そして、真ん中の端子にはアナログのA0ピンを接続します。

このつなぎ方でアナログ値を観測すれば5V(ボルト)で1023、0V(ボルト)で0を記録するはず。
実は付属のブレッドボードにはポテンションメーターの端子のサイズが微妙に合わなくて刺さりませんでした。
そこで、別途持っていたミニブレッドボード(中華キットには入ってません)を使うといい感じに刺さりました。
簡単なんで回路図は省略。
プログラム
ポテンションメータ(可変抵抗器)からアナログ値を取得し、シリアルモニタに出すだけです。
前回の傾きより、よほど楽ですね。
int potpin = 0 ;
int val = 0 ;
void setup()
{
Serial.begin(9600);
}
void loop()
{
delay(50);
val = analogRead(potpin);
Serial.println(val) ;
}
つまみを動かすと、0~1023までの値がシリアルモニタに出ました。
応用してみる
前回のティルトスイッチのプログラムを応用して、512以上になったらLEDを光らせてみました。
int apin = 0; //アナログpin5を利用
int ledpin = 13; //LED pin
int threshold = 512; //閾値
void setup()
{
pinMode(ledpin,OUTPUT); //デジタル pin13を出力設定
Serial.begin(9600); // シリアル通信設定
}
void loop()
{
int pot_read; //変数pot_readを定義
while(1)
{
pot_read = analogRead(apin); //アナログpin0から電圧を読み取って変数に格納
Serial.println(pot_read);
if(pot_read > threshold)
{
digitalWrite(ledpin,HIGH);//led点灯
}
else //それ以外の場合
{
digitalWrite(ledpin,LOW);//led消灯
}
delay(60);
}
}
先ほどの回路にpin13と隣のGNDに跨ってLEDを刺しとけばOKです。
なお、ポテンションメーター用のGNDは別のところに移動させます。

こっちの方が、楽しいですね。
LEDをデジタル出力ではなく、アナログ出力を使えばLEDの明るさを変えたりもできそうですね。
今回はこれでお終いです。
次回は、Photoresistor(明るさ)センサーを使います。
