ゼロから入門!マイコン開発!~回路を作ってみよう~

こんにちは。エンジニアの新谷です。

前回はArduinoの紹介とArduino基板上に備え付けのLEDを光らせて、ちゃんと動作しているかを確認しました。
今回の目的は「かんたんな回路を作ってLEDを光らせよう」です。
スターターキットに含まれる部品を使って簡単な回路を作成し、実際に動かしてみましょう。

今回目的としているような単純な回路では回路図を作成する必要があるのかはわかりませんが、入門編ということでまずは回路図を作成してみます。

回路図を書いてみよう

回路図って何?

そもそも回路図とはどういった物なのでしょうか。

回路図(かいろず)とは電子回路、空気圧機器、油圧機器などの回路を記述するために用いられる図のことである。実体配線図と異なり、回路図での位置と実際に配置する場所は無関係であり、一種のグラフである。

回路を作るための”設計図のようなもの”というイメージでしょうか。
実際の配置とは無関係ということなので、あくまでどういう組み合わせで作るかが書いてある物のようです。

回路図のルール

次は基本となる回路図を作成するためのルールです。

・回路図は左から右へ、上から下へと電気信号が流れるように書くのが原則。
・必ず直線で角は直角に書く。

厳密なルールはもっとあると思いますが、ひとまずはこの2点を抑えておけば良いようです。
とはいえ、今まで書いたことがないものを知識ゼロで書くのは非常にハードルが高いです。

そこで回路図の作成を手助けしてくれるツール「fritzing」の紹介です。

fritzingとは

fritzingはPC上で回路図を作成できるオープンソースの回路図作成用ソフトです。
私のようにいままで回路図と書いたことが全くない者にとっては、とてもありがたいツールとなっています。
今回はこちらのツールを使って回路図を作成していきたいと思います。

fritzingのインストール

以下のURLよりツールのダウンロードを行います。
http://fritzing.org/home/
公式サイト上部のDownloadからダウンロードページへ移動し、ダウンロードを行います。



ダウンロード後、Zipファイルを展開するだけで使用が可能です。(インストールの必要はありません)

fritzingの使い方

Fritzing.exeをダブルクリックしてソフトを起動します。

回路図タブをクリックして、回路図用の画面に切り替えます。

中央の方眼部分に右側に表示されているパーツからアイテムをドラッグ&ドロップします。
ここには基本的な回路記号だけではなく、Arduinoのようなプラットフォームのアイテムも登録されています。

必要なアイテムを設置したら、配線設定を行います。
各アイテムに端子が設定されていて、端子から端子へドラッグすることで、アイテムを接続できます。

この状態では回路図を作成する際のルールにある”必ず直線で角は直角に書く“を守れていないので修正します。
先ほど引いた回路上にマウスを持っていき、ドラッグすることでコーナー位置を調節できます。

これで今回作成する回路図を作成できました。
fritzing上ではアイテムに設定されているパラメータを個別に変更できたりもします。

ちなみにfritzingではブレッドボード図という物も書くことができます。
ブレッドボード図とはブレッドボード上で回路を作成する際に作成するイメージ図です。
配線図を記事にしたり、記録として残しておきたい場合には使えるのはないかと思います。
上記で作成した回路図をブレッドボード図で書くと、以下のようになります。

回路を作ってみよう

回路図、ブレッドボード図が書けたところで、実際に配線を行ってみましょう。

今回の回路で使用する部品は以下です。
・オス-オスのジャンパワイヤ(2本/赤黒)
・固いジャンパワイヤx2本
・LED(赤)x1個
・抵抗器x1個

まずは今回使用する各部品についてみていきましょう。

ジャンパワイヤ(又はジャンパピン)
ジャンパワイヤは回路上に電路のショートカットを作ることができる部品です。
電気の通り道を作りたいときに使用します。

LED(発光ダイオード)
決まった方向(順方向)に電圧を加えることで発光させることができます。
近年では自宅の電球などにも使われているのですごく身近なものになっていますね。
LEDを使用する場合の注意点は、電圧を加える方向が決まっているという点です。
LEDには2本の足がついていてそれぞれの長さが異なります。
長いほうをアノード、短いほうをカソードといいます。
流れてきた電流はアノードから入り、カソードから出ていきます。(これを順方向とします。)
順方向に電圧を加えた場合のみ発光するので、必ずアノード側から電圧を加える必要があります。
(逆にすると電流は流れませんが、流れない電圧方向(逆電圧)での絶対最大定格値が低い場合には、LEDが壊れてしまう場合があります)

抵抗器
https://ja.wikipedia.org/wiki/%E6%8A%B5%E6%8A%97%E5%99%A8
電流の流れを阻害して抑える役割を持った部品で、回路を作っていくうえで必ず必要になってきます。
抵抗器には色の線(カラーコード)が入っていて、それによって抵抗の大きさを示してあります。
https://ja.wikipedia.org/wiki/%E6%8A%B5%E6%8A%97%E5%99%A8#.E8.A1.A8.E7.A4.BA
慣れるまでは都度対応表と見比べて判断したほうがよさそうですね。

今回はLEDに10mAの電流を流して発光させることを目的とします。LEDにかかる電圧は約2Vととします。
上記のような電流や電圧定義を行なう場合には、各部品のデータシートを参照してそれぞれの部品に対する仕様を確認する必要があります。

※Arduinoのスターターキットに入っている部品は品番が不明なものがあるため、類似品などのデータシートを参考にしています。(LEDに関しては基本的にはどの部品もほぼ同じような仕様のようです。)

データシート内には絶対最大定格(Absolute Maximum Rating)という項目があり、ここに記載された数値を超えた電流を流すなどした場合には、部品が壊れてしまうので注意が必要です。

Arduinoからの電源が5VでLEDにかける電圧が2Vですので、抵抗器に対してかかる電圧は3Vとなります。
この場合に必要な抵抗の値(Ω)を計算するのがオームの法則(公式)です。(昔習ったのを思い出しました)
まさかオームの法則を今になって使うことになるとは思いませんでしたが、以下のような公式になります。
E(V) = R(Ω) × I(A)
公式に値を当てはめると
3(V) = R(Ω) × 10(mA) となり
R(Ω) = 3(V) / 0.01(A) = 300 で必要な抵抗値は300Ωとなります。
スターターキットに含まれている抵抗器で最も近いサイズの抵抗は220Ωでしたので、そちらを使ってみます。
(赤色LEDでは5Vまでは使用可能なものが多いようで、抵抗がなくても壊れることはないようです。)

テスターがあればどれくらいの電圧が掛かっているかなどを確認できるようなのですが、私は今持っていないので次までには準備しておきたいと思います。

電源をつなげた結果がこちらです。


ちゃんと光りました。

試しに抵抗を1000Ωにしてみた場合は・・・


220Ωに比べて光が弱くなっていることがわかります。

センサーを用いた回路の作り方

され、ここまで回路を作ってきましたが、Arduino成分が全くないものになってしまったので、光センサーを付けてLEDの光を操作してみたいと思います。

暗くなるとLEDが光りだすような回路を作成してみます。
Arduinoスターターキットには以下の光センサーが同梱されていますので、そちらを使用します。
光センサーの品番:VT90N2 LDR
http://uk.farnell.com/excelitas-tech/vt90n2/ldr-0-5mohm-80mw-series-vt900/dp/1652637

ブレッドボード図は以下のようになります。

センサーからの値を取得する

Arduino IDE上でセンサーからの入力値を取得するプログラムを作成します。

int inputValue = 0;
void setup() {
  Serial.begin(9600); //モニターに出力するための設定
  // Arduino IDEの"ツール"からシリアルモニタを選択することで出力を確認できます
  // Serial.begin() について
  // https://www.arduino.cc/en/Serial/Begin
}
void loop() {
  inputValue = analogRead(0); // ANALOG INの0番ピン(A0)からデータを受け付ける
  Serial.println(inputValue); // 入力された値をモニターに出力
  analogWrite(3,inputValue/4); // 入力された値÷4の値をアナログ出力する
  // アナロ入力のレンジは0〜1023ですが、出力レンジは0~255となっています。
  // その為、入力値を1/4にして出力します。
  delay(100); // 0.1秒毎に処理を判定しています。
}


赤色なので少しわかりにくいかもしれませんが、暗くなるにしたがってLEDの明るさが上がっていきます。
逆に、明るくなるにつれてLEDが暗くなっていきます。

光センサー以外にも使ってみたいセンサーが多数ありますので、次回以降取り入れていきたいともいます。


次週はtoshiのCIを活用したAndroidアプリの開発をお届けします。

引用元・出典
https://ja.wikipedia.org/wiki/%E5%9B%9E%E8%B7%AF%E5%9B%B3

【オガティ外伝】オフショア開発の巻 in ベトナム(オフショアの課題編)

今回が本当に最後になります。ベトナムオフショア開発の最後のお話です。
はりきっていきましょう!
永遠の輝き、リモートワーカーのコウダインテだよ!シンチャオ!

12月ですね。諸説ありますが、師走というのは「師匠が走り回るくらい忙しい時期」と言われています。
あなたは師匠といい関係を築いていますか?
余計なお世話ですね。
では、クリスマスのご予定は?
余計なお世話ですね。

そんなことは置いといて、前後編に分けて「オフショア開発をするにあたって」「ベトナムでの生活」など、開発とプライベートについて記事にしてきましたが、2回に分けても書ききれなかった「オフショア開発の効果」について紹介します。
あまり芳しい結果を得られなかった今回のオフショア開発でしたが、その原因とそもそもの「オフショア開発」についてスポットを当てて紹介するナムよ。


<続きを読む>