2010年7月5日月曜日

PICでPCとシリアル通信

てな事にトライしてみましたよ。

使用したのはPIC16F628A。

USARTというシリアル通信ポートを標準で装備しているものですね。

設計した機能は、2秒間の間にボタンを押した回数をカウントし、

カウント数をPCに送った後、2秒間7セグLEDにも表示させる、ってものです。

例のごとく、ちょいちょいと回路をブレットボードに組んでみます。

美しさは二の次ですYO。



汚いですね。

左がPICマイコン、

右が7セグLED表示回路と通信用のトランシーバーIC。



シリアル通信用トランシーバIC「ADM3202」

これを経由してPICマイコンとPCの通信を行う訳ナ理屈です。

PICの動作電圧は約5V、

しかしPCのシリアルポートは12Vなので、電圧変換の為に使います。



7セグLED表示回路。

カウンタICと7セグLEDドライバICで構成してますね。

ボタンが押された回数をココに表示します。


PICマイコン部

ボタンを押すと、押した数がカウントされるようにプログラムしてます。

その他、余計なものも付いていますが、あしからず。


PC側の通信ソフト

色々なHPを参考に自前で作りますた。

参考文献は、

技術評論社「Visual Basic初級プログラミング入門 上」

受信とあるテキストボックスにPICから発信されたデータを表示します。



ではぢゅわ、動作確認でいっす。

電源ONして、PCソフト立ち上げ、PICに設置しているボタンを連打!



カウンタが増えてます。

4回押したみたいです。

実際押したのは1回なのですが・・・

PC側は、


下側のテキストに、カウンタと同じ数値が送られますた。

うまくいきましたよ。

これを使えば簡易的な自動測定器が作れそうですね。

夢が広がりますよ(笑)


ボタンの押した回数と、カウンタの数が合わないのは、

チャタリングという現象が起きているためだそうです。

ボタンは1回しか押していないのですが、接点が細かくバウンドしたりして、

非常に短い時間にON-OFFを繰り返してしまうそうです。

コレをなくす為にまた一工夫必要ですが、今回はココまでということで。

0 件のコメント:

コメントを投稿