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 |