2015年04月05日

番外編 -電力

タイマー第8回でトランジスタについて説明を行いました。次はトランジスタを使って7セグメントLEDの回路を改良する予定でしたが、その前に電力について説明します。
なぜ先に電力について説明したかというと、これを考えずに回路を作るとLEDやトランジスタなどの部品を壊す可能性があるからです。

1. 電力とは

電力とは電気エネルギーの大きさです。電力が大きいほどたくさん電気を扱っていることになります。
電力は次の式で求められます。単位は[W](ワット)です。
 電力[W]=電圧[V]×電流[A]

電力は電圧と電流のかけ算です。ですので、電圧が高かったり電流が多かったりすると、電力も増えます。

部品に電気を流すと電力を消費します。部品が消費する電力のことを消費電力といいます。
例えばArduinoの場合は電圧が5[V]、最大電流が500[mA]=0.5[A]なので最大消費電力は2.5[W]です。
 5×0.5=2.5[W]

一番最初に少し説明しましたが部品ごとに最大消費電力の限界が決まっています。回路を設計する際には消費電力が最大消費電力より小さくなるようにしないといけません。
もし、最大消費電力を超えてしまうと部品が動かない、壊れる、燃えるなど悪いことしか起きません。ですので、絶対に消費電力と最大消費電力の確認は必要です。

2. 電力の計算

では、電力の計算をしてみます。
例としする回路は、5.0[V]の電源、順方向電圧が2.0[V]のLED、順方向電流が10[mA]=0.01[A]となる回路です。
05_消費電力_1.jpg

電力を求めるには電圧と電流の2つが分かれば良いです。例ではすでに電流が0.01[A]と分かっているので、電圧を求めます。
LEDにかかる電圧は順方向電圧と同じですので、2.0[V]です。
抵抗にかかる電圧は電源の電圧(5.0[V])からLEDにかかる電圧(2.0[V])を引いた値ですので、3.0[V]です。
05_消費電力_2.jpg

 5.0-2.0=3.0[V]

それぞれの部品の電圧と電流が分かったので、これを掛け合わせるとLEDと抵抗の消費電力が分かります。
05_消費電力_3.jpg

 LED:2.0[V]×0.01[A]=0.02[W]
 抵抗:3.0[V]×0.01[A]=0.03[W]

最後に計算した消費電力が部品の最大消費電力に収まっているかどうかを確認します。
一般的な値ですと、LEDの最大消費電力は0.07[W]程度です。今回の回路は0.02[W]なので問題ありません。
抵抗の一般的な最大消費電力は0.25[W]です。今回の回路は0.03[W]なのでこれも問題ありません。
(今回は電力の計算ということでLEDの消費電力を計算しました。普通は順方向電流がLEDの最大順方向電流に収まっているかを考えて設計します。)

このように、回路を設計する際には部品の消費電力が最大消費電力に収まっているかどうか、確認することが必要です。




posted by ました at 16:04| Comment(0) | TrackBack(0) | 電子工作の知識 | このブログの読者になる | 更新情報をチェックする

2015年03月28日

タイマー -第8回:ダイナミック点灯の改良1(トランジスタ)

タイマー -第4回では7セグメントLEDのダイナミック点灯を行いました。このときは共通アノードを直接Arduinoに制御していました。
ただし、この方法には2つ欠点があります。
  1. Arduinoに流せる電流は少ないため、LEDを明るくできない
  2. LEDに5[V]の逆電圧が加わるため、壊れる可能性がある

この問題は、共通アノードをトランジスタという部品で制御すれば解決できます。
今回はトランジスタがどういうものかということを説明し、次回以降にトランジスタを使った回路について説明します。


1. 概要

トランジスタについて説明を行いますが、今回はトランジスタの中でもNPN型バイポーラトランジスタについて説明します。トランジスタは他にも種類がありますが、簡単な電子工作ではNPN型バイポーラトランジスタを使うことが多いです。

これがトランジスタの写真です。トランジスタは図のように3つの端子(=足)からできています。
IMG_8285.jpg

トランジスタは電流を調整するための部品です。トランジスタの動作を水で説明します。
まず、上流から下流に向かって太い水道があり、ここを水が流れていきます。上流と下流の間には門があり、門の開く度合いによって上流から下流に流れる水量を調整できます。
次に太い水道とは別に細い調整用の水道があります。門の開き度合いはこの調整用水道に流れる水量によって決まります。
28_トランジスタ水道1.jpg

先ほどの水量の調整をトランジスタに当てはめます。これがトランジスタの回路図です。
上流はコレクタ、下流はエミッタ、調整用水道はベース、門はコレクタ-エミッタ間電圧です。
28_トランジスタ1.jpg

水道とトランジスタで、水が流れるときなどの3パターンを説明します。


2. 電気を流さない場合の動き

上流と下流の門は調整用水道の水量によって決まります。調整用水道に水を流さなければ、門は閉じているため、上流から下流に水は流れません
28_トランジスタ水道2.jpg

トランジスタも同じような動きをします。
ベースに電流が流れていないならば、コレクタに電流を流すまいと、コレクタ-エミッタ間電圧が高くなります。
28_トランジスタ2.jpg



3. 電気を流す場合の動き

調整用水道に水を流すと、門が開き、上流から下流に水が流れます
28_トランジスタ水道3.jpg

トランジスタも同様です。
ベースに電流を流すと、トランジスタはコレクタに電流を流そうと、コレクタ-エミッタ間電圧を低くします。
コレクタに流れる電流の大きさはだいたい数十倍ですが、トランジスタの型番や回路によって変わります。
28_トランジスタ3.jpg


4. 電気を流したいが電源が不足している場合の動き

先ほどは水を流すために門を開くと、門を開いた分と同じ量の水量が下流へ流れていきました。このようになるのは上流の水が豊富ある場合です。
上流にある水源が水不足であればいくら門を開いても、水源以上の水を流すことはできません
28_トランジスタ水道4.jpg

トランジスタでも似たようなことが発生します。電気を流す電源の性能やコレクタに繋がっている回路によって、トランジスタのコレクタへ流せる電流が決まります。
電流を少ししか流せない電源や回路を使うと、いくらベース電流を流しコレクタ-エミッタ間電圧を低くしても、コレクタやエミッタには少ししか電流が流れません。
28_トランジスタ4.jpg


5. まとめ

以上のように、トランジスタはベース電流によってコレクタとエミッタに流れる電流を制御する部品です。
ただし、電流は無限に流せるのではなく、コレクタに繋がっている電源や回路によって決まります。

次回はトランジスタを使った7セグメントLEDのダイナミック点灯を行います。


定本トランジスタ回路の設計 増幅回路技術を実験を通してやさしく解析

価格:2,307円
(2015/6/17 10:29時点)

posted by ました at 17:03| Comment(0) | TrackBack(0) | 電子工作の知識 | このブログの読者になる | 更新情報をチェックする

2015年03月01日

タイマー -第4回:ダイナミック点灯

前回は7セグメントLEDの1桁を使って、スイッチを押す度にカウントアップを行いました。
今回は7セグメントLEDの2桁を使い、時間でカウントアップさせます。

1. 2桁の制御(ダイナミック点灯)

7セグメントLEDを2桁以上制御するにはダイナミック点灯という方法を使います。この方法は7セグメントLEDを1桁ずつ数[ms]ごとに消灯と点灯を繰り返し、残像を使って全ての桁が点灯しているように見せる方法です。
このダイナミック点灯について説明していきます。

7セグメントLEDの各桁は7つのLEDが組み合わさってできています。ですので制御する線も7本必要です。
01_7seg桁比較_1..jpg

なら2桁の場合はどうなるかといいますと、単純に考えれば倍の14本の制御線が必要です。この方法だと1桁追加する度に制御線が7本増えるので大変です。
01_7seg桁比較_2.jpg

制御線の本数を減らすための方法がダイナミック点灯です。
使用している7セグメントLEDの回路図を見ると、各桁のLEDはアノード側が繋がっており、カソード側は各桁ごとに分かれています。
19_回路図.png
引用元:秋月電子通商通販コードI-03673 データシートより


このような回路にしていると、各桁ごとに点灯と消灯を制御することができるようになります。
LEDは電流が流れると点灯します。電流は電圧が高いところから低いところへ流れます。
ですので、カソード側をLowにすれば電流が流れてLEDが点灯し、カソード側をHighにすれば電流が流れずLEDは消灯します。
このように各桁ごとにアノード側が分かれていればカソード側が繋がっていても、各桁をそれぞれ点灯と消灯を制御することができます。

01_7segダイナミック点灯_1.jpg
※注意
今回はわかりやすくするためにカソード側をHighにしています。この方法ですとLEDに逆電圧がかかってしまいます。
きちんとするのであれば、トランジスタを使ってスイッチング回路を作ってください。
  
各桁の点灯と消灯を数[ms]でごとに切り替えると、人間の目には残像によってずっと点灯しているように見えます。
これがダイナミック点灯です。
01_7segダイナミック点灯_2.jpg

2. 時間によるカウントアップ

前回はスイッチの立ち上がりエッジ検出を使ってカウントアップしていました。今回は時間でカウントアップさせます。

Arduinoのは起動してからの時間を数えるMillis()関数があります。
この関数を使って開始時刻と現在時刻を取得し、その差を秒単位で7セグメントLEDに表示させます。カウントが99になったら0に戻ります。

カウントアップ機能に加えて、カウントのリセット機能も付け加えます。
立ち上がりエッジ検出を使い、スイッチが押されたら現在時刻を開始時刻にリセットします。そうするとスイッチを押したらカウントが0から始まります。

3. 作成

Arduinoの各ピンは以下の表の通りに接続しました。

      
 Arduinoピン接続先備考 
 1D2プルダウンスイッチ回路プルダウン抵抗4.7[kΩ] 
 2D37セグメントLED Dig3  
 3D57セグメントLED Dig4  
 4D67セグメントLED A抵抗値1[kΩ]
順方向電流3.2[mA]
 
 5D77セグメントLED B 
 6D87セグメントLED C 
 7D97セグメントLED D 
 8D107セグメントLED E 
 9D127セグメントLED F 
 10D137セグメントLED G 
      


この通りに接続し、このスケッチをArduinoに書き込んだ実物がこの写真です。
IMG_8254.jpg

LEDの各桁は5[ms]ごとに切り替えていますが、常時点灯しているように見えます。
IMG_8258.jpg

これで2桁のタイマーができました。次回は4桁のタイマーを作ります。

スケッチ

作成したスケッチを以下にアップロードしています。
本当は拡張子が「.ino」ですが、「.txt」に書き換えています。


スイッチサイエンス Arduinoをはじめようキット



posted by ました at 16:22| Comment(0) | TrackBack(0) | 電子工作の知識 | このブログの読者になる | 更新情報をチェックする

2015年02月15日

タイマー -エッジ検出・チャタリング

今回から、スイッチで7セグメントLEDを動かします。

7セグメントLEDをスイッチで動かすというのを詳しく説明すると、

「スイッチを押した瞬間に7セグメントLEDに表示している数字が1上がる(9の次は0になる)」

という動作です。そのため、Arduinoにスイッチが押されたときを1回と数えさせる必要があります。


下の図はスイッチの回路と押したり離したりしたときの状態です。電圧が低いときがLow、高いときがHighです。

15_スイッチ回路.jpg


15_エッジ検出1.jpg


上の図の「スイッチを押したとき」や「スイッチを離したとき」のように状態の変わり目をエッジといいます。LowからHighが立ち上がりエッジ、HighからLowが立ち下がりエッジです。スイッチで7セグメントLEDを動かすには、立ち上がりエッジを検出する機能がArduinoに必要です。


エッジを検出させる方法として、「スイッチの状態を一定時間ごとに監視して状態が変化する箇所を見つける」方法があります。

下の図のようにスイッチの状態を一定時間ごとに監視して、今の状態と一つ前の状態の2つを比べます。比べて状態が変わっているのならばそこがエッジです。そして今の状態がHighならば立ち上がりエッジ、Lowならば立ち下がりエッジです。

Aの箇所は一つ前の状態がLow、今の状態がHighです。2つの状態が異なっていて今の状態がHighですので、Aの箇所が立ち上がりエッジだと分かります。反対にBの箇所は立ち下がりエッジです。

15_エッジ検出2-3.jpg


このようにスイッチの時間を一定時間ごとに監視して、一つ前と今の状態を比べればエッジを検出することができます。


区切る時間ですが、気を付けないといけないのがチャタリングの時間です。チャタリングというのはスイッチが変化した瞬間にHighとLowが高速で変化し続けることです。

下の図はスイッチが変化した瞬間にチャタリングが発生したイメージです。

15_チャタリング除去1-2.jpg


チャタリングが発生する時間は一瞬ですので人間には分かりません。ですがArduinoのエッジ検出を高速で行っていると、スイッチを1回しか押していないのにArduinoはたくさんのエッジを検出してしまいます。


これを防止するためにはエッジ検出のための時間をチャタリングより長い時間にすればいいです。

チャタリングの時間は数[ms]くらいのときが多いですので、エッジ検出のために区切る時間を数十[ms]にします。そうすれば一つ前か今の状態のどちらかはチャタリングが収まっていますので、エッジをたくさん検出してしまうようなことはありません。


今回は使いませんが、エッジ検出とは反対にスイッチが安定したかどうかを調べたいときは、スイッチの状態が一つ前と今で同じになっている箇所を探せばいいです。

下の図のようにチャタリング時間より長い時間ずつに区切ります。

15_チャタリング除去2-2.jpg


上の図のAは一つ前も今もLowなのでLowに安定、Dは一つ前も今もHighなのでHighに安定していることがわかります。

BとCは状態が変化していたり不安定になったりしている箇所です。スイッチの状態が不安定な場合はその前に安定していた状態を採用したり、HighかLowでおかしい動作にならない側の値を採用したりします。


これでスイッチのエッジを検出する方法とチャタリングについて説明を行いました。

次回は7セグメントLEDの説明をします。



Arduinoをはじめよう第2版 [ マッシモ・バンジ ]


posted by ました at 17:23| Comment(0) | TrackBack(0) | 電子工作の知識 | このブログの読者になる | 更新情報をチェックする

2015年01月31日

スイッチでLED制御 -作って動かす

前回までプルアップ回路かプルダウン回路を使えば、スイッチを使ってHighレベルとLowレベルを切り替えられることを説明しました。
スイッチの回路とLEDの回路を組み合わせれば、スイッチでLEDを点けたり消したりすることができます。
30_スイッチLEDブロック図.jpg

さて、回路を決めるには、プルダウン回路かプルアップ回路にするのか、デジタルピンの入出力は何番ピンを使うのか、を決めないといけません。これらのことはスケッチにどういう動作を書くのかで決まります。
今回もすでに用意してあるスケッチを使います。LEDをスイッチで消点灯させるスケッチは、「スケッチの例」「02.Digital」「Button」です。
 30_Arduino-Button.jpg

このスケッチの動作は、「2番デジタルピンがHighレベル(=5[V])入力ならば13番デジタルピンにHighレベルを出力し、2番デジタルピンがLowレベル(=0[V])ならば13番デジタルピンにLowレベルを出力する。」です。
ですので、2番デジタルピンにプルダウン回路を接続し、13番デジタルピンにLEDを接続すれば、スイッチでLEDを消点灯させることができます。


スケッチの動作を元に作った回路はこのようになります。プルダウン回路の抵抗値は47[kΩ]にしました。
30_スイッチLED制御回路図.jpg

上の回路図をブレッドボード上に作りました。スイッチを押すとLEDが点灯し、離すと消灯します。
30_スイッチLED制御-消灯.jpg

30_スイッチLED制御-点灯.jpg

スイッチを使ってLEDを消点灯させることができました。
作る際にはLEDやスイッチの向きなどに気をつけてください。
スイッチは秋月電子の「タクトスイッチ(白色)」を使いました。商品情報のページにスイッチの資料がありますので、スイッチの回路はそこで確認をしてください。


この「Arduinoの入力をHighレベルとLowレベルで変化させる」というのは色々と応用できます。
次回からはLEDを使ってタイマーを作ろうと思います。


たのしくできるArduino電子工作

価格:2,160円
(2015/6/17 10:39時点)

posted by ました at 11:10| Comment(0) | TrackBack(0) | 電子工作の知識 | このブログの読者になる | 更新情報をチェックする
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。