// ej-pwpack.txt // エレキジャックNo.6パワーパックプログラム for PIC12F675 by.智田聡丞 ●謝辞 まず、興味を持っていただいた方、また、お作りいただいた方に感謝・御礼 申し上げます。 そして、記事執筆にご協力頂いた方、記事掲載・編集にご尽力頂いた方など、 多くの方々の力添えがなければ完成しませんでした。この場を借りて、改め て感謝・御礼申し上げます。 ●回路についての補足 本回路は、2007年5月に「東京のりもの学会」という同人誌即売会で発表・ 頒布したものををベースに、改良を加えたものです。私の手持ちのコンパイ ラとスキルの都合で再びPIC12F675をチョイスしましたが、今回はピンアサ インをPWM搭載のPIC12F683に合わせてありますので、プログラムを用意でき ればそのまま換装することができます。 ここまで読んだ方はピンと来たかもしれませんが、これをベースに多ピンタ イプのPICなどを利用して、マスコンタイプに発展させるというのも面白い かもしれません。 ●非常停止スイッチについて 雑誌記事中に少しだけ書いた「非常停止スイッチ」についてですが、4番ピ ン(MCLRピン)から配線を出し、プッシュスイッチをつけて基板のマイナス に接続することで搭載できるようにプログラムを変更しました。もしも非常 停止スイッチを搭載したい方は、この方法でご検討いただければと思います。 なお、この機能を実装したため、電源を入れた際に運転スイッチをいったん 「停止」にするか、ホールドスイッチをいったん「HOLD」にしないと加速し ないようになっています。 ●プログラムについて 私はC言語のスキルがあまりないため、main関数の中にすべてのことを埋め 込んでしまいました。そのため、スキルのある方から見ればスパゲッティな 仕上がりとなっていると思いますが、こういう理由ですのでどうかご理解い ただければ幸いです。なお、発振周波数は約350Hzと低めですが、PIC12F675 に対してのプログラムサイズは約10%とコンパクトに仕上がっています。 プログラムの動作ですが、簡単に説明しますと ・A/Dコンバーターで加速度と最高速の値を読み、値を代入 ・スイッチの倒れている方向を読み、値を加工 ・PWMを駆動 この3つを繰り返しています。ソースファイル中に注釈をできるだけ細かく 入れましたので、そちらをご覧頂ければと思います。 なお、PIC12F675は内部クロックのキャリブレーション情報がプログラムエ リアの最後に書き込まれています。何も考えずに書き込みますとこの情報が 消えてしまいますので、必ずマイコン内のデータをいったん[READ]等で読み 込んでから書き込むようにしてください。 なお、消してしまった場合でも動作すると思いますが、もしも不安でしたら ソースファイル内、     OSCCAL=READ_OSCCAL_DATA(); を削除してコンパイルしてください。内部クロックのキャリブレーションは 行われませんが、これでも動作します。 ●コンパイルについて コンパイルは、MPLAB内よりPICC-Liteを使用しました。なお、PICC-Liteの サンプルの中に「delay.h」「delay.c」という2つのファイルがありますの で、これをej-pwpack.cと同じフォルダにコピーしてからコンパイルしてく ださい。これを忘れるとエラーとなります。 //