2015-08-24 Mon
ロータリースイッチの機能をPICに分担させるのに、ちょっと工夫します。
ロータリスイッチの場合隣り合った数字の移動しかできません。
4接点だと4までの隣同士の数字にしか移動できません。
1←→2←→3←→4
1→→4はできません。
スイッチ一つをPICに分担させると、ダブルクリック等の技を
(「長押し」も可のアドバイス受けました。)
検出しないと逆戻りをさせることはできませんので、次のよう
にします。
スイッチが1回押されるとカウンターを1加算するようにします。
一方参照テーブルは、
1←→2←→3←→4←→3←→2
のように、6個作っておきます。
このテーブルにカウンターを次のように割り当てます。
1←→2←→3←→4←→3←→2
↓ ↓ ↓ ↓ ↓ ↓
1 2 3 4 5 6
こうすることで、カウンターを加算することで、常に隣の数字
に移動ができます。カウンターが6になったら、
ます。
(1ではだめでした。割込処理を抜けるとき0にします。
if(counter==6){counter=0;}は、swtch文の後です。
割込処理のキーチェックで必ず、1加算されます。)
これをCのプログラムにすると、
みたいな感じになります。実際には、「待ち時間を作る」、
「スイッチが押されたフラグのSWをクリアーする」等の
細かい指示が必要です。
また、もう一つスイッチを使うなら、2→→1、等の逆戻り
もできますが、一つだけの予定なので、このままいきま
す。
2015-08-24 Mon
低価格の手パ(手動パルスジェネレータ=MPG)を購入しようと思いましたが、手持ちのジェネレーターがあるので、切り替え器
と組み合わせて、ケースにいれてみようと思います。
ロータリースイッチを使おうと思いましたが、忘却防止のため、
手持ちのPIC(16F88)を使って、切り替え器を作ります。
軸の切り替えに一応4(X,Y、Z、4)出力。スピード?の切り替え
に3(1倍、10倍、100倍)出力。これだけで、
ロータリースイッチ使うと、同じ数だけ
跳ね返りスイッチ2個をそれぞれの切り替えにわりあて、
出力は、プログラムで処理します。
それぞれの出力にLEDの表示もしますので、PICから直接
ドライブすると出力電流がオーバーしそうなので、今回、
トランジスタアレイ(ダーリントンドライバー)を使うことにし
ました。
(選定を間違ったようです。正解はTD62003でしょうか)
思いますが、大は小を兼ねる?でやって見ます。
細かい数値の意味の読み取りができないので、困ります
が、まあ、トライアンドエラーで、いつもの通りやって見ます。
PIC→TD62004APG→フォットカプラー→SS
|
→LED
の構成で考えます。
このTD62004APGは、優れもので、内部に抵抗があります
ので、PICの出力を直接接続できるようです。
7チャンネルなので、今回の目的にちょうどです。
昨日、今回は他にもほしいものがあったので、○ツに注文
しました。肝心のカプラー忘れました。
それと、多芯ケーブルをどうしましょうかね。
7芯+電源+グランド等で、9芯のものが最低でも必要です。
○タロウのロボットケーブルは、30Vの10芯2mで、
2600円程度します。ケーブルが一番高いです。
PICのプログラムは、一定時間ごとに割込をかけて、二つ
のスイッチの判定をして、それに応じて、出力を順次切り
替えればいいので、それほど難しくはないかなと思います。
さて、また、PICの復習からでしょうか。
TOP PAGE △