LED CIRCLE表示方法
時間が経ってしまいました…PC飛んだ(笑)のと、風邪でダウンしてました。
本回路では、なるべく少ない配線で12個のLEDを制御する為に、6×2の回路を作成し、交互に点灯させる事で表示を行っています。
人の目はいい加減なので、10mSEC中に2mSECの点灯があれば、連続した点灯に見えてしまいます。
そこで、2mSECのDelay(ソフトで一時停止)を用いて交互に点灯されるわけですが、その間にアナログ入力等を行うのは余裕がなくなりますので、処理を分割する意味で4回で全体の周期としています。
LED回路をA/Bの2分割とした場合。
1.A側を点灯し、アナログ入力を行う
2.B側を点灯し、DIP-SWの入力を行う
3.A側を点灯し、A/D値によるパターン更新を行う
4.B側を点灯し、表示パターンを作成する
※A/BのLEDは2mSEC経過後に消灯します。
これで、8mSEC周期ができるので、カウントをすれば8mSECを基準としたタイマもできます。
さて、2mSEC毎の交互表示ですが、3と4の処理の時に点灯を行わないと、8mSEC中2mSECに点灯となり、若干ですが、明度がさがります。
うまく使えば、明るさが2段階の表示も可能です。
次からは、多少のプログラムも追加していきます。…まだ本調子じゃないのですm(__)m
LED CIRCLE パターン
遅くなりましたm(__)m
画像の用意は無理(撮影してみたけど、わからない状況に)なので、説明文で…つたわるかな^^;
前説明
パターンの設定は、DIP-SWで行います。
全て、OFFの状態で’0’です。
1のSWが1,2のSWが2,3のSWが4,4のSWが8を表し、ONの時に加算します。
例えば、1と4をONにすると(1+8)=9となり、全部ONにすると15となります。
番号 | SW | 表示内容 |
0 | 0000 | 1つのLEDが時計回りに |
1 | 1000 | 上記の逆回転(反時計周り) |
2 | 0100 | 2つのLEDが時計回り |
3 | 1100 | 上記の逆回転(反時計周り) |
4 | 0010 | 4つのLEDが時計回り |
5 | 1010 | 上記の逆回転(反時計周り) |
6 | 0110 | 交互に点灯 |
7 | 1110 | 全LEDのフラッシュ(ON/OFF) |
8 | 0001 | 0と1を合わせた表示 |
9 | 1001 | 2と3を合わせた表示 |
10 | 0101 | 2つ置きに交互に点灯 |
11 | 1101 | 3つつながって時計回り |
12 | 0011 | 上記の逆回転(反時計周り) |
13 | 1011 | 11と12を合わせた表示 |
14 | 0111 | VRに応じて、0 > 2 > 4 > 7と変化します |
15 | 1111 | VRに応じて、バー表示(テスト用です) |
といった具合ですが、実際に点灯してみるのが早いかな、という気もします。
ソフトについての説明をして行く予定なので、環境(PIC書き込み)があれば、自分で作っても良いかも。
ワンダーフェスティバルお疲れ様でした
告知はしていませんでしたが、今回の基板は2/7のワンダーフェスティバル2016[冬]にて販売しました。(部品込みで¥2500)
会場にて、質問があったので、この場で解答します。
・電池での動作は可能か?
可能です。
3端子レギュレータは、組み込み時の動作電圧がそれぞれの環境により異なる為、つけていますが、外部で電源が用意できれば、必要ありません。
実際、乾電池(単3×3)での動作は確認しています。
※PICの動作が3.3~5Vなので、4本以上の電池では壊れます。
基板を、以下のように改造します。
注意すべきは、7805(4805)のINとOUTをつなぐ時に、真ん中の端子に付けない様にする事です。
ショートしますので、危険です。
・外部LEDを自作する事は可能か?
可能です。
配線に注意して組み上げれば、問題なく動作します。
また、LEDを変更する場合は、抵抗値 = (電源電圧 – LEDの順電圧) / 電流値で求めます。
今回の場合、(5-2)/0.02 = 150としています。
抵抗のワット数ですが、電源電圧で決定します。
√1/4×150 > 5であれば、大丈夫。 これが、1/6Wの抵抗だと5Vが限界となるので、あまり良い選択とは言えません。
・表示パターンの説明
準備します(汗
調子にのって、16パターンを作ったのと、文章での説明が難しいので、後ほど画像を用意します。ごめんなさいm(__)m
告知もなく、会場で購入して頂いた皆様に感謝です。
LED CIRCLE PICの設定
PICは、最初に動作の設定が必要です。
面倒だけど、やっとかないと動かない…ということで、Config設定。
・DEBUG_OFF:DEBUG機能は使いません。
・LVP_OFF:定電圧プログラムは使用しません。
・BOREN_OFF:電圧低下の監視無効。
・WDTE_OFF:WDTは使用しない。
・FOSC_INTOSCIO:動作クロックは内部クロックとして、外部クロック端子はGPIOとして使用
・LESO_OFF:
・FCMEN_OFF:
他にもあるけど、とりあえずコノ設定ができていればOK
あと、動作クロックは8MHzとするので、下の1行を入れておく事。(Config設定のすぐ後)
#define _XTAL_FREQ 8000000 // 動作クロックは8MHzという宣言
これをしないと、delayマクロが正常に動作しません。
まずはここまで。
PICの開発環境
PICの開発環境です。
とりあえず、プラットフォームは以下の通り。
OS:Windows10 64Bit Home
PICの統合開発環境
MPLAB-X IDE 3.15
コンパイラ、Hi-Tech C
コンパイラが、Hi-Techなのは、MPLAB時代からのものなので。
もちろん、XC8でも大丈夫ですが、環境に合わせて変更する必要があるので、そのままにしています。
なるべくコンパイラ特有の箇所は省いて書いて行こうかなと思ってます。
これからオリジナルのソフトを組んでみようと言う方は、上記の点に注意して下さい。
201601.23追記
基板と部品そろいました。
組み立てに入る前に、もうすこしソフトを進めます。
LED CIRCLE部品
基盤作成は、順調なので部品調達。
・電源部
・7805または相当品
5V1A仕様のモノですが、500mAもあれば十分かなとも思う。
一応、相当品でもピン配置は同じなので、入手しやすければ良いかと。
※3.3Vでも動作しますが、抵抗値を買えないと暗くなくかもしれない。
・コンデンサ
0.1uFと33uFの電解コンデンサ
・制御系
・PIC
当初の予定通り、16F88を使用します。(ソケットも)
クロックは、内蔵発信を使用するので、基本これだけ。
・DIP-SW
4BitのDIP-SWで、表示の選択に使います。
PICからは、内蔵Pull-UPでGNDでON(負論理)として扱います。
・トランジスタ
廃番となったC1815を2個使ってます。(相当品が出回っているハズ)
手持ちで、それなりな数が確保できたので、使います。
※使い勝手良いのに、何故廃番なのか…
・コンデンサ
0.1uFの電源ノイズ用
・抵抗
4.7K 1/4W MCLR端子のプルアップ用 1本
150 1/4W LEDへの+出力電流制限用 6本
※150は、5V時での値ですので、3.3Vの時は変更が必要です。(LED変更時も)
※ワット数は、厳守! 特に、150の抵抗は 1/6Wだと定格ギリギリになります。
・LED表示部
・LED 12個
3mm赤色LEDを使います。
自作、または他のLEDを使う場合、上記抵抗の150は変更した方が良いです。
抵抗の加工
一般的な回路だと、横にしますが、サイズの関係から縦にします。
Uフォーム加工をして、端子側をコネクタ方向にしてハンダ付けするようにします。
高さとしては、ICソケット+PICとほぼおなじ高さなので、問題はなかろうとの判断です。
チップ抵抗も大丈夫…かなぁ
電源関係
7805及び電解コンデンサは、横にしてハンダ付けします。(その余裕はあると思う)
外部で電源を用意する場合、7805,C1,C2は使用せずに、7805のIN-OUTをジャンパして下さい。
ただし、5V以上の電圧は入力させないように注意。
コネクタ関係
コネクタは、自由に。
一枚基板なら、配線ですませても良いかも。
分割して使うならば、制御~表示を番号を間違えないように繋げればOKかと。
一応、コネクタ間は余裕を持っているので、主なコネクタは付けられると思います。
小型化目指したので、それなりに点数は抑えられてると思う。
なお、トランジスタを載せずに、B-C間をジャンパすれば8ビットのGPIOとして使用できるので、外部に回路を組めば汎用的な基板としても使える(んじゃないかな~)と思う。
ソフトもやらんと!
基板発注
今回、基板を作るにあたり、基板屋さんを見つける条件は…
・国内業者である事…日本語で対応可能ならばOK
・会員登録は必須では無い…単に面倒だから(笑)
・特別なソフトを必要としない…ガーバーデータ対応(大体可能だけど)
・着払いで発送…
こんな感じ。
で、探し当てたのが 株式会社ユニクラフトさん。
PCBEでOKと書いてあるけど、別にPCBEのファイルじゃなくてガーバーデータで…という事。
とりあえず、基板作成のルールを落として、ガーバーファイルの名称とPCBEのレイヤの確認、基板作成の条件を調べて専用の基板ライブラリを作っておくのが良いです。
あとは、ソフトでグリグリと回路を作って、ガーバー出力してそれらのファイルを圧縮した後、添付しておくればOK…楽(笑)。
発注時に指定するのは、基板サイズと枚数くらいで、後は標準のまま。
※発注枚数は、1~2枚だと単価が上がるので、4か8の倍数が良いとの事。
簡易見積りが提示されるので、よければ先の圧縮ファイルを添付して注文。
受付メールは来るけど、対応後のメールは後からきます。
そこから、本注文と支払いの方法を指定すれば、後は制作状況を見ながら待つだけです。
※ガーバーファイルだけなので、PCBE以外のソフトで作成したファイルであっても、それぞれのファイル名が一致すれば大丈夫みたい。
部品も発注せねば…
回路を考える・・・行き着いた先
回路図は出来たので、実際の回路(基板)を作る事に。
普段は、DS-PCBとかKiCADとか使ってます(時々EAGLE)が、いずれにせよライブラリがいまいちなのと、規模から考えてざっくり自分で回路を引いたほうが楽な事に気づく(笑)。
ちなみに、LEDは3mmを使って配置を考えた結果、蛇の目基板でも円形状に配置する事が可能だったので、無理して円形基板を作るのは止めました。
ということで、ざっくり回路を紙に書いて見たところ、PCBEでいいじゃんとの結果に。
基板サイズは、制御部は41×32、表示部は22×19(最大)となっています。
双方を面付けで1枚の基板とした方が値段的に楽なので、63×32の基板として作成。
部品面に書いてあるけど、PCBEのデータ(ガーバーデータのみ)で基板を作ってくれるところを探していたところ、株式会社ユニクラフト(unicraft)に行き着きました。
出来たのは、下の回路
一度、ガーバーデータを出力して、ガーバービューで表示した画像です。
一応、シルクでカットすれば、独立基板として使えるようにしてあります。
発注するぞ!
LEDの電子回路
頼まれて回路設計しました。
LED12個を円形状に並べて、くるくる回しての表示をするもの。
回る速度は、ボリューム(外部接続もできるように)でコントロールする感じ。
で、以下の様な感じで設計
・制御基板と表示基板を分ける
・制御基板は、組み込みを考えてなるべく小さく。
→必然的に部品は最小とする。
・制御と表示の配線は、なるべく少ない本数で行う。
てな感じですが、LEDが12個なので、13本必要な配線を2*6で合計8本で行う事に。
ダイナミック点灯するので、最大4*4の16個までLED繋げられる。
コントロールCPUにはPICを使用。
アナログとかGPIOの数から、PIC16F88に決定。
点灯出力を6ビット+GND制御に2ビット(GNDはTrで引っ張るので、それなりな電流にも耐えられる様に)+アナログ入力。
ついでに、パターンを選択出来る様に4ビットDIP-SWをつなげる事にしました。
んで、出来上がったのが下の回路図
※BSch3Vで書きました。
TrのC1815は、既に製造中止なのですが、相当品が出まわっている事と、とりあえず使いやすいので、使用しています。
1品もので作ろうかとも思ったのですが、どうせなので前からやってみたかった基板を作ることにし、基板屋と入稿データ(ルールも含めて)調べる事に。
ワンフェスお疲れ様でした。
悪天候でのイベントは何度か経験あるものの、今回(2014 冬)は、さすがに引くレベル。
当日は、6:30に家をでましたが、交通手段は電車の運行次第。
地元のバスは定刻通りに来たので、駅にて状況を見たところ、選択は1つのみという有り様。
結局は、東京まで出て京葉線で現地入りしました。
中に入れたのは、開場ギリギリとなった為、卓の準備と受付は開場後となってしまったのが残念。
帰りは、なんとか動いていたので、問題なく帰れましたが、なんとも疲れたイベントでした。