workshop/IntroductionHardwareBy123DCircuit/main

123D CircuitでArduino電子工作入門

このページは123D Circuitアプリケーション動作の為Chromeで閲覧してください.
このワークショップを行うに際してAutodeskアカウントを作成する必要があります.

まずはこの下に表示されるStart Simulationボタンを押してください.するとLED(赤色)が1秒間隔で点滅を繰り返すのが 解るかと思います.これはAutodesk社が提供している123D Circuitと呼ばれるサービスで,ブラウザ上から回路設計を行う だけでなく,Arduinoプログラムも同時に動かすことができます.実際にArduinoを利用して簡単なデジタル回路学習をするには 部品などたくさん揃えないといけないので,これだと便利ですね.

ブレッドボードについて

ブレッドボード(Breadboard)は電子回路のプロトタイピングにおいて頻繁に利用されます. ハンダ付けの必要がなく,部品を接続することができます.ちょっとしたテストをするのにいちいちハンダ付け していたら,時間がかかるどころか,実験の度に部品の数量を減らすことになってしまいます. 比較的小規模で簡単な回路であればブレッドボードでほとんどの試作・実験が可能です. まずはこのブレッドボードがどのようなものなのか理解する必要があります.

ブレッドボードは下の図にあるようなものです.穴が沢山あいており,そこに部品を差し込むことで 固定・通電ができます.具体的には各穴はある規則の元,穴の下で電極が繋がっており,それを利用する ことで電子回路を構成することができます.下図右をみてください.それぞれ電極がつながっている箇所を 赤い線で表示しました.

図1.ブレッドボードの電極

ブレッドボードを理解したところで,LEDを電池で光らせる回路から確認してみましょう.

Lesson 1: オームの法則を計算してLEDを光らせる

電子部品には導体と半導体があります.導体とは銅や鉄と言った具合に電器を流す性質をもつ物質になります.これとは 反対に木やプラスチック等,極めて抵抗の高いものは不導体と呼ばれます.この中間にあたる,ある条件下において 電気を流したり流さなかったりするものを半導体と呼びます.トランジスタのような単純なものからICといったトランジスタ などを複数組み合わせて構成されたものになります.オームの法則は \[ V = R \times I (ただし Vは電圧,Rは抵抗,Iは電流) \] にて表されるシンプルな数式です.抵抗はそのままオームの法則が適用できますが,LED等の半導体は導体ではないため, オームの法則が適用できません.ではどうすればよいか.具体的に抵抗(220Ω),3V電池電源,LEDにて構成される回路で確認してみましょう.

半導体はデータシートで電圧を確認してオームの法則を適用

この部品構成の場合,オームの法則に当てはまらないのは半導体であるLEDになります.そこでLED部分だけはデータシート から,電圧降下値はいくつなのか,どのくらい電流を流せばよいのか,といった情報を確認します.それを行えばあとは オームの法則で計算を行えばよいです.例えばLEDの電圧降下値が1.9Vの場合,次のような回路図となり,抵抗Rの部分に おいて,電圧降下値 $V_R$ は,$ V_R = (1.5)\times 2 - V_f $ として求めることができます.つまりこの回路に 流れる電流(LEDを流れる電流)$I$は,$I = \frac{V_R}{R} = \frac{1.1}{220} = 0.005 = 5[mA] $として計算 ができます.

回路図

下の回路は電池2本でLEDを発光させています.抵抗値は220Ωです.正しく光るかStart Simulationボタンを押して確認 してください.

下の回路は電圧及び,実際にLEDに流れる電流量を計測したものです.この123D CircuitではLEDの電圧降下値が1.91であり, そのため, $I = \frac{3-1.91}{220} = 4.95455[mA] $ となり,ほぼシミュレーション通りの値になっているのが 確認できます.実際には室内環境,実行時の発熱,各抵抗,LEDの特性にばらつきがあるので,正確に計測すると回路実装の 度に微妙に値はことなります.

Lesson 2: Arduinoとブレッドボード

では次にArduinoとブレッドボードを利用して簡単な回路を動かしてみます.まずはこのページの最初に表示していたLEDを チカチカさせる回路を下に用意しました.Code Editorボタンを押すことでArduinoのプログラムを編集できます.これを 利用して下記練習を行います.

  1. https://123d.circuits.io/にAutodeskアカウントでログインし,下記回路を自分で作成してください.
  2. LEDの点灯周期を100msごとに点滅を繰り返すプログラムに変更してください
  3. LEDの点灯周期を変化させ,点滅がわからなくなる周期は何msかを調べてください

ArduinoとセグメントLEDでダイナミック点灯

ではここではLEDと人間の視覚特性を利用した手法である,ダイナミック点灯を確認します.先の練習において,LEDの点滅周期を 高速にすることで,その点滅がわからなくなったと思います.これはシミュレーションですが,実際の回路においても同様です. では,この人間の視覚特性を利用し,複数のLEDを少ないピン本数で制御するダイナミック点灯について学習しましょう.ここでは 新たにセグメントLEDと呼ばれる部品を利用します.セグメントLEDとダイナミック点灯に関する説明として 後閑さんの説明をまずは良く読んで下さい.最後のプログラムはアセンブリで 記述されているので,読み飛ばして構いません.

一般的なセグメントLEDでは数字の表示に7つのLEDを利用します.一方でArduinoのピン本数は設定にもよりますが,高々20本弱 程度のデジタル入出力しかできません.例えば外部ICを利用してこの問題を解決することは可能ですが,ここではダイナミック点灯 によってこの問題を解決してみます.例えば2-14番までのピン12本を利用して,セグメントLEDをコントロールする場合, アノード側(7ch)なので,残りの5chはコモンとして扱えるため,5つのセグメントLEDを同時にコントロールすることができます. 下の回路は2つのセグメントLEDをダイナミック点灯によって制御しているサンプルです.Arduino横につまみがあるので,これを 回すと交互にセグメントLEDの点灯と消灯を行っている様子が観察できます.つまみは可変抵抗です.可変抵抗については 光永先生の説明をよく読んで理解してください.

それでは,上記回路及びプログラムを参考にして次の練習を行いましょう.

  1. 上記と同様の回路を123D Circuit上に自分で作成してください.
  2. セグメントLEDにそれぞれAとBを表示してみてください

Arduinoとサーボモータ

サーボモータをArduinoで動かすにはArduinoから提供されているライブラリを利用するのがもっとも簡単です. まずはRCサーボで遊ぼうのページを 参照して,サーボの動かし方を学んで下さい.ここでの回路を参照して,実際にサーボモータを123D Circuit上でも 動かしてみましょう.可変抵抗を利用して,回した分だけサーボも動かすサンプルを作成してみます.下記回路を参考 にして自分でも作成してみましょう.実際につまみをまわしてサーボを動かすと,9PinのPWM出力のパルス幅が変化する のも解るかと思います.これは,サーボモータの角度制御にはこのようなパルス幅を利用しているということです.


Copyright (c) 2015 Tetsuaki BABA all rights reserved.