楽釣工房では、小魚用しゃくり機、わかさぎ用しゃくり機、Picマイコン制御による自動しゃくり機(しゃくりパターン制御)、赤外線リモコンの応用回路(電気機器のON/OFF、温度制御、リモコンに依る数値設定など)、電子回路について書いて行きます。

 ブログの投稿記事に画像データを多く使用している為、他の投稿記事を読む事に不便をかけると思われます。
従って、投稿記事の前文をブログで公開し、全体の記事は ホーム・ページ [ 楽釣119 ] で公開する事にしました。
ホーム・ページ [ 楽釣119 ] では、今までの記事の内容を整理し、内容の不具合を修正し、又、記事の追加をして、ホーム・ページで公開しています。
  
___________________________________________________________________________________________________________________

2017年8月18日金曜日

ワイパー・モーターのスピード・コントローラー

以前は「巻線型可変抵抗器」を使ってモーターのスピードを調整していましたが、価格が高くて手に入れる事が難しくなりました。又、抵抗器が消費する電力が大きいのでバッテリーの持ちが悪くなりました。

そこで、最近、DC/DCコンバーターを使ってモーターのスピードを調整する人が増えてきました。低価格で簡単に手に入れる事ができるのですが、電圧を落としてモーターのスピードを落とすのでトルクが小さくなってしまいます。その為に低速回転で使う事が出来ません。
そこで、PWM スイッチング方式に依る超小型のワイパー・モーターのスピード・コントローラーを作ってみました。
このユニットをしゃくり機に収める時、ボリュームを取付けるだけで固定できます。ボリュームとプリント基板が一体になっています。
小型ですが最大電流値は、15A まで動作可能です。この基板で使用しているターミナル(端子)の定格電流が 15Aなので、この値を最大値としています。実際は、3倍ほど余裕が有ります。安定した動作をさせる為に余裕を持たせています。ワイパー・モーターの場合、定格電流値が3A 以下で使用して下さい。

[ 仕様 ]

1.12Vバッテリーにダイレクトに接続して動作させます。
2.最大負荷電流値は、15A です。
   (スイッチング素子が発熱しない安全な値です。又、12V 180W までの LEDライトを
     コントロールする事も可能です。)
3.プリント基板サイズ:42mm x 32.8mm x 16mm (厚さ)
  (ボリュームを付けない時の大きさ。)
4.PICマイコンを使用してPWM波を発生させてパワーモスFETをコントロールしています。
5.しゃくり機に使用する事を想定して水濡れを防止する為にエポキシ接着剤でコーティング
     しています。この防水方法は完全ではないので、水濡れ対策が必要です。
6.スピードをボリュームで設定する場合、PWMのデューティサイクルを0% ~ 100%にしますが、
     実際に使われる範囲が狭いので、必要な範囲(20%~60%)だけを使うようにプログラムで設定
     しています。スピードの設定がし易くなっています。
    使うモーターの種類にも依りますが、一回転時間を2秒 ~ 15秒に設定しています。勿論、
    しゃくり機が動作する時間ですが充分なトルクが有るので可能です。
   (DC/DCコンバーターの電圧調整型スピード・コントローラーが調整できる最低スピードは
     6秒が限界です。)
7.スイッチング周波数を高く設定しているので、うるさい音がしません。
8.バッテリー接続時、プラス・マイナスを間違えても壊れないように逆接続防止ダイオード
     入れて有ります。
9.低価格な商品です。


[ スピード・コントロール基板 ]















2017年8月7日月曜日

ホールセンサー試験

私が製作している「モーター・コントローラー」に使用している原点センサーは一般的な永久磁石を使っていますが、検出範囲が広いのでピンポイント位置の検出には不向きです。
そこで、一般的に販売されている4種類のホールセンサーをテストしてみました。

・A1324
N極、S極の向きに応じてアナログ電圧で出力されます。N極、S極を判別します。
磁力がない時の出力電圧は、2.5Vの電圧が出ます。それをA/Dコンバーターで測定して電圧の大きさに応じてマイコン等で処理します。
このマイコンのプログラム処理に依って感度を調整する事ができるので、ピンポイントの位置を検出する事が簡単にできます。
  
・SK8552
高感度の為に検出範囲が広いので、ピンポイントの位置を検出する使い方には向きません。

・US1881
ホールドタイプのデジタルセンサーです。
磁石のN極を近づけると出力が〝1”でデーターがセットされます。磁石のS極を近づけると出力が〝0”でデーターがリセットされます。

・S5716
磁石を近づけると動作します。N極、S極の向きはどちらでも良い。
高感度の為に検出範囲が広いので、ピンポイントの位置を検出する使い方には向きません。
このような特徴が有ります。

結論的にPICマイコンで感度などが調整できる「A1324」アナログタイプを採用する事にしました。


2015年12月10日木曜日

LED ライト コントローラー

超小型の"LED ライト コントローラー”を作ってみました。
PWM スイッチング方式に依ってコントロールしています。
このユニットをケースに収める時、ボリュームを取付けるだけで固定できます。
小型ですが最大電流値は、15A まで動作可能です。
この基板で使用しているターミナルブロックの定格電流が 15Aなので、この値を
最大値としています。
実際は、3倍ほど余裕が有ります。安定した動作をさせる為に余裕を持たせています。
又、ワイパーモーターを駆動する事もできます。この場合、定格電流値が3A 以下の物を
使用して下さい。

【仕様】
 1.12Vバッテリーを接続して動作させます。ターミナル ブロック(ねじ止めタイプ)に電線を
   接続するだけで使用する事ができます。
 2.Power MOS FET を使用して、PIC マイコンでPWM 制御しています。
   最大負荷電流値は、15A です。
   (12V 180W までの LEDライトをコントロール可能。〔0 %~99 %〕)
 3.プリント基板サイズ:42mm x 32.8mm x 16mm (厚さ)
   (ボリュームを付けない時の大きさ。)
 4.ボリュームを取り外して小型のケースに収めて使う事もできます。
   ボリュームを別の場所に配置する事も可能です。
 5.しゃくり機に使用する事を想定して水濡れを防止する為に電子部品をエポキシ接着剤で
   コティングしています。完全ではないので、水濡れ対策が必要です。

2015年11月28日土曜日

V1.9 モーター・コントローラー

 ブログの読者からの問い合わせが有りますが、その殆どが価格に関するものでした。
 そこで、V1.3 タイプの低価格の一体型コントローラー基板を作って見ました。

 基本的仕様は、以下の通りです。

  ● PIC マイコンに依るコンピューター制御をしています。
  ● モーター電圧調整範囲 :2.5 V ~ 8.5 V 程度
  ● 出力最大電流値     :3.0 Aまで
  ● 逆接続防止ダイオードを入れて有ります。
  ● モーターON/OFF タイム :0.1 秒 ~ 7.80 秒程度
  ● 基板サイズ:横 74.8mm x 縦 57.8mm x 厚さ 29

 半固定型のボリュームを基板上に配置しています。又、チップ型部品を使っています。
 使い方は、バッテリー端子、モーター端子に電線を接続するだけです。
 後は、基板上のボリュームを調整して下さい。
 低価格にする為に、ケースは付属していません。タッパーなどに収めて使用して下さい。

[ 外観図 ]



2015年6月19日金曜日

V1.5 モーター・コントローラー

 私のブログの読者から V1.3 の改造の要望があったので、新しいタイプのコントローラーを作って見ました。
基本的仕様は、以下の通りです。

● PIC マイコンに依るコンピューター制御をしています。
● モーター電圧調整範囲 :2.5 V ~ 8.5 V 程度
● 出力最大電流値     :3.0 Aまで
● 逆接続防止ダイオードを入れて有ります。
● モーターON/OFF タイム :0.1 秒 ~ 7.80 秒程度
● 永久磁石による原点停止モードを採用。
● モード設定(3つのモードを切替えスイッチに依って切り替えます。) 
   1.間欠タイマーOFFモード(モード切替えスイッチをOFFにする。)
       △OFFタイム設定ボリュームをゼロ(左側いっぱいに回す・・・0秒)にする事に
           依って、間欠タイマーはOFFになります。単純にモーターが回転するだけです。
  2.通常間欠タイマーモード(モード切替えスイッチをOFFにする。)
       △ON/OFFタイム設定ボリュームで時間を設定する。
           ON/OFFタイム設定ボリュームをゼロにしない事。   
  3.原点停止モード(モード切替えスイッチをONにする。)
      △原点に来た時、モーターが停止します。
          OFFタイム設定ボリュームに依って、停止時間を設定します。
         (最低停止時間は、約0.1秒です。)
     △ONタイム設定ボリュームは無効です。

■ ケースの大きさ  ( サイズ:縦 114mm x 横 81mm x 厚さ 39mm)
   V1.3 と外観は同じですが、電子回路基板の中身が違います。
●左側のプラスチックケースは本体電子回路ボックスです。
●真ん中の黒いのはボリュームです。 
●右下の四角いのが原点センサーです。 
●右の真ん中に有るのがモード切替えスイッチです。

[ 外観図 ]

2014年9月19日金曜日

「モーター・コントローラー V4.3」のサンプル動画


前回の投稿記事の中のサンプル・プログラムを見ただけでは、何とも言えないので、
動画をYouTubeにアップしました。
下記画像を見ると、原点センサーとして「リード・スイッチ & ネオジム磁石」を組合わせた物を使用しています。
簡単で安価なので採用しました。




2013年11月9日土曜日

「 モーター・コントローラ V4.3 」 新製品

 以前に私のブログをご覧になられた方のご意見を参考にして製作しました。
 間欠タイマーとDC/DCコンバーターを組み合わせたものです。

 液晶表示機能を付けたリモコンタイプ(有線方式)のモーター・コントローラーです。
又、動作をプログラムする事に依って、自由自在にコントロールする事が可能です。
リモコン・ユニットから本体ユニットへプログラムを転送します。
その後は、リモコン・ユニットを外して本体ユニットのみで動作が可能です。
プログラムは決められたプログラム・パターンの内容を書き換える方式ではありません。
自由にプログラムを作成し、そのプログラムがしゃくり動作に反映されます。

【 特徴 】
 ● PICマイコンを2個使用しています。
 ● 完全プログラミング方式です。(コマンド数は、10個です。)
   ○ 6パターンまでプログラミング可能です。
     △ ロング・プログラム (32ステップ以内)は、3本まで可能。
     △ ショート・プログラム( 8ステップ以内)は、3本まで可能。
   ○ 設定項目
     △ モーター電圧設定:3.0V ~ 10.0V 程度。
     △ 正回転、逆回転設定可能。
     △ モーターオンタイム、モーターオフタイム設定:0.1秒 ~ 10秒程度。
     △ 原点復帰モード設定:正回転復帰モード、逆回転復帰モード。
     △ 回生ブレーキ設定可能(ON / OFF)。
 ● 電源を切ってもプログラムは記憶されています。
 ● 本体ユニット、リモコンユニットを有線で接続します。
   本体ユニットだけでコントロール可能です。(但し、1プログラムのみ可能です。)
 ● バッテリー接続時、+、-を間違えて電子回路が破壊しない為の逆接続防止回路を入れています。


【上記左側の画像について】
 左側から「本体ユニット」、「GO/STOPスイッチ」、「原点センサー」、「リモコン・ユニット」 
【上記右側の画像について】
 リモコン・ユニットの液晶表示機です。

「モーター・コントローラV4.3 本体」と「リモコン・ユニット」をケーブルで接続します。
 リモコン・ユニットに記憶している6個のプログラムの内の1つを本体ユニットにデータ-を
 転送します。その後、本体ユニットにプログラムを記憶して、プログラムを実行します。
 以後、リモコン・ユニットを外して本体ユニットだけでプログラムを実行・停止出来ます。
 この場合、本体にあるGO/STOPスイッチに依ってコントロールします。
       
 ちょっと複雑なしゃくり・パターンも実行できます。
 又、プログラムによって、途中のスピードを変化させる事も可能です。 
 一度設定したプログラムは、電源を切ってもメモリーに記憶している為、次回に使用する時は、
 プログラム番号を選択して実行するだけです。
 プログラム・コマンドの組合わせによって、しゃくりパターンを設定する事が出来ます。
 プログラム・コマンドは、10個しか無いので簡単です。
 原点センサーを使用しないコマンドで動作させた場合、単純なON/OFF動作をします。
 これを「フリー・モード」と呼んでいます。
 原点センサーを使用するコマンドで動作させた場合、毎回、決まった位置(原点)から
 動作パターンを実行します。これを「原点復帰モード」と呼んでいます。

▲「フリー・モード」とは?

 モーター電圧、モーターONタイム、モーターOFFタイムなどをプログラムに従って実行します。
 原点位置からスタートしない為、釣竿の上げ、下げが決まった動作をする訳ではありません。
 言い方を替えると、釣竿の上げ、下げがランダムな動きをします。

▲「原点自動復帰モード」とは?

 △ 原点とは?
   釣竿が一番下に下がった位置です。この為にリード・スイッチと永久磁石を組合わせた
   センサー・スイッチを取り付けています。
 
 △ リード・スイッチとは?
   永久磁石を近付けると動作する簡単なスイッチです。
   防犯用ドアー・スイッチ、防犯用窓用スイッチなどに使われています。
 
 △ 動作モードについて
   釣竿が原点に無い場合、一旦、原点に戻ってから動作を開始すると、毎回、同じ動作
   パターンをさせる事ができます。
   その為に、自動的に原点に戻るようにするプログラム・コマンドです。

 ※ ご希望の方に製作販売いたします。
   価格など詳しくは、メールでお問い合わせ下さい。

新型「モーター・コントローラ- V2.3」

 自動しゃくり機ユーザーからの要望により、超小型タイプを製作しました。
 V2.3の基本的な仕様を下記に示します。

【特徴】
 「DC/DC コンバータ」 と 「間欠タイマー」 と「液晶表示機」を組み合わせた物です。
 設定項目を液晶表示機で表示します。
 設定は、各ボリュームで調整します。「スタート・スイッチ」で動作を開始、停止をします。
 常に、リアル・タイムで時間を調整出来ます。
 又、リアル・タイムで「モーター電圧」、「バッテリー電圧」を表示しています。

 ● PIC 16F1823 使用
 ● 大きさ 72(幅) x 160(高さ) x 49(厚さ) (突起物を含まない)
 ● モーター電圧調整範囲   : 3.0V ~ 10V 程度
 ● モーター・ON・タイム    : 0.2秒 ~ 9.5秒まで
 ● モーター・OFF・タイム   : 0.2秒 ~ 9.5秒まで
 ● 「モーター電圧」、「バッテリー電圧」、「ON タイム」、「OFF タイム」、「動作」 を液晶画面に表示します。
 ● モーターが停止する時、回生ブレーキが掛かります。
 ● バッテリー接続時、+、-を間違えて電子回路が破壊しない為の逆接続防止回路を入れています。



















 ※ ご希望の方に製作販売いたします。
   価格など詳しくは、メールでお問い合わせ下さい。

新型「モーター・コントローラ- V1.3」

 自動しゃくり機ユーザーからの要望により、超小型タイプを製作しました。
 間欠タイマーとDC/DCコンバーターを組み合わせたものです。
 基本的な仕様を下記に示します。

● PIC マイコンに依るコンピューター制御をしています。
● モーター電圧調整範囲 :3.0 V ~ 10 V 程度
● 最大負荷電流     :3.0 Aまで
● モーターONタイム   :0.1 秒 ~ 7.80 秒程度
● モーターOFF タイム  :0.1 秒 ~ 7.80 秒程度
● バッテリー接続時、+、-を間違えて電子回路が破壊しない為の逆接続防止回路を入れています。

  ※ モーターが‘ON’から‘OFF’に切り替わる時、モーターにブレーキが掛かります。
    これを「回生ブレーキ」と、呼びます。この機能を使う事に依って、モーターに
    急ブレーキが掛かり、しゃくり動作に“アクセント”が付きます。
  ※ 通常、自動しゃくり機のサイクル・タイムは、4秒 ~ 7秒程度です。
  ※ ON/OFF タイムはお客様のご要望時間に設定する事が可能です。
(標準的に7.8秒に設定しています。)

■[ 概略図 (一体型タイプの場合)]


■大きさ(一体型、分離型)
 取り付けスペースの都合に依って、一体型モーター・コントローラーが取り付け出来ない場合、
 ボリューム、スイッチなどを本体ユニットから分離して配置する分離型の製作も可能です。
 この場合、本体のケース・サイズもほぼ同じです。
 ( 一体型サイズ:幅38 x 高さ110 x 奥行き72 ボリューム等の突起部分を含まない。 )
 ( 分離型サイズ:幅38 x 高さ 90 x 奥行き73 空いている場所に配置して下さい。)

 ※ ご希望の方に製作販売いたします。
   価格など詳しくは、メールでお問い合わせ下さい。
 

2012年7月5日木曜日

モーター・コントローラー V2.0

以前に「しゃくり機用 間欠タイマー」を公開しましたが、その後、機能別に数種類の「間欠タイマー」を製作しています。
そこで、機能別に「バージョン 番号」を付けて区別する事にしました。又、名前を「しゃくり機用 モーター・コントローラー」と、呼ぶ事にしました。 バージョンは、 V1.0 ~ V6.0まで有ります。以前にブログで紹介した物は、「モーター・コントローラー V1.0」です。 同じバージョンでも使用するPIC マイコンの種類が違う事があります。それは、、機能を拡張する事に依って PIC マイコンの処理能力が違ってくるからです。 又、それぞれの処理をPICマイコンに受け持たせる為、1個~4個のPICマイコンを使用する事も有ります。 最近、私のブログをご覧になった方から「しゃくり機用 モーター・コントローラー」を作って下さい・・・。と、云う依頼が多数来ました。そこで、「モーター・コントローラー V2.0」 を製作する事にしました。 又、これ以外の製作依頼も来ています。
◆ 基本構成
「DC/DCコンバータ」「間欠タイマー」の二つの電子回路を組み合わせてコントロールしています。
 ◇「DC/DC コンバータ」 モーターに掛かる電圧をコントロールする為に、「DC/DC コンバータ」 と呼ばれる 「電圧変換器」 を使用して、モーター電圧を変化させてモーターのスピードを可変するものです。 電圧変換効率が高いので、殆ど発熱しません。又、バッテリーの消耗が少ないです。低価格です。
 ◇「間欠タイマー」 ボリュームの電圧をAD変換して、その値をモーターのON・タイム、OFF・タイムに割り当てて動作時間を設定出来る様にしています。 液晶表示機の表示桁数の制限に依って、設定出来る時間の最大値は、9.5秒です。 
■ 「モーター・コントローラー V2.0」 
「DC/DC コンバータ」「間欠タイマー」「液晶表示機」を組み合わせた物です。設定項目を液晶表示機で表示します。 設定は、各ボリュームで調整します。「タイマー・スイッチ」で動作を開始、停止をします。 常に、リアル・タイムで時間を調整出来ます。 又、リアル・タイムで「モーター電圧」「バッテリー電圧」を表示しています。
 【 特徴 】
  ● PIC 16F1823 使用 (内部固定リファーレンス電圧 FVR を使用しているので、電圧校正が
       簡単です。)
  ● 大きさ ( ハガキ・ケースを流用しています。 )
  ● モーター電圧調整範囲   : 2.5V ~ 10V 程度
  ● モーター・ON・タイム    : 0.2秒 ~ 9.5秒まで (モーターが回転する時間)
  ● モーター・OFF・タイム   : 0.2秒 ~ 9.5秒まで (モーターが停止している時間)
  ● 「モーター電圧」、「バッテリー電圧」、「ON タイム」、「OFF タイム」、「動作」 を液晶画面に
       表示します。
  ● モーターの動作をリレーに依って切り替えています。
  ● モーターが停止する時、回生ブレーキが掛かります。
  ● バッテリー接続時、誤って+、-を間違えて電子回路が破壊するのを防止するダイオードを
       入れています。


液晶表示したサンプル・データ













2012年1月31日火曜日

LED 間欠表示器の製作

PIC 16F1823 の基本設定 
  
最近、色々な種類のPICデバイスが発売されています。又、安い価格で販売されています。
この様な新しいPIC デバイスを使おうとすると、どの様にしたら良いか迷ってしまいます。
Web上で検索して、情報を集めて使い方を調べる方法が有りますが、万全ではありません。
  
そこで、データ・シートを頼りに使い方を調べる事にしました。
使うデバイスは、'PIC 16F1823' です。
このデバイスは、14PINの中規模デバイスです。
  
まず、最初にする事は、'CONFIG’ワードの設定です。このCONFIGワードは、
データ・シートには記載されていません。
では、どの様にして調べると良いのでしょうか?
それは、'HI-TECH C’プログラムの中の 'include’フォルダーの中のファイルを調べる事です。
デバイス毎の'h'ファイルが有るのでメモ帳などで開いて見ます。
PIC 16F1823は、'pic16f1823.h'です。
  
それぞれ、#define 命令等で定義されているのが分かります。
  
CONFIGワードは、以前の設定方法とは、異なり、'***_ON''***_OFF'と、云う記述になっています。
  
* 回路図

  
次に、オシレータの設定をします。これには、データ・シートの'OSCCON' レジスターの設定を見ます。
  
  
次に、I/Oの設定をします。
  
 ■ TRISA,TRISC の入出力設定をします。
   I/O ポートの設定をします。
  
 ■ アナログ・チャンネルの設定をします。'ANSELA'、'ANSELC'レジスターを参照します。
   設定を'1'にすると、アナログ・チャンネル'ON'
      設定を'0'にすると、デジタルに設定されます。
  
  
  
次に、'A/D CONTROL REGISTER 0' を設定します。'ADCON0' レジスターを参照します。
  
  
このレジスターの 'bit1' の名称が 'GODONE' になっていますが、仕様が変更されているので使えません。
'GODONE' は、A/D変換開始(A/D変換終了フラグ)ビットなのですが、どの様に変更されたかを見てみます。
それには、'pic16f1823.h'の中の'ADCON0 'の設定項目を見ます。
  
  ■'GO_nDONE'
 ■'GO'
 ■'nDONE'
 ■'ADGO'
  
この4つのキー・ワードが使えます。
  
  
次に、'A/D CONTROL REGISTER 1' を設定します。'ADCON1' レジスターを参照します。
  
  
これで、主な設定が済みました。後は、プログラムを組むだけです。
  
その他のデバイスも同様な方法で設定すれば、'OK'です。
データ・シートさえ有れば、基本設定が出来る様になります。

楽釣工房・ホームへ戻る ] [ ホーム・ページ  楽釣119 へ移動 ] 
    

2012年1月6日金曜日

MPLAB IDE のアップ・デート

私が MPLAB IDE を久しぶりにアップ・デート(V8.60 から V8.80へ)して、以前に作成したプロジェクトを開こうとしたが、エラーが出て開く事が出来ませんでした。(MPLAB IDE プロジェクトのアイコンをダブル・クリックする。)
又、MPLAB IDE を起動して、プロジェクトを開こうとしても、エラーが出てプロジェクトを開く事が出来ませんでした。
同じようなプロジェクトを作成した類似プログラムでテストしてみると、開けるプロジェクトと、開けないプロジェクトが有りました。
このプロジェクトの違いを調べて見ても、変数の設定等が違うだけでした。
何か分からないけれど、バグが有りそうです?
この様な状態なので、最初からプロジェクトを作成しなければならないのかと心配しました。
  
そこで、色々、試しているうちに、簡単に修正する方法を見つけました。画像は、サンプル・プログラムです。
  
 
 


MPLAB IDE V8.60  のプログラム"LCD 16F886" を例題にしています。
  
■ まず、MPLAB IDE を起動します。
  
■ ① の目的のプロジェクトで使われているファイルを開きます。表示される全てのファイルを開きます。
  
■ ファイルを開くと、エディター画面に選択したファイルが表示されます。
  
■ ② の、目的のプロジェクトを開きます。
  
■ これで、目的のプロジェクトを開く事が出来ました。
  
■ 但し、このままでは、コンパイルしてもエラーが出ます。それは、V8.66? 以降、仕様が変更されているので、エラーが出ます。
これを回避する為に、'C' ファイルの先頭に次の一文を追加します。プログラムの途中は、無効です!。
  
#define _LAGACY_HEADERS
  
これで、旧バージョンのファイルをコンパイルする事が出来ます。
  
又、別の方法として、HI-TECH C コンパイラーのバージョンを切り替えて、コンパイルする方法も有ります。
私のブログ記事の "HI-TECH C のバージョンの切り替え方" を参照して下さい。
  
■ 一度コンパイルしてプロジェクトを保存すると、次回からは、普通にプロジェクトを開くことが出来ます。
   
■ もし、上記のやり方でコンパイルエラーが発生した場合、プロジェクトを新規に作成する必要があるかも知れません。

せっかく作成したプロジェクトを無駄なく使いたい物です。
  
ちなみに、下記画像は、私がインストールしている'HI-TECH C コンパイラー'のバージョンです。
  

  
次の2つの画像(新・旧2つのバージョン)を比べて下さい。'CONFIGワード'の設定法が違います。
詳しい事は、新しいバージョンのデバイスごとのインクルード・ファイルを開いて見ると、分かります。
  




楽釣工房・ホームへ戻る ] [ ホーム・ページ  楽釣119 へ移動 ]  

2011年12月25日日曜日

ワイパーモーターの間欠タイマー

私のブログ、「ワイパーモーターの電圧制御」を見た読者の方が
「私には作れないので是非、完成品を譲って欲しい・・・」と、依頼を受けました。
「途中で止まる様に間欠タイマーを入れて欲しい・・・」等の要望も有りました。

私は、この様な物を設計して作るのが好きなので、依頼を受ける事にしました。
勿論、使用する目的は、魚釣り用しゃくり機です。

写真を見て下さい。上側のプリント基板は、PIC マイコンを使用した、”間欠タイマー” です。
下側のプリント基板は、”DC/DC コンバータ”です。キット製品を組み立てた物です。

この2つの回路を組み合わせて、モーターの電圧制御(スピード・コントロール)、
動作を間欠タイマーに依って、制御します。

 

間欠タイマーの仕様

■ PIC マイコン '10F222' を使用しました。米粒タイプ。
A/D コンバータ 2 チャンネル。
リレー・コントロール 1 チャンネル。
■ モーター・オン・タイマー
0.25 ~ 13.0(秒)ボリュームにて調整する。
■ モーター・オフ・タイマー
0.25 ~ 13.0(秒)ボリュームにて調整する。
■ モーターに掛かる電圧を ON/OFF するのにリレーでコントロールします。
又、モーターが惰性で回転するのを防止するために、回生ブレーキを掛けています。

基板上のショート・ピンを外し、特別に作製した電線を接続し、更に、
PIC マイコン・ライターに接続して、プログラミングします。
PIC マイコンは、基板の裏側にある為に見えません。

DC/DC コンバータ について

秋月電子で販売されていた物です。他の DC/DC コンバータと同様の物です。
出力電流が異なるだけで、基本的に同様の物です。
使い方は、通常の使い方では無く、変則的な使い方をしています。
この使い方に依って、電圧を 2V 程度まで絞る事が出来ます。

ワイパーモーターについて

私が所有しているワイパーモーターを調べた処、コネクターの配線の仕方が 2種類あるようです。
下記の画像がその内の1つです。このタイプが多かった。
(画像は、無料ソフト 'Google SketchUp 8' で作成。)





又、内部のロータリー接点は、次の様に動作します。
ワイパーモーターが定位置で止まる為の'原点位置検出'。'原点位置'に来た時に、
モーターが惰性で回転するのを防止する為に、回生ブレーキを掛ける事です。

 試験結果 

依頼を受けて製作しましたが、調整範囲が広いので使い慣れるまで時間が掛かりそうです?・・・
アナログ的に調整するタイプの'コントローラー'なので、自由度は高いと思います。
原点位置に停止する'間欠タイマー'を今回は採用しませんでした。

急いで作った為、完成後に気が付いたのですが、リレー、DC/DC コンバータ を使わずに
'ハーフ・ブリッジ・ドライバー’PIC マイコンを使用してデジタル的にコントロールする方法を
思いつきました。
デジタル的にコントロールする為、設定した数値を記憶して、次回にそのまま使用する事が出来ます。
考えるたびに、色々なアイデアが頭に浮かんで来ます・・・。
その内に、これを製作して公開する機会があると思います。


楽釣工房・ホームへ戻る ] [ ホーム・ページ  楽釣119 へ移動 ]

2011年12月16日金曜日

ワイパーモーターの電圧制御②

以前紹介した 'ワイパー・モータの電圧制御 / 定電圧インバータ制御'に使っていた秋月電子で発売していたDC/DC コンバータ・キットが発売を終了した模様なので、他に販売されている単体モジュールをテストして見ました。
  
ここで紹介する DC/DC コンバータ・ユニットを使う目的は、ワイパー・モータのスピードを可変するものです。
    


■ HRD05003E <5V 3A> 定電圧安定化電源 ( 通称 DC/DC コンバータ )
  
 ◇ 入力電圧(Vin)  : 8 ~ 40 [V] 
 ◇ 出力電圧(Vout) : 5 ~ (Vin-3V) [V]( 出力電圧可変可能 )
 ◇ 出力電流(Iout) : 0 ~ 3 [A]
 ※ 12V のバッテリーに於いて、出力電圧を 5V ~ 9V の範囲で可変します。
  

  
■ 部品表 ( 秋月電子にて部品調達 )
  
 ○ HRD05003E       : 300円
 ○ 電解コンデンサー (470μF 25V)×2 : 20円 × 2 =  40円
 ○ セラミック・コンデンサ- (0.1μF 50V)×2 : 10円 × 2 =  20円
 ○ ターミナル・ブロック 2P × 2 : 20円 × 2 =  40円
 ○ ターミナル・ブロック 3P × 1 : 30円
 ○ ボリューム 100kΩ × 1 : 50円
 ○ ボリューム用ツマミ × 1 :20円
 ○ プリント基板(自作 or ユニバーサル基板を使う)
  
 [合計 500円 + プリント基板]
  

  
■ プリント基板
   
 ここで使用している基板は、生基板をPCカッターでプリント・パターンをカットして作成しました。
簡単なパターンなので、ポジ感光基板等を使うまでもありません。
  


 [ テスト結果 ] 
  
 以前に紹介した物と同じ結果が出ました。
問題なくワイパー・モータのスピードをコントロールする事が出来ます。
作るのが面倒ですが、価格が安いので安心して使用できます。
   
楽釣工房・ホームへ戻る ] [ ホーム・ページ  楽釣119 へ移動 ]
 

2011年11月13日日曜日

PIC マイコンによる温度制御 / PIC16F886

低価格の”超小型アナログ温度センサーIC”を使って、温度監視装置を作って見ました。

秋月電子で,販売されている ’MCP9700-E/T0’ ( 8個で200円 ) を使って見ました。
この ICは、それ程、精度が良くありませんが、PICマイコンに直結して使う事が出来ます。
温度監視がどの程度働くかを、確かめる為の実験です。

主な特徴は、

■ 電源電圧 : 2.3V ~ 5.5V
■ 低消費電流 : 6μA
■ 測定温度範囲 : -40度 ~ +125度
■ 精度 : ±2度(最大)、0度 ~ +70度
■ 出力電圧 : -40度(100mV) ~ 0度(500mV) ~ +125度(1,750mV),(10mV / 度)


PIC マイコン16F886 を使って、温度制御をします。

■ アナログ・チャンネル : AN0(RA0)
■ レファレンス電圧 : Vref+(RA3),(2.048V :2mV / カウントに設定する。)
■ LCD表示器用出力 : B-PORT(8bit)
■ 温度監視出力、及び警報 : C-PORT


レファレンス電圧の為に、基準電圧IC等を使いません。又、このPIC マイコンのVref+ 電圧は、Free 設定である為、十分に安定化された電源を、VRなどで分圧して基準電圧を作ります。但しVref+ 電圧の最低電圧は、2.2Vと規定されていますが、実験の結果、Vref+ 電圧 2.048V でも問題有りませんでした。
PIC マイコンの種類に依っては、Vref+ 電圧 :1.024V 、Vref+ 電圧 :2.048V 固定で使える物が有ります。
温度監視するIC自体、精度が良くありませんが、VRで調整するだけでもおおまかな温度監視は、出来ます。



[ LCD 表示 ]

上段=測定温度
下段=左:下限温度(HEATER ON)、中:設定温度(HEATER OFF)、右:温度異常警報

[ ブレッドボード ]

左ボタン:下限温度設定(UP,DOWN)
中ボタン:設定温度(UP,DOWN)
右ボタン:温度異常警報(UP,DOWN)



[ 設定の仕方 ]

まず、温度センサーとVR2を交換します。
A点とアース間にテスターを接続します。
電圧値を 2.048V になるように、VR1で設定します。
テスターを B点に移動します。
電圧値が 0.5Vになるように、VR2で設定します。
この時の LCDの温度が '0度'と表示されるのを確認します。
テスターの精度が良く無いと、表示がばらつきますが、VR1を調整して、何度か繰り返して大体の値になるようにします。
次に、テスターの電圧値が 1.0Vになるように設定します。
この時の LCDの温度が '50.0度'を表示されれば調整完了です。

実際に使用してみると、+0.8度程度の誤差でした。(0度 ~ 50度の範囲に於いて)



[ 使用目的 ]

■ 熱帯魚水槽の水温制御。

■ 石油ストーブによる室内暖房の夜間室内温度を管理する。
ストーブの運転 ON/OFF (最小燃焼モードで運転)。
寒冷地に於いて、夜間ストーブの運転をOFFする事が無いのです。
ストーブに付いている機能で、'セーブ運転'が有りますが、省エネ・モードと言えるのか疑問です。そこで、この装置を使って室温をコントロールします。

楽釣工房・ホームへ戻る ] [ ホーム・ページ  楽釣119 へ移動 ]

2011年10月12日水曜日

HI-TECH C のバージョン切り替え

HI-TECH C プログラムの新しいバージョンが公開されてインストールする場合、
普通、旧バージョンを削除してから新しいバージョンをインストールすると思いますが、これに関する記事を探したところ、何処にもありませんでした。
そこで、最新版の HI-TECH C プログラムを、そのままインストールすると、どうなるかを試してみる事にしました。
すると、新旧のプログラムが存在したままインストールされる事が分かりました。これは、一体どう云う事なのかを調べて見ました。

HI-TECH C PIC18 のインストール も参考にして下さい。
  
MPLAB IDE を起動して、各項目を調べてみると、分かりました。!
新旧のバージョンを切り替えてコンパイラー・プログラムを動作させる方法が有ります。
従って、旧バージョンを削除する必要が無いのです。
又、最新版をインストールすると、優先的に使用される様になります。
  
コンパイラー・プログラムにバグがあって信頼性が低い場合、この時は、旧バージョンを使うしか有りません。
この様な時に、バージョンの切り替えが必要になって来ます。
  
 [ 切り替え方 ] 
まず、作成済みのプロジェクトを開きます。
PIC18F2420 を使用しています。 従って、PIC18 を例題にして話を進めます。)
  

  
赤枠の歯車マークの ”Build Options” ボタンを押します。
すると、次のウインドウが表示されます。
  
  
”Driver” タブを選択します。
赤枠の中のプログラムに注目して下さい。
今までに、インストールした "HI-TECH C" プログラムがリスト・アップして有ります。
  
  
 一番上に表示されているのが、 最優先されます。 
  
一旦、ウインドウを閉じて、コンパイルします。

  
コンパイルした結果を見て下さい。
赤枠の中に "HI-TECH C" プログラムのバージョンが表示されています。
  
又、先ほどのウインドウを開きます。
次に、旧バージョンに切り替えてみます。
  
  
赤い矢印のプログラムを最上段に移動するために、目的のプログラムをマウスでクリックして選択します。
次に、 ”Move up” 又は、"Move to top" ボタンを押して移動します。

  
目的のプログラムが最上段に移動しました。
”適用”  ”OK” ボタンを押して、このウインドウを閉じます。
次に、コンパイルします。
  

コンパイルした結果を見て下さい。
赤枠の中に "HI-TECH C" プログラムのバージョンが表示されています。
  
旧バージョンでコンパイルされたのが、分かります。
新しいバージョンの方が、プログラム・メモリの消費が少ないようです?・・・
  
この様にして、古いバージョンを削除すること無く、最新バージョンをインストールし、混在したままで必要に応じて
バージョンを切り替えて使用する事が出来ます。
  
楽釣工房・ホームへ戻る ] [ ホーム・ページ  楽釣119 へ移動 ]

2011年10月11日火曜日

HI-TECH C PIC18 のインストール

最初、MPLAB IDE  ( PIC10/12/16 MCUs ) をインストールしますが、その内にPIC18 
必要になって来ます。
そこで、PIC18 のダウンロードの方法と、インストールの方法を説明します。

まず、最初にマイクロチップ社のホーム・ページを開きます。


次に、右上にある言語ボタンの「日本語」を押して、日本語表記にします。

PIC18 をダウンロードする為に、ユーザー登録をしなければなりません。
そこで、 ”myMicrochip Login をクリックしてログ・イン・ページに移動します。


ユーザー登録をする為に、 ”register now" のリンクをクリックします。


ユーザー登録ページが表示されました。
各欄は必須項目です。


会社名は、適当な名前でも大丈夫です。その他の項目も適当に選択して下さい。
”次へ” をクリックして、確認画面に移動して、間違いがなければ ”OK” を押します。
これで、ユーザー登録が終わりました。

最初に表示したページに戻ります。
このページの  の部分の "開発ツール" ”コンパイラ” をクリックします。
  
ページが移動しました。
このページにある ”PIC18 MCUs  の PRO" の ”HI-TECH C ” プログラムをダウンロードします。
後で説明しますが、どのモードをダウンロードしても構いません。
  

では、"HI-TECH C" をクリックします。ダウンロード・ページに移動します。
先程、ユーザー登録を完了したので、 の処にユーザー名が表示されています。
を押してダウンロードします。
    
  
ダウンロードが終了して解凍すると、デスクトップにホルダーが作られて、その中に、 "PICC_18_9_80_WIN" と云うプログラムが有ります。( OS が Windows の場合 )
このプログラムのアイコンをダブル・クリックします。
すると、インストールが開始されます。

2011年9月28日水曜日

delay タイムの使い方 / MPLAB IDE


プログラムを作成する時、タイミング等を合わせる為に wait time を挿入する事は良くある事です。
又、アッセンブラーでプログラムを作成するとなると、タイミング時間を入れる為にステップ数を計算してプログラムしなければなりません。
しかし、手計算でする為、間違いが良くあります。
ところで、C 言語でプログラムする時は、delay time の関数が用意されているので、それを利用することができます。設定は、簡単です。
次の一文を書いて、delay time の関数を使えるように宣言します。

  #define _XTAL_FREQ 4000000  // オシレータ周波数 4Mhzの場合

関数は、

  __delay(1000);    // 1000命令サイクル遅延する

  __delay_us(400);   // 400 μs( マイクロ秒 )遅延する

  __delay_ms(10);  // 10 ms ( ミリ秒 )遅延する

上記の3個があります。但し、制限が有ります。(上記の括弧内の数値は例です。)
それは、オシレータの周波数によって、ディレータイムに上限がある事です。
次の表を見て下さい。

動作周波数最大時間__delay_ms(x)__delay_us(x)
20Mhz39,424μs__delay_ms(39)__delay_us(39424)
16Mhz49,280μs__delay_ms(49)__delay_us(49280)
10Mhz78,848μs__delay_ms(78)__delay_us(78848)
8Mhz98,560μs__delay_ms(98)__delay_us(98560)
4Mhz197,120μs__delay_ms(197)__delay_us(197120)

それ以上のディレータイムが必要になる時は、 for 文、while文 などによるループ・プログラムを
作って実現するか、自分でループ・プログラムを作成してディレイ・タイマーを起動する等します。

又、 関数の括弧内に変数を使う事ができません。数値のみです。

次に、サンプル・プログラムを表示します。
このプログラムは、一定時間ごとにLEDランプなどを表示させる単純なプログラムです。
    
赤枠の中のプログラムを見て下さい。
10ms のディレイ・タイム遅延を行っています。これを while によって mt 回繰り返します。
  
wait_time(50);          // wait time = 10 * 50 =500 ms
  
    
又、for 文でプログラムする時は、 赤枠部分の文と、次の文を入れ替えて下さい。
    

どちらも同じように動作します。
これらのプログラムをコンパイルすると、どうなるかを比べて見みます。

while文の場合(プログラム・メモリー 59ワード)
  
 for 文の場合( プログラム・メモリー 66 ワード )


と、なります。

プログラム・メモリーの消費の仕方が違います。

小規模のプログラムでは、問題になりませんが、複雑なプログラムを作成する時に、このような
サブルーチンを多用するとプログラム・メモリーが不足してきます。
効率良くプログラムを作成する為に、普段から心がける事が必要です。

 [ 効率良くプログラミングする為のヒント ] 

プログラムで使用する変数のデータ型について、普段、気にしないで使われていると思います。
PIC マイコンがプログラム内の変数を参照するために、1 バイト・データ形式の場合、1 バイト分の領域を確保します。
又、4 バイト・データ形式の場合、4 バイト分の領域を確保します。
ところが、1バイト・データを扱っているのに、4バイト分の領域を確保するとどうなるでしょうか?・・・
それは、マイコンが4 バイトのデータを参照する事になり、時間が掛かります。
こんな事では、高速動作をさせたりする事が難しくなります。
又、プログラム・サイズも大きくなってしまいます。
   
unsigned int ・・・・;    4バイト幅のデータ型に宣言。実際は、1バイト幅のデータで済む・・・
  
unsigned char ・・・・;  この、1バイト幅のデータ型に宣言するのが正しい。           
   
そこで、扱うデータのサイズを正しく把握して、データ型を正しく宣言してプログラミングすることが必要です。