2019/03/17(SUN) スロポジ2B
はい、春らしく暖かくなってきましたが
バイクに乗ったり、イジったりすればいいのに
平日のデスマっぷりで
休みはヘロヘロでなんもやる気おきないっす

スロポジ2ですね。
7セグ2桁表示まではできてました。
回路図は前回のネタね。
で、
プログラムを書く上で
ピンアサインは重要。
今回はPIC16F818を使います。
これね。
フォト

7セグはこんなので
フォト

ピンの割り振りはこんな感じです。
フォト

あ〜わかりにくいかもしれませんが
7セグというけど10ピンなんですよ。
で、3ピンと8ピンはアノード共通ということです。

これらを元に、どうピンアサインするか決めます。
フォト

今回は小数点は使わないのでDPは使いません
あと、10の位(正確には100の位)は
「10」の時の「1」しか表示しないので
RB7ピンへと接続します。
つまりRB0〜7で10までの数字を表現します

あとRA0がスロットルポジションセンサーから
信号をもらいます。AD変換できるピンに入力します。

RA2とRA3は、スイッチ入力ですね。
0リセットと100リセットに使います

ピンアサインが決まったら
出力パターンを整理しておきます。
どう出力すれば、7セグに数字が表示されるか?
フォト

RB0〜RB6で「0」〜「9」と「 」(非表示)を表現します。
アノードコモンなので、
ビットが「0」のところが光り、
ビットが「1」のところが消えます。

RB7は、100の位の7セグの「1」の出力を制御しています。
ビットが「0」の時はなにも表示せず。
ビットが「1」の時に「1」を表示します。
RB0〜RB6と逆なのでわかりにくいかな?
RB0〜RB6の「0」と合わせて「10」を表現しています。

ブレッドボードに回路を作ります。
前回の回路はこんな感じ
フォト

スイッチとか回路を足します
フォト

青い可変抵抗は、擬似スロットルポジションセンサーですwww

こんな感じにつながってます。
フォト

動作確認してみると
フォト

「5」なので、「50%」って感じです。
0リセットや100リセットのボタンも正常に動いているっぽい。
面倒なので、EEPROMに書き込まれている値が
変化するかを、PCで読み込んでみて確認しています。

回路とプログラムは大丈夫そうです。
はぁ〜ここから基盤に実装するのが
また大変なんだけど・・・

実は、スムーズに動いたように書いていますが
平日のデスマで疲れまくってて
思考が半分止まってて
スロポジからの入力先を間違ってて
RA0に入れなくちゃいけないのにRA1に入れてて
動かないと散々悩んでしまった。
ブレッドボードで動かないので
シミュレーターに戻って
PC上でプログラムを動かすと
問題なさげだったんだけど・・・
と散々悩んで、
冷静に回路を見直したら
間違いに気がついた・・・
疲れた。。。orz