. PICを使ったお手軽回転数計 - disklessfun’s Wiki*
PICを使ったお手軽回転数計 - disklessfun’s Wiki*
PICを使ったお手軽回転数計 - disklessfun’s Wiki*

PICを使ったお手軽回転数計

(2015-11-25) ブレッドボード上ですが、新板を作成しました。自分で(赤外線)LED発光し反射を受信して回転数を計測、CCP(ハードウェア)計測、計測可能最低回転数チェックあり、パルス(羽根の枚数)設定変更ボタンあり、ホールドボタンあり、LED発光強度変更機能あり、という仕様です。 クリックすると大きな画像で表示されます ほぼ同時に作成した と異なり、回路が少し複雑でブレッドボードの写真だけでは回路を示せないので を作成しました。

  • 赤外線LEDは余計な赤外線が関係ない方向に行かないように緑のテープで周囲を覆っています。
  • 本来なら(基板に作りこむなら)、赤外線LEDと赤外線リモコン受信モジュールは出来るだけ近い位置に設置すべきです。
  • 赤外線LEDの出力調整は5kΩの半固定抵抗でおこないます。出力はあまり強くなくて済む場合が多いので5kΩの可変抵抗で適切と言えます。
  • 赤外線リモコン受信モジュールの周辺にはデータシート推奨のノイズ除去回路を組んでいます。スイッチング電源の場合、通常、ノイズ除去回路は必須です。私の認識では、赤外線リモコン受信モジュールの周囲にノイズ除去回路が要らないのは、電池からの直接駆動かUSB電源の場合のみです。
  • PIC12F683を2個使います。
  • (今の目からは機能貧弱ですが、秋月ライタ等旧形式のライタで書き込めるという大きなメリットを持つ)10年選手のPIC12F683をもう一度見なおしてみようというのも今回の目的の一つです。
  • I2C機能のないPIC12F683ですが今回、秋月のI2C液晶をソフトウェアで操作するライブラリを作成しました。後閑さんのHI-TECH C用ソフトウェア・I2C液晶操作関数 をXC8用に修正し、さらにそれとiwamotoさんのストロベリーリナックス用I2C液晶操作関数 をマージし、さらに秋月のI2C液晶用に修正したものです。
  • I2C液晶に、現在設定されている、1回転あたりのパルス数(羽根の枚数)、回転数(rpm)を表示します。
  • 両チップとも同じ向きで、ピン1が左上でです。
  • 上側のチップは単に38kHzの方形波を発生するだけの役割です。
  • 下側のチップは8ピン全て使用しています。ピン3が赤外線リモコン受信モジュールからの入力ポートです。同モジュールを用いることで、環境光による誤反応を効果的に抑制することができます。
  • ピン4は1回転あたりのパルス数(羽根の枚数)設定ポートです。ボタンを押す度に2,5,7の順に設定パルス数が変更されます。
  • ピン2はホールドボタンです。トグル式ボタンです。ホールドモードに入った場合は、ボタンを押した際の計測値表示を保持し続けます。
  • ピン5はCCP1モジュールによる回転数計測ポートです。ピン6、ピン7は夫々I2CのSCL,SDAです。
  • ピン4はチップの仕様上、内部でプルアップできませんので10kΩの抵抗でプルアップしています。
  • I2C液晶は秋月の です。
  • 本来プッシュボタンは2個付くのですが、写真では1個しか付いていません。テストの際は必要が生じる度に必要なポートにスイッチを移動させてしのぎました。
  • 写真のブレッドボードでは電源アダプターから5Vを取得していますが、基板上に作りこむなら当然、電池駆動方式にするべきだと思います。電池1本か2本と なんかを組み合わせるといいと思います。
  • ファームウェアではメインループでソフトウェアI2C通信しているのに割り込みを多用しているので、液晶に時たま一瞬、化け文字が表示されます。
  • ファームウェアには回転数表示では通常おこなう、なめらか化処理を組み込んでいません。というのは、扇風機等、障害物(ガード等)越しに計測する場合等は頻繁に誤反応が生じます。そのような状況ではなめらか化処理はおこなえないからです。
  • 頻繁に誤反応が発生する場合でも人間の眼でどれが正しい測定値か識別できるように、測定間隔を0.4秒ほどと、かなり長くとっています。
  • 頻繁に誤反応が発生する場合でも、目安としては、3回続けて一定の値が表示されたなら、それが正しい測定値だと判断できます。
  • 照射光が38kHzのパルスなので高回転時の精度には弱点があります。高回転時の精度を求めるなら のような受信回路に変更すればいいでしょう。
新版回路図 新版ソース

非接触式回転数系・ソース(XC8用&MPASM用)、MPLAB X IDE用プロジェクト、HEX一式 ダウンロード 12f683_rev-counter.zip

↓2011年から掲載している、内部の計算に用いる数値を求める表計算シートです。実はこのシートは のパラメータ算出シートの簡略版です。 ダウンロード 回転数計・パラメータ算出シート.xls

新板部品表 部品名備考数量72x47mmユニバーサル基板 1PICマイコン PIC12F683 8ピンDIP28ピン丸ピンICソケット 2I2C接続小型LCD(8x2行)ピッチ変換キット 1赤外線リモコン受信モジュールOSRB38C9AA 2個入り15V出力コイル一体型昇圧DCDCコンバータ 15mm赤外線LED 5個入り1緑色LED実際には好みで1トランジスタ2SC1815GR 1815で十分1半固定ボリューム(5kΩ) 制限抵抗用1タクトスイッチ 実際には好みで2基板用スライドスイッチ(横型) 実際には好みで1カーボン抵抗 22kΩノイズ除去用1カーボン抵抗 10kΩプルアップ用1カーボン抵抗 4.7kΩ入力抵抗用1カーボン抵抗 470Ω制限抵抗用1カーボン抵抗 75Ωノイズ除去用1電解コンデンサ 47μFノイズ除去用1電池ボックス(単3x2本用) 実際には好みで1

旧版

PCの冷却ファンとかラジコン模型のプロペラの回転数等を計ることを目的として作った工作です。 私はもっぱら静穏化したPCのファンの動作確認で使用しています。 多分もっと高回転の物も計れると思いますが試すものを持っていません。 材料費数百円の格安でお手軽なPIC電子工作です。

お手軽工作なのでプロペラ羽根の枚数は7に固定しています。 模型のプロペラの回転数を計るときは適宜、2とかに変更して下さい。 必要であれば羽根の枚数をセットするインターフェースを追加してみて下さい。

旧版外観 旧回路図 フォトトランジスタ ケース 基板 ソース

ソフトウェアTXルーチンは、 コメを噛め で見つけたソースを使いました。 特にこのルーチンを使う必然性はありません。AppNotesのルーチンとか下のリンクから入手できるものを使っても良いです。 入手先で著作権の掲示はありませんでした。

その他のルーチン群はELECTRONICS SHELVES から入手しました。 入手先で著作権の掲示はありませんでした。

(2011-12-7追記)やっと上に書いた2の方式のプログラムを作りました。ただし「動くプログラミングサンプル」程度です。 用のC言語のソースを元に、アセンブラ化すると同時に大幅な簡略化をおこないました。低速回転時用のINT割り込み計算モードを省略していますので最低表示回転数未満では出鱈目な数値を表示します。フィルター機能も省いています。ただし(もちろん最低表示回転数以上では)精度が高いという長所もあります。尚、 の機能も含んでいます。 MPASM形式 rev-cntr-ccp.asm HEX rev-cntr-ccp.hex

ご要望、ご意見、質問を下のフォームにどうぞ(でもここより、掲示板や書き込みフォームのページに書いて頂いた方が気づき易いと思います。)

自動車関連

  • 初歩の物理学で自動車工学
  • 必要な統計データが収集されていない為に、高齢ドライバーに関する重要な事実が埋もれてしまっている現実
  • 三代目ホンダ・フィットが初期にリコールを繰り返した原因
  • 左足ブレーキ運転について

航空機関連

  • ボーイング737MAX、737登場から50年経った今になって事故が続発した理由
  • 「チコちゃんに叱られる!」で「飛行機はなぜ飛ぶのか?」の答えが残念だった件

その他

PC系

  • マルチブートするなら2段階ブート方式に統一しよう
  • grub2とgrub1の扱い方(様々な再セットアップ方法等)
  • MBM(ChaNさんの高機能・マルチブート用ブートローダ)をもっと便利に使う情報とツール
  • 省スペースPCの電源修理
  • Linux各ディストリビューションのUSBブート・対応状況
  • 強力な(?)NTFSのPBR修復法
  • ハードディスク操作のまとめ
  • 役に立つシェルスクリプト群

ディスクレスOS

  • ディスクレス化(Linux, FreeBSD等)
  • OneCDLinux作成キット
  • Debian Linux の OneCD(ライブDVD)化手順
  • diskless x86-Solarisプロジェクト
  • ディスクレス化に関する情報

電子工作

  • PICを使ったお手軽回転数計
  • PICを使ったお手軽DCファン回転数計
  • RS232Cロガー兼リピーター
  • 既設エアコンをPICNICでインターネット対応させて携帯から操作
  • PICNICを手元で操作できるようにするパッチ
  • 100円電卓の液晶を検証
  • 秋月キット-トライアック調光器
  • 自動車のスピードワーニング装置
  • プログラムソース公開のデジタルスピードメータ、タコメータ、燃費計、車速パルス変換器(パルス分周器、パルス逓倍器)の自作
  • 日照時間を測ることによって、水晶不使用・時刻合わせ不必要なのに一年を通じてほぼ同じ時間に自動消灯する、明暗検知機能付きの玄関灯
  • ユニバーサル基板でネットワーク接続IO(もしくはイーサネットシリアルコンバータ)を作る(AVR web server)
  • JRCのNJL5303Rを使った脈拍計(の試作)

赤外線リモコン関係

  • PCから操作できる赤外線学習リモコン
  • AQUOS(アクオス)のシリアル・赤外線ハイブリッド式コントローラ
  • アクオス用マクロ・リモコン
  • でかボタン赤外線リモコンの製作
  • 携帯からインターネット経由で赤外線命令を発行して既設エアコンを操作
  • 携帯からインターネット経由で赤外線命令を発行して既設エアコンを操作(Raspberry Pi活用編)
  • IgorPlug-USB(USB接続・lirc(赤外線)レシーバー)の製作、その他
  • 出来るだけ安くLIRCリモコン受信部を作る
  • PCからの操作専用・赤外線リモコン
  • 赤外線リモコン関連の補足情報
  • 複数の機器ON・OFF同調(連携)装置の製作と考察(複数の機器ON・OFF同調のパターン1)
  • カスタマイズできるテレビリモコンの製作(複数の機器ON・OFF同調のパターン2)
  • (USB接続の装置をいろいろ自作して)自動化が難しい作業を自動化する
  • TSTB-R50
  • NECのリモコン・RL52の、マイコンだけ交換して他社用リモコンへと改造

Tips

  • NTFSパーティションのネットワーク越しのバックアップ
  • 稼働中LinuxのOS丸ごとネットワーク越しのバックアップ
  • X上でThumbSenseライクな使い勝手を得る
  • ハードディスク操作のまとめ
  • リカバリーDVDの作成法
  • 強力な(?)NTFSのPBR修復法
  • マルチブートするなら2段階ブート方式に統一しよう
  • MBM(ChaNさんの高機能・マルチブート用ブートローダ)をもっと便利に使う情報とツール
  • Linuxを、インストーラが起動したドライブにインストールする
  • grubブートローダをNTFSに
  • grub2とgrub1の扱い方(様々な再セットアップ方法等)
  • MPD(Music Player Daemon)の日本語化パッチと、lcd4linux・MPDプラグインのカタカナ表示対応版を用いて、Linuxで英数・カタカナ表示のキャラクタディスプレイ付きミュージックサーバを構築

小ネタ

  • 役に立つシェルスクリプト群
  • AMラジオの遠距離受信・番外編
  • 超格安CF-IDE変換アダプタの製作、CF-IDE変換アダプタの活用Tips
  • IDE延長ケーブル(IDE延長アダプタ)の製作
  • USB延長ケーブルの製作
  • ThumbSenseのすすめ
  • OpenVPNの構築メモ
  • チップリフレッサー
  • メッキ線のみで配線したChaNさんのCOMポート用ISPアダプタ(AVRライタ)
  • メッキ線のみで配線したLCD2USB(AVRを使ったUSB接続キャラクタ液晶)
  • メッキ線のみで配線したUSB接続・LEDインジケーター(V-USB・PowerSwitch)
  • ブレッドボード上に作る格安PICライタ
  • バッファローの古い無線LANアダプタ(WLA-G54)にUSBストレージを追加してCGIやsambaが動くDD-WRTにする

その他

  • Linux各ディストリビューションのUSBブート・対応状況
  • 省スペースPCの電源修理
  • PC電源チェッカーの製作
  • PC電源故障の真実
  • 一旦、1台のHDDでraid1を構築して、後から2台構成のraid1に変更する手順(mdadmの場合)
  • 床下換気扇を取り付ける代わりにアルミ枠を自作して換気を改善
📎📎📎📎📎📎📎📎📎📎