ホームページの最初のページにします!
お気に入りに登録します!
ただ今の日時:
v(^_^v)♪ありがとございました~♪(v^_^)v 戻りまーす!

ワンチップマイコン・PICでC言語を使った学習報告2

 勉強する機会がありましたので、第二弾としてアップします。何度勉強してもアセンブラしかしたことがない私にとって、C言語の世界は真新しいものばかりです。まだまだ理解に至らないものが山積しています。じっくりとあきらめずに続けて行けるよう頑張りたいと思います。なお、アップした回路図プログラム間違いや無駄などがあるかもしれません。 そのあたりは勉強中と言うことでご容赦願います。できればご指摘やアドバイスを頂ければ幸いです。(メールなどで直接でもOKです)
 お決まりの条文ですが、ここに紹介するものは私個人が勝手に製作したもので、万一製作されて事故などの被害にあわれても当方は一切責任を持ちませんので、ご理解とご了解のうえで 、ご参照並びにご利用ください。できれば勉強用として利用して頂ければ幸いです。なにせ私もまったくの素人ですから!

1. 日付
2008年6月9日
2. テーマ
LCDメッセンジャーとフルカラーLEDの学習
3. 使用したPICマイコン
PIC16F876-20/SP
4. 電源電圧とシステムクロック
電源:DC5V、クロック:20MHz
5. 開発環境
ハードウェア:ICD2(Microchip)、ICD-U40(CCS)、ブレッドボード(鰹H月電子通商)
ソフトウェア:PCWHD Compiler Ver4.074(CCS) 、 MPLAB IDE Ver8.10(Microchip)
6. 回路図
ここにあります!
7. プログラム
ソースファイル一式はここにあります。ZIPで圧縮しています。
8. 参照した主な書籍とWebサイト
「C言語によるPICプログラミング入門」 後閑哲也 著者 葛Z術評論社 発行・・・文献1
「CによるPIC活用ブック」高田直人 著者 東京電機大学出版局 発行・・・文献2
「8ピンPICマイコンではじめる、作る、できる電子工作入門」 後閑哲也 著者 葛Z術評論社 発行・・・文献3
参考にしたサイト:http://nis-ei.eng.hokudai.ac.jp/~aoki/laboratory03.html
 きっかけ

 仕事がら色々な装置を設計しますが、以外に考慮しなければならないことは「状態表示」です。今正常なのか、待機中なのか、果ては異常なのか・・・そんな状態を例えばリレーシーケンスで設計すると、 わりとリレーの数が要ることに悩むことがあります。それらを解消するため、PICマイコンを使い、派手に明るいLED(フルカラーLED)1個とメッセージを表示する液晶(16文字2桁版)を用意し、入力は接点入力やフォトカプラ-入力に対応したものを製作してみました。今回も C言語・入門の最初の製作品として採用しました。

 具体的には

 いつもお世話になります!早速先駆者の御仁のサイトを検索ました。フルカラーLEDについて調べたところ、結構色々と出てきます。上記の目的とは関係なく、いくつかのプログラムをアレンジして動作させてみました。皆さん結構難しい( 私にとっては!)こと(乱数割り込みなど)をしていて、理解できなかったのですが、一通り動作はさせることはできました。そんな中、参考になるサイト(「8. 参照した主な書籍とWebサイト 」参照)を見つけました。いくつかのプログラムを眺めていると、大そうに割り込みなど使わず出来そうなので、まずはプログラムを記述して動かしてみよう!と実行に移しました。

 左図で、一番左のブツ(クリップ4本で接続)がフルカラーLEDで、ブレッドボードに乗せることができなかったのでこうなりました!下の赤、白、黒のボタンはメッセージに応じた入力でスイッチで代用しています。フルカラーの色は左の赤から「赤」、「緑」、「青」、「白」、「黄」と点灯し、図には映っていませんが、消灯のスイッチもあります

 回路図にはデバッグツールを接続するコネクタが描かれています。Microchip社のICD2やCCS社のICD-U40を接続します。どちらも同じ信号ピン配置で、私の場合はプログラムデバッグ時はICD-U40で行い、PICへの書き込み時にICD2に換えています。 当然、デバッグ時はリセット端子(1PIn)に接続されている47kΩ以外は外しておきます。




← 電源ON時の表示メッセージでLEDは消灯しています。




← 一番左端の赤ボタンを押すと、LEDは赤く点灯し、LCDの1行目に「2.red」、2行目に「HV-ON Danger!」と表示します。




← 左から2番目の白ボタンを押すと、LEDは緑点灯し、LCDの1行目に「4.green」、2行目に「HV-OFF Stanby」と表示します。




← 左から3番目の黒ボタンを押すと、LEDは青点灯し、LCDの1行目に「1.blue」、2行目に「Ready Stanby」と表示します。




← 左から4番目の黒ボタンを押すと、LEDは白点灯し、LCDの1行目に「7.White」、2行目に「POWER ON Stanby」と表示します。




← 左から5番目の白ボタンを押すと、LEDは黄点灯し、LCDの1行目に「6.Yeloow」、2行目に「ERROR! Warning!」と表示します。




← PORT-B5に配線しているボタンを押すと、LEDは消灯し、LCDの1行目に「0.off」、
2行目に「Message OFF」と表示します。


 以上のように液晶に好きな文字を表示させることができたことと、フルカラーLEDを使い、ある程度利用頻度のある色を発行させることができました。

苦労したことと、その他

 フルカラーLEDの色を変えるのをWebサイト中で調べていたら、ほとんどのサイトで「PWM」を使うとありました。しかし、RGBの3本ある足に接続できるPWMは構築できません。そこで、御仁の方達は色々な工夫をされているようで、私の頭では理解に至りませんでした。当初の目的はそれほど複雑にすることなく達成できたことを喜んでいます。
 これの発展として、出来るだけ小さくまとめ、ケースなどに入れて何かの装置に組み込めることを考えております。

 総 評

 今回使用したフルカラーLEDは鰹H月電子通商で販売(10個入り800円也)されていた「OSTA71A1D-A」と言うアノードコモンタイプで角型をしており、レンズも付いていて、かなりの高輝度で光ります。まともには見ることができません。横からもよく光っていて分かりやすいです。 他にも応用ができそうです!では次回を