全ての記事 920 件のうち 14 件の記事が該当しました。 (全 2 ページ)。
アナログ停波のため廃棄することになったビデオデッキを分解した際、赤外線リモコンの受光素子を手に入れました。適当に電源をつないでオシロで観察したところ、手元のリモコンからの信号をピコピコと拾っているようです。何かに使えないかしら? …ということで、まずは赤外線リモコンから送信されているデータを解析できるよう PIC16F84A を使ったデコーダを作ってみました。赤外線受光素子の出力を PIC で解析し、結果を16桁×2行の液晶ユニットに表示するようにします。
PIC で長時間のウェイトを実現するために、8 ビットカウンタのループを複数段で構成して、むしろ問題を複雑に考えすぎていました。そもそも難しく考えず、「16 ビット以上のカウンタ変数を利用できるループを作る」と考えればよく、そうすれば問題は単なる一次方程式の問題で終わります。年が明けてから気が付いた覚書き。
PIC アプリケーションで任意の時間またはプログラム サイクル数のウェイトが必要になった場合、NOP
などの無駄な命令を必要なだけループで回して時間を稼ぐ方法があります。動作クロックが 10 MHzであった場合、一段のループで稼げるのは高々 2,000 サイクル 900 μ秒程度です。更に長い時間を稼ぐには、このループを二段、三段と入れ子にする必要がありますが、そうすると、所望するウェイトに対して各ループ段に必要なループ回数を正確に求めることが困難になります
そこで、複数段のループで構成されるウェイト処理について、最適なループ回数を簡単に計算できる Excel シートを作ってみました。所望するウェイト時間またはサイクル数を入力して、Excel のソルバー アドオンで最適解を見つけられます。また、GUI で数値を増減させて、手作業で近似解を求める作業をお手伝いします。
PIC アプリケーションで、ユーザが設定変更した動作パラメータなどを、EEPROM に保存して永続化するためのメモ。例えば、24 時間タイマー装置で、プッシュ スイッチを用いてオン/オフ時刻を設定できるようにしている場合や、今までの動作状況(カウンタ値など)が、停電などで PIC の電源が失われたとしても永続化できると嬉しいですよね。まだそこまで複雑なアプリケーションに着手できていないので、出番は当分、先のことになりそうですが、EEPROM を持つチップであればこれを利用できます。
数字程度の簡単な表示であれば 7 セグメント LED で十分かもしれませんが、アルファベットを表示したり表示する文字が多い場合には、7 セグメント LED で頑張ろうとすると余計に苦労することになります。こういったケースでは、16桁×2行表示程度の LCD を用いると便利です。
さて、7 セグメント LED による表示ができるようになったところで、以前、実験した A/D 変換を組み合わせてみたいと思います。これによって、A/D 変換機能でセンサの値を読み込んで、その出力を 7 セグメント LED に数値表示できるようになるはずです。
今のところ、PIC チップは PIC12F675 と PIC16F819 を愛用していますが、もしかしたら他にももっと安くて高機能で使いやすいチップがあるかも? と思って地元のマルツパーツ館で取り扱っているものをリストにまとめてみました。秋月電子通商だと更に多くの取り扱いがありますが、多分、赴くこともなさそうなのでパス。
ウォッチ ドッグ タイマ(Watch Dog Timer)はハードウェアに近い場所に実装された独立したタイマで、プログラムのバグで無限ループに陥ったり、外乱ノイズ等の影響でプログラムが暴走してしまった場合などの異常を検知して、PIC に自動的にリセットをかけたりするのに使われます。今回、このウォッチドッグタイマを利用して LED を点滅させてみようという試み。
PIC の外部割り込みを利用して、スリープ状態から復帰するプログラムの習作。メインループで入力ポートをずっとポーリングするよりも、ボタンの入力待ちになったらマイコンをスリープし、ボタン入力をトリガに割り込みを掛ける方が、ずっと低消費電力でチップを駆動することができるので、是非とも習得しておきたいテクニックです。