注意:すべてのOSOYOO ARDUINO用製品はサードパーティー製品であり、ARDUINOと完全に互換性があります。

認可されたオンライン小売業者:

AMAZON
amzuk

内容

  1. 紹介
  2. 準備
  3. ポテンショメータについて
  4. 接続
  5. スケッチのアップロード
  6. プログラムの実行結果
  7. 拡張実験

紹介

このレッスンでは、アナログピンA0に接続されたポテンショメータと、デジタルピン9に接続されたLEDを使用します。アナログピンからの入力を使用して、点滅するLEDのタイミング遅延を調整します。

準備

ハードウェア

ソフトウェア

Arduino IDE (version 1.6.4+)

ポテンショメータについて

ポテンショメータは、可変抵抗を提供する簡単なつまみで、OSOYOOベーシックボードにアナログ値として読み取ることができます。この例では、その値がLEDの点滅速度を制御します。

では、アナログ値とデジタル値の違いは何でしょうか?簡単に言えば、デジタルはオン/オフ、高/低の2つの状態、つまり0または1の値しか持ちません。しかし、アナログ信号のデータ状態は線形であり、例えば1から1000までの値が時間の経過に伴って変化するため、正確な数値を示すのではなく、信号値が変化します。光の強度、湿度、温度など、アナログ信号にはさまざまなものが含まれます。

このレッスンでは、ポテンショメータ(ポット)を使用して回路内の電流を変化させ、それに応じてLEDの点滅速度を変更します。そして、ポットはアナログデバイスであるため、電流の変化はスムーズであり、点滅速度は明らかな段階的なプロセスを経ずに徐々に速くなったり遅くなったりします。

ここで言うPWMとは、アナログ信号のデジタル化であり、アナログ信号に近づくプロセスです。ポテンショメータがアナログ信号を入力するため、デジタルポートではなく、A0-A5のアナログポートに接続する必要があります。

電子シンボル
Potentiometer symbol Europe.svg (International)
Potentiometer symbol.svg (US/Canada)

回路図

回路を以下のように構築してください。

ボードには3本のワイヤーを接続します。1本目は、ポテンショメータの外側のピンの1つからグラウンドに接続します。2本目は、5ボルトからポテンショメータの他の外側のピンに接続します。3本目は、アナログ入力0からポテンショメータの中央のピンに接続します。

スケッチのアップロード

上記の操作が完了したら、USBケーブルを使用してボードをコンピュータに接続します。緑色の電源LED(PWRとラベルされています)が点灯するはずです。

コードのプログラム

このリンクからスケッチをダウンロードするか、以下のコードをArduino IDEウィンドウにコピーすることができます:

int potPin = A0;    // select the input pin for the potentiometer
int ledPin = 9;   // select the pin for the LED
int val = 0;       // variable to store the value coming from the sensor

void setup() {
  pinMode(ledPin, OUTPUT);  // declare the ledPin as an OUTPUT
}

void loop() {
  val = analogRead(potPin);    // read the value from the sensor
  digitalWrite(ledPin, HIGH);  // turn the ledPin on
  delay(val);                  // stop the program for some time
  digitalWrite(ledPin, LOW);   // turn the ledPin off
  delay(val);                  // stop the program for some time
}

ポテンショメータのシャフトを回転させることで、ポテンショメータの中央のピンに接続されたワイパーの両側の抵抗量を変えます。これにより、そのピンの5ボルトとグラウンドに対する相対的な「近さ」が変化し、異なるアナログ入力が得られます。シャフトが片方に完全に回転されると、ピンには0ボルトが流れ、0が読み取られます。シャフトを完全に反対側に回転させると、ピンには5ボルトが流れ、1023が読み取られます。その間、analogRead()は、ピンに適用される電圧の量に比例した0から1023の数値を返します。

コンパイルとアップロード

Arduino IDEを開き、ボードタイプとポートタイプを選択します。

このスケッチをコンパイルした後、環境内の「アップロード」ボタンをクリックするだけです。数秒待ってください。ボード上のRXとTXのLEDが点滅するはずです。アップロードが成功した場合、ステータスバーに「アップロード完了。」というメッセージが表示されます。

実行結果

アップロードが完了してから数秒後、ポテンショメータのつまみを調整して、LEDの点滅のタイミング遅延を調整します。

拡張実験

前のコースでは、PWMプログラミングによってLEDを制御する方法を学びましたが、それは興味深いものの、やや抽象的な印象を受けます。このパートでは、ポテンショメーターによってLEDの輝度を変更する方法を学びます。

このパートの回路は前と同じです。このリンクからスケッチを取得するか、以下のコードを新しいArduino IDEウィンドウにコピーしてボードにアップロードしてください。プロジェクトに対応するボードとポートを選択することを忘れないでください!

const int analogPin = A0;//the analog input pin attach to
const int ledPin = 9;//the led attach to
int inputValue = 0;//variable to store the value coming from sensor
int outputValue = 0;//variable to store the output value

void setup()
{
}

void loop()
{
inputValue = analogRead(analogPin);//read the value from the sensor
outputValue = map(inputValue,0,1023,0,255);//Convert from 0-1023 proportional to the number of a number of from 0 to 255
analogWrite(ledPin,outputValue);//turn the led on depend on the output value
}

見ての通り、ポテンショメーターはOsoyoo BasicボードのA0ピンに接続されており、0Vから5Vまでの電圧を測定できます。対応する返される値は0から1024までです。電圧変化の測定精度は比較的高いです。

アップロードが完了して数秒後、ポテンショメーターの軸を回転させるとLEDの輝度が変わるのが見えるはずです。