Arduinoのデジタル入出力とアナログ入出力(PWM出力)

みなさん、こんにちは。

何を血迷ったのか電子回路を作っている初心者ロードレーサーです。


Arduinoには様々な種類があるが、今回の購入したArduino UNOにもデジタル入出力とアナログ入出力が用意されている。



まずデジタル側は14本のデジタル入出力が利用可能。うち、6本(波ダッシュがついている3番、5番、6番、9番、10番、11番)はPMW出力を使って擬似的なアナログ出力※ができる(※実際には5Vか0Vの矩形波パルス幅のデューティー比を変調させている)。



このうち自分の目当てはアナログ入力。アナログ入力は6本あり、デジタル入出力ピンとしても利用可能。「利用可能」というのはArduino側のプログラム命令で区別でき、例えば上記のPWM出力であればanalogWriteのメソッドを使うことでPWM出力ができる。




たとえば前回ご紹介したこちらのポテンショメータとLEDの電子回路では、アナログ入力でポテンショメータを読み込み、その値をマッピングして※PWM出力に出すことでLEDの光量を調整している。(※アナログ入力は10bitだが、PWM出力は8bit(0で0V出力、255で5V出力)のため0~1023の入力範囲を0~255の出力範囲に変換する必要がある)




ちなみにArduinoのプログラミングはたったこれだけ。シリアル通信は動作には不要なので実質変数宣言と2,3行で完結できる。(上記の説明でいえば、map関数で10bitの範囲を8bitに変換している)

const int analogPin = A0;
const int ledPin = 9;

int inputValue = 0;
int outputValue = 0;

void setup()
{
  Serial.begin(9600);
}

void loop()
{
  inputValue = analogRead(analogPin);
  outputValue = map(inputValue,0,1023,0,255);

  analogWrite(ledPin,outputValue);
  Serial.println(analogRead(inputValue));
}


自転車の話はいったいどこへいったのか・・・

自転車目当ての方も、電子回路属性がない方も、もう少しお付き合いいただきたい・・・


4 件のコメント :

  1. 偶然ですが、私も最近電子工作を再開しました。安定化電源も買っちゃいました。ついでに工具も。
    ところで、最近シクロクロスに興味があります。アメリカでは冬場はシクロクロスはやらないのでしょうか?
    いくらでも走るところがありそうですが。

    返信削除
    返信
    1. おおお!それは奇遇ですね。これは電子工作のエントリにも気合いが入ります。
      こちらではシクロクロスも盛んです。チームメイトでもレースに出てる人がいますがレース会場は(ロードレースと違って)マンハッタンから離れた場所が多いです。泥だらけになった自転車を洗う庭とともに車持ち、家持ちじゃないと厳しい感じですかね。

      削除
    2. アメリカの電子工作事情も興味があります。部品とかは全部通販ですか?秋葉原がないのに、アマチュア無線家はどうやっているんだろうと思ったことがあります。
      シクロクロスは日本でも事情は変わりませんね。輪行で行ったら帰ってこられませんw
      自転車ごと入れるお風呂があるといいのに。

      削除
    3. こちらではMake:という雑誌が電子工作系で有名です。
      http://makezine.com/
      部品は基本的に通販ですね。マンハッタンでも専門店は(調べればあるんでしょうが)あまりみかけません。電子工作専門オンラインショップもありますし、Amazon.comでもいろいろと扱っているので通販は困ることはないですね。

      洗車はシクロクロスに限らずロードでもプロのメカニックが水をぶっかけて洗ってるのを見ると自分もそうしたいなぁーと思うんですがそんなスペースもなく・・・。

      削除