7segduino
7segduino
7セグメントLEDをユニットとして組み込んで利用できるように、専用基板を設計しました。Arduino互換にしてArduinoの開発環境をそのまま使えるようにしたので、「7segduino」と呼ぶことにしました。プロトタイプが完成しましたので紹介します。
1. 回路図
最低限のArduinoの構成としています。特徴的な部分だけを説明します。
【LEDドライバ】
外部にLED用のドライバを置かず、直接AVRからドライブする方式を採用し、部品数を削減しました。マトリックスになっているLEDへのピンの割り当ては、基板に配置した時に物理的に近くなるようにしています。
【クロック回路】
AVR内部のRC発振器を使いうことを推奨します。回路図の水晶発振子と負荷抵抗(22P)は実装は不要です。アプリケーションによって正確な周波数が必要な場合にだけ取り付けます。水晶発振器を利用する場合には、互換性の観点から16MHzが良いと思います。標準的なArduinoと互換になります。
なお、発振器と動作周波数によって、ブートローダとAVRのヒューズビットの設定が異なりますので、注意が必要です。
【プログラムに必要な環境】
AVRチップの設定やプログラミング作業には以下の機材が必要になります。
・AVRライタ
ブートローダの書き込みに利用します。初回組み立て時のみ必要になります。
・USB-シリアルブリッジ( FTDIアダプタなど)
7segduinoが完成したあとのプログラム書き込みに利用します。
2. パーツ
・7セグメント4桁LEDマトリックス(アノードコモン)
・AVRチップ Mega328P、28PINソケット(省略可)
・チップ抵抗( 100オーム×8、10Kオーム、サイズは1608)
※利用する電圧とLEDの種類によって調整
・チップコンデンサ( 0.1uF ×3)
・ピンヘッダ(6P一列×2、3P一列×1)
・専用基板
3. 組み立て方
(1)基板の裏にチップ部品を全部付けます。 シルク印刷の無いパット(8カ所)が電流制限抵抗(100オーム)です。LEDのはんだづけを行うと、この面は修正が出来なくなるので、この時点でテスターで接続の確認をしておきます。
裏にSMD部品を取り付ける。
(2)基板の表面に28PINソケットとピンヘッダを取り付けます。
表にソケットとピンヘッダを取り付ける
(3)この時点で別環境でブートローダ書き込みます。その後、ブートローダ書き込み済みのMega328Pを7segduinoに取り付けて、USB-シリアル経由でArduino IDEから書き込みできることを確認します。
ブートローダ書き込み後、7segduinoへ移植
(4)裏面のリード線を切り揃えてLEDと干渉しないようにします。ピンヘッダも裏側に飛び出した部分を1.0mm以下に切ります。その後、LEDを基板の裏側に取り付けます。取り付け方向注意!LEDを正面から見て右側にFTDIコネクタが来るようにします。
リード線を切ってLEDとの干渉をさける
(5)Arduino IDEからプロムラムを書き込んで動作の確認を行います。動作検証には、Hello_7seg.pdeがお勧めです。
完成!
4. 使い方
専用のライブラリを用意しています。
Arduino IDEからSSegライブラリを使ってアプリケーションを記述して下さい。
Exampleにいくつか例を載せていますので参考になると思います。
/*** Count 7seg
SEG-A(11) PD4 4
SEG-B(7) PB0 8
SEG-C(4) PB3 11
SEG-D (2) PB5 13
SEG-E(1) PC0 14
SEG-F(10) PD5 5
SEG-G(5) PB2 10
SEG-DP(3) PB4 12
DIG-1(12) PD3 3
DIG-2 (9) PD6 6
DIG-3 (8) PD7 7
DIG-4 (6) PB1 9
*/
#include <Sseg.h>
Sseg mySseg = Sseg(4, 8, 11, 13, 14, 5, 10, 12, 3, 6, 7, 9);
int i = 0;
void setup()
{
mySseg.begin();
}
void loop()
{
if ((++i) > 10000)
i=0;
mySseg.writeNum(i);
mySseg.updateWithDelay(3);
}
MacOSX版の場合、ライブラリは、書類 -> Arduino -> Librariesにコピーの上で利用下さい。
(Ssegライブラリは、8桁、2桁のLEDや異なるピン配置の設定をサポートしています。ライブラリの使い方の解説を追加する予定です。)
5. ダウンロード
回路図:7segduino.png
ライブラリ:SSeg-20110604.zip
ボードレィアウト:7sedguino-brd.png
6. 応用例
応用のページを作成しました。
・7segduino Application (2) 作成予定。。。
7. 参考
Spark Funにも似たモジュールがあるとtwitterで教えて頂きました。
7-Segment Serial Display - Red
http://www.sparkfun.com/products/9766
本来はシリアルまたはSPIからコマンドを受けて表示を制御するデバイスの様ですが、本機と同様にMega328PとLEDの組み合わせなので、Arduinoのブートローダを書き込めば同様のことが出来ると思います。未確認ですが、機会があれば試したいと思います。