おじさんが電子工作やってます


 トップ  プロフィール  電子工作いろいろ  真空管でラジオ・アンプ  リンク集


AVR(Arduino)を使った7セグメントLEDクロック



AVR(Atmega328P)で7セグメントLEDを制御してデジタルクロックを作ってみました。
使用する部品により、アノードコモンタイプ7セグメントLEDでもカソードコモンタイプ7セグメントLEDでも使用できます。
Arduino用のブートローダーを書き込んでおくことで、Arduinoコンパチボードとして IDE から直接スケッチを書き込むことが可能となります。

image-14   image-15
image-17   image-17

◆回路図(アノードコモンタイプの7セグメントLED使用)
kairozu

◆部品表(予算は参考程度)
buhin

◆プリントパターン(トナーパターン)
tunerpattern

◆部品配置
parts-on

◆使用する7セグメントLEDについて(同じピン配置であれば使用可)
    ・型式 : A−801SR 高輝度赤色大型7セグメントLED表示器 1文字アノードコモン
    ・メーカー PARA LIGHT ELECTRONICS CO., LTD.
    ・極性 : アノードコモン・タイプ
    ・文字高さ:20.3mm
    ・外形寸法:19.9(W)x28(H)mm
    ・光度:21mcd
    ・順電圧:1.8V VF=20mA
7segpic
7segspec


◆使用するトランジスタについて
 アノードコモンタイプの7セグメントLEDを使用する場合は、トランジスタは、すべてPNPタイプのものとなります。
 プリントパターンは、3本足の真ん中がB(ベース)となるパターンとなっているので、日本で一般的な 2SA1015 のような E-C-B の配列のものは使いにくい(足を大きく曲げないといけない)ので、真ん中の足が B になっているものを使用します。
 1セグメントあたり、電流が約15mA(=(5V-1.8V) / 220Ω)流れるので、7セグメントすべて点灯すると、100mA以上の電流が流れます。余裕みて200mA以上のものがよいでしょう。
 比較的入手しやすい、BC327,2N3906,S9012,S8550 等が使用できます。

  PNP汎用トランジスタの例
transister


◆使用したスイッチについて
 モード設定、時・分の設定等に3個のスイッチを使用しました。
 ばねで中立に戻るタイプのもので、レバー操作で、ON-OFF-ON となります。
 AVRのアナログ入力で受けることで、Low(0V)-約2.5V-High(5V) の3つの状態を検出します。
 このスイッチは、「オリジナルマインド」様にて通販で買った格安の、神明電機製検出スイッチ SSS-28-4 を一部改造して使用しています。
 プリント基板に合わせて、取り付けに邪魔になる部分を図のように切り取って使用しています。
switch
switchspec


◆プログラムのアップロードについて
 この回路で使用する Atmega328P に、Arduino UNO と同等のブートローダーを書き込んでいれば、基板上のプログラム用の 6pin ヘッダーから、スケッチを書き込むことができます。
 USBシリアル変換ケーブル等の、パソコンとTTLロジックレベルでのシリアル通信(RS232C)ができる装置が必要になります。
 使用する信号は、TXD,RXD,DTR,GND の4本が必要です。CTS の信号は無くて構いません。
 200mA 程度流せる Vcc(5V) が供給できれば、クロック基板側の電源がなくても動作可能です。その場合、後述の「プログラム用ヘッダーの Vcc の接続について」を参考にしてください。
cable


◆プログラム用ヘッダーの Vcc の接続について
 プログラム用の Vcc 端子から、基板に電源を供給することができます。逆流防止のため、整流用ダイオードを取りつけます。電圧降下の少ないショットキーダイオードが良いです。
 この Vcc から電源を供給する場合は、電源ヘッダーの電源は接続しないでください。
 電源ヘッダーからの電源供給だけであれば、この整流用ダイオードは、取り付けない方が安全です。
diode-vcc


◆カソードコモンの7セグメントLEDを使用する場合の回路図
cathodecommon-sch

 注意事項
  ・7セグメントLEDのコモン端子に供給する電源の極性を、ジャンパ線のつなぎ方で変更します。
  ・カソードコモン用にジャンパ線を設定した場合は、コモン端子の駆動用のトランジスタは、NPNタイプのものを使用します。
cathodecommon-jumper


◆Arduino のプログラム(スケッチ)の例
 Timer2 ライブラリを使用して、1ms 周期で割り込みをかけ、桁を切り替えるダイナミック点灯としています。同時に、時分秒のカウントも割り込みの中で行っています。
 A4,A5 のピンに I2C のデバイス(リアルタイムクロック等)を接続すれば、より多くの機能を持たせることができると思います。

    スケッチの例


  戻る