8pinで何が出来るのか(1) |
最終更新日:2007年1月28日 |
|
8pinでミラクルライトが出来る |
ほぼ1年ぶりの新作(?)の登場です。06年はオーディオクラフト工房やCPLD、NECマイコンに熱中していてすっかりPICの仕込みが出来ていませんでした。今回から何回か「8pinで何が出来るのか」というシリーズで作品を発表したいと思います。
マイコンにはPIC12F683を使います。容量は2kBですが、8pinですからこれで充分と思います。さてたった8pinで何が出来るのかということです。入出力ポートが5本、入力ポートが1本しかありません。この範囲の中で製作を考えなければなりません。まあ世の中には製作本がいくつか出ていますのでネタは尽きないとは思いますが、私の得意であります光り物を中心に作品を発表していく予定です。 |
8pinでミラクルライトが出来るのマイコン |
マイコンはマイクロチップのWEBサイトからインターネット購入しました。田舎に住んでいる私にとっては大変便利です。マイコン自体は東南アジアの国から発送されているようです。注文してから数日で届きます。 |
  |
(WEBで注文したPICマイコン) |
 |
(PIC12F683のピンコネクション) |
マイコンの詳細はデータシートを確認して頂くとして、今回の製作に必要な部分のみ以降に説明しています。どのポートも豊富な機能を共用しています。ピン数は少ないですが使い勝手のあるマイコンと思います。 |
8pinでミラクルライトが出来るの回路図 |
毎度おなじみの回路図です。まずは見て下さい。LEDと各色との割付は皆さんの自由にして下さい。フルカラーのLEDを使うと大変綺麗です。 |
 |
(8pinでミラクルライトが出来るの回路図) |
8pinだけに非常に簡単な回路ですね。 |
8pinでミラクルライトが出来るの基本仕様 |
1)LEDがミラクルに光ります。
2)SW1を押せば16通りの色の変化が楽しめます。
3)SW2で色の自動変化と固定を切換えます。初期は固定になっています。
4)色の自動変化は約30秒ごとに変化します。
5)電源はUSBコネクタからDC5.0Vを頂戴します。 |
8pinでミラクルライトが出来るのポート割付 |
 |
(8pinでミラクルライトが出来るのポート割付) |
8pinでミラクルライトが出来るの初期設定 |
PICはマイコンごとに初期設定が多少異なります。今回もアセンブラでソフト作成しましたので、各種パラメータを適切に設定しないと全く動いてくれません。今回も一部苦労しましたがなんとか動きました。 |
プログラムとの対応は後ほどのソースをダウンロードしてじっくり見て頂くとして、ポイントを説明します。最初は発振回路の設定です。最近のPICは発振回路内蔵となっており、外付けに発振子を付けなくても動作出来ます。発振周波数が特にシビアな製作ではありませんので、内蔵発振回路を使います。勿論それを使わないとピン数足りなくなりますが・・・・ |
 |
(発振回路のブロックダイアグラム) |
内蔵発振回路を使う時の信号の流れを記しています。今回は4MHzの周波数を選択しました。設定のパラメータは次の通りです。 |
 |
(OSCCONの設定) |
ここで重要なのはFOSC<2:0>のコンフィグレーションレジスタの設定です。これを設定出来ていなかったために長い間動かすことが出来ませんでした。プログラムでの設定は次の通りです。 |
 |
(コンフィグレーションレジスタの設定) |
次はIOの設定です。入出力の設定を行います。 |
 |
(TRISIOの設定) |
入力ポートは「1」を出力ポートは「0」を設定します。GP3のみ入力専用です。次にプルアップ抵抗の有無を設定します。 |
 |
(WPUの設定) |
プルアップするポートは「1」を設定します。プルアップの設定にはGPPUがイネーブルになっている必要があります。これは後で説明します。このマイコンにはADコンバータが内蔵されていますが今回は使いませんので、その設定と、アナログポートをデジタルポートで設定する部分です。 |
 |
(ADCON0の設定) |
 |
(ANSELの設定) |
最後はタイマー割り込みの時間などを設定する部分です。先ほどのポートのプルアップ設定があるかないかの設定部分もあります。 |
 |
(OPTION_REGの設定) |
各種設定レジスタはバンク0とバンク1のそれぞれに存在します。バンク1を制御するには切換えが必要です。前もってどのバンクに位置しているか知っておくことが必要です。 |
 |
(設定レジスタとバンクの関係) |
8pinでミラクルライトが出来るの色の変化 |
色の変化は以前作ったミラクルライトと同様に作ってあります。
後の方で記載しますソースを眺めるか、ミラクルライトのページ(http://nonchansoft.my.coocan.jp/pic/indexb.htm)を参照お願いいたします。
一応16色変化はしますがもう少しLEDの直列抵抗を大きくして輝度を下げた方が良いかもしれません。 |
8pinでミラクルライトが出来るの大完成 |
ハードは非常に簡単です。 |
 |
(小型のケースに組み込んでみました) |
  |
 |
(基本の3色を表示中です) |
名古屋水族館で買ったイルカを乗せてみました。 |
  |
  |
  |
(カラフルに光るイルカちゃんです) |
皆さんもいろんな物を乗せて色の変化を楽しんで下さい。 |
8pinでミラクルライトが出来るの全ソースと全HEXコード |
毎度おなじみのソースリストとHEXコードです。
一緒に圧縮してありますのでダウンロードしてからじっくり眺めて下さい。
ソースリストとHEXコードはこちらです。 |
いかがでしたか久しぶりのUSB電源シリーズは。8pinのPICでこれからも楽しい製作をどんどん発表していきたいと思います。 |
これからも益々面白くなる「PIC16F84電子遊戯」をよろしくお願いいたします。 |
|
不明点などあればメールお願いいたします。nonchansoft@nifty.com |
|
 |