新・ブレッドボードで簡単PSoC
by K.I
2009/08/08〜
Index
概要
LEDの点滅
いろいろ
タクトスイッチによるLED点灯
LCDを使う
ロータリーエンコーダ
7セグメントLED
8x8 Matrix LED
アプリケーションノート
使用部品
概要
やっぱり簡単電子工作といえば、ブレッドボード。
CypressのPSoCは、入出力設定の自由度が大きいので、ブレッドボード向きだと思う。
ブレッドボードで簡単PSoCの第3弾ということで、シリーズ化?してみる。
自分のメモ代わりに、基本的なPSoCの使い方を纏めたサンプル集のようなものにするつもり。
ブレッドボードで簡単PSoC
、
続・ブレッドボードで簡単PSoC
の内容も一部含みます。
みんな簡単なものぱかりなので、この際、説明は全く省略して、ブレッドボードの図だけにしてみる。
まぁ、最低限のコードや設定は付けなきゃいけないかな。。某社の組立て説明書のイメージ
1
で。。。
図を見やすくするために、全部PDFファイル
2
にした。基本的に1ページ以内、どうしてもダメなら2ページにということで。
設定項目は全て含めたつもりなので、新規作成して、同じ設定にすれば動くはず。
かなり制約があるので、プログラムはムリヤリ短くしていたり
3
するけど、それはパズルみたいで結構面白い。
しかし設定項目を全部載せるのは辛い。GUIのソフトって説明するには最悪のシステムだなぁ。。
このページは、なんか勢いで作ったので、いろいろ問題があるんだけど、作りなおすのも面倒なので、そのまま公開する。
projectは特に公開しないけど、設定項目は全て記述してあるので、その分だけやれば大丈夫。Ver.4のprojectなので、今更という感じだし。
大事なこと書き忘れてたけど、ブレッドボードのEIC-301の場合、基本的に一番上の横方向の接続がVDDで、一番下がVSSにしている。
EIC-801の場合は、上下に2本づつ横方向の接続があるので、それぞれ上がVDD,下がVSSにしている。
1
本当は、文字を全く使わないでやりたかったんだけど。。
2
PDFなら自由に図を拡大出来るので。
3
ソースの見易さは犠牲になってる。。
[top]
LEDの点滅
#010
Basic Set →基本セット
最低限の配線。PSoC MiniProgによる書込みが可能。プログラムは無し。
#011
Blinking LED by wait →ウェイトによるLED点滅
PSoCのライブラリには、wait_msのようなウェイト関数が無いみたいなので、LCDモジュールのウェイトルーチンを流用。
#012
Blinking LED by SleepTimer →スリープタイマによるLED点滅
SleepTimerモジュールによりSleep状態からの割込みでLED点滅させる。モジュールをPlaceすれば、割込み処理が組み込まれるので、割込みを意識する必要はない。
#013
Blinking LED by Timer →タイマによるLED点滅
TimerモジュールによるLED点滅。タイマを直接LEDに接続しているので、プログラムはタイマをスタートするだけ。
#014
Blinking LED by TimerInterrupt →タイマ割込みによるLED点滅
Timer割込みによるLED点滅。タイマ割込みルーチンでLED点滅を行う。
[top]
いろいろ
#018
Night Rider →抵抗ドライブでLED点灯
GPIOの抵抗ドライブでLEDを点灯させてみた。定番のナイトライダーを作ってみる。
[top]
タクトスイッチによるLED点灯
#015
Switching LED by GPIOpoling →GPIOポーリング処理によるLED点灯
タクトスイッチの状態を確認を繰り返して、スイッチがONであればLEDを点灯させる。
#016
Switching LED by GPIOinterrupt →GPIO割込み処理によるLED点灯
タクトスイッチが押されたら、GPIO割込みを掛けてLEDを点灯させる。
#017
Switching LED by GPIOdirect →GPIOからダイレクト接続でLED点灯
タクトスイッチとLEDをダイレクトに接続。CPUは使わないのでSleepさせる。グローバル入力バス接続はPullUpできないので、隣の端子をPullUpして外部で接続した。
[top]
LCDを使う
#020
LCD Basic Set →LCD基本セット
ブレッドボードで、LCD(SD1602HU)を使う基本の配置を考えてみた。プログラムは無し。
#021
LCD Display Test →LCDの表示テスト
LCDモジュールを使った表示のテスト。
#022
Gsensor & ADC →加速度センサをAD変換
加速度センサ(KXM52)の出力をTRIADC8で測定して、バーグラフで表示する。
#027
Tact Switch Test →タクトスイッチのテスト
ちょっと無理矢理だけど、タクトスイッチを6個載せてみました。プログラムはかなりテキトウ。
[top]
ロータリーエンコーダ
#023
Quadrature Decoder by Poling → ロータリーエンコーダのポーリングによるデコード
インクリメンタル型ロータリーエンコーダの状態を繰り返しチェックして、回転方向を検出してカウントする。
#024
Quadrature Decoder by TimerInterrupt → タイマ割込みによるデコード
タイマ割込みでロータリーエンコーダの信号をチェックする。
#025
Quadrature Decoder by GPIOInterrupt → GPIO割込みでデコードする
ロータリーエンコーダを回転させた時の信号の変化で割込みを掛けて、デコード処理を行う。
#026
Quadrature Decoder by Direct → 直接カウントする
ロータリーエンコーダをダイレクトにカウンタに接続してカウントする。Up方向・Down方向別々にカウントして、引き算する。
[top]
7セグメントLED
#030
Triple 7seg LED → 7セグメントLEDを使う
ユーザーモジュールは使わずに抵抗ドライブで、出来るだけ簡単に7segLEDを使うことに挑戦!これ以上簡単に使うのは難しいかも!?
#031
FlashTemp Test → FlashTempで温度表示
でも得られる温度は3度刻みで精度が悪い。PSoCデバイス自体の消費電流による発熱を測ってるだけみたいな。。実用性はなさそう。。。最初にオフセット(oTemp)を調整してください。
#032
Stop Watch → ストップウォッチ
ストップウォッチを作ってみた。CR発振なので精度は悪いんだけど、Counter16のPeriodの値を調整して出来るだけ合わせてやると良い。
[top]
8x8 Matrix LED
#035
8x8 Matrix LED → Matrix LEDを使う
さすがにちょっと暗いけど、抵抗ドライブだから配線が超簡単!。とりあえず、お手軽にMatrix LEDを試すことが出来る。
#036
G Sensor & 8x8 Matrix LED → 加速度センサとMatrixLEDの組合せ
MatrixLEDと接続して、アナログ入力ポートが無くなっちゃった。。でもこれじゃツマラナイので、ムリヤリ加速度センサを繋いでみた。
[top]
アプリケーションノート
AN2207
Lock-in Milliohmmeter → ロックインアンプによる低抵抗計
なんとかブレッドボードに収まりました。
AN2089
Current Source → 定電流源
定電流源を使って、圧力センサを動かしてみた。
[top]
使用部品
ブレッドボード関連の部品購入先。使っていないものもあるけど、参考に。
ヘッダピンとかは長いものを買って、切って使ったほうが経済的。
EIC-301
→一番安いブレッドボードなので
EIC-801
→EIC-301に載らない場合に使う
EIC-701
→細長いブレッドボード
KH-102
→このブレッドボードは使ってないけど、ユニバーサル基板と同じなので良いかも
BreadBoard_wire
→ブレッドボード用ジャンパ線
SD1602HU
→16文字x2行のキャラクタLCDモジュール
KXM52_module
→3軸加速度センサモジュール
CY8C29466
→Cypressのマイコン(PSoC)
PIN_HEADER(x1)
→ブレッドボードでは一番使う1列のヘッダピン
PIN_HEADER(Ltypex2)
→2列は要らないのだけれど、長い方のL型だけ使う
PIN_Socket(Male)
→ヘッダピンより抜き差しし易い(抜き差しの多い部品に)
PIN_Socket(Female)
→本来のソケットとしてだけでなく、ヘッダピンと高さが同じくらいなので支えとして
Quadrature_Encoder
→インクリメンタル型のロータリーエンコーダ
TactSwitch
→ブレッドボードではちょっとグラグラするけど、テスト的使うにはとりあえず問題ない
SDTJ-1230D
→ノブ高が9.5mmあるタクトスイッチ。完成したものをケースに入れる時などに
JumperPin
→ジャンパーピンセット。ブレッドボードでは直接使わないけど持っていると便利
[top]
[電子工作関連に戻る]
コメント欄の表示/非表示
⇒ Disqusの広告がうるさすぎるので基本は非表示にしました
Please enable JavaScript to view the
comments powered by Disqus.
comments powered by
Disqus