迷走の果て・Tiny Objects

迷走する日々の覚え書きです。自分で分かってることは省略してますので、念のため。

2端子温度センサLMT01を試す(4)Arduinoにつなぐ

LMT01をArduinoにつないでみようと思ったのですが、LMT01のパルス列をカウントする方法がわかりません。
Arduinoに載ってるATmega328には16ビットのカウンタがあるのですが、その操作方法がATmega初心者な私にはわからないのです。
ちゃんとデータシートを読んで勉強すればいいのでしょうけど、ここでは内臓のカウンタは使わず、割り込みで処理することにしました。
LMT01のパルス列の周期は約11μSです。パルスの立ち上がりで割り込みをかけてカウント値をインクリメントすることにしました。
処理が間に合うかどうか心配でしたが、やってみるとあっさり動作しました。
前に実験したPSoC1の回路から、ロジックレベルに変換したパルス列とパルス列終了信号を読み取ってArduinoで処理してます。
右がArduinoとLCDシールドです、LCD上の桁がパルス列の数、下が温度、急いでスケッチを書いたので小数点が入ってませんが、PSoC1のと同じです。
LMT01_Arduino.jpg

恥ずかしながらのスケッチ。
パルス列はD2に、停止信号はD9に入れてます。
PSoC1の出力は前に書いたLM393を使った回路とは論理が反転してます、念のため。

 #include <LiquidCrystal.h>

// 接続ピンをして指定してライブラリを初期化
LiquidCrystal lcd(8, 3, 4, 5, 6, 7);

volatile unsigned int pulsecount = 0;

void setup()
{
  lcd.begin(16, 2);
  attachInterrupt(0, periodIrq, RISING);
  pinMode(9, INPUT);
}

void loop()
{
  while (digitalRead(9) == 1) {}
  lcd.setCursor(0, 0);
  lcd.print(pulsecount, DEC);
  lcd.print("     ");
  lcd.setCursor(0, 1);
  lcd.print(pulsecount*10/16-506, DEC);
  lcd.print("     ");
 pulsecount = 0;
  while (digitalRead(9) ==0) {}

}

void periodIrq() // interrupt handler
{
  pulsecount++;
}
関連記事
スポンサーサイト

コメント

うまくいってますね

おはようございます。面白そうなセンサーなので一連の記事を注目して拝見していました。

Arduinoの割り込みでやることを考えると、パルスのカウントだけならたぶん何とかなりそう。でもパルス完了の判定ルーチンまで入れると、タイミング的に無理っぽいなーと思っていましたが、

そうか、回路でパルス完了信号を作って、別のピンに入力する手がありました。参考になります。

コメントありがとうございます。
仕事から帰るなり脇目も振らず半田付けしてました。どうやら無事動いたようです。
スケッチは昨日のうちに出来てました。
もうちょっとスマートな方法があればいいのですが。

割込み速度の限界

この記事に刺激されて調べてみました。リンクも貼らせて頂いたのでご報告。

http://radiopench.blog96.fc2.com/blog-entry-640.html

コメントの投稿

管理者にだけ表示を許可する

トラックバック

この記事へのトラックバックURL
http://edycube.blog2.fc2.com/tb.php/866-5a42efe5

 | HOME | 

文字サイズの変更

プロフィール

edy

最新記事一覧(サムネイル画像付き)

DABP(Dual Amplifer Band Pass)フィルタとGIC(Generated Immitance Converter)の解析 Aug 22, 2017
百均のUSB LED電球(2) Aug 13, 2017
百均のUSB LED電球 Aug 11, 2017
状態変数型バンドパスフィルタ(2) Aug 05, 2017
状態変数型バンドパスフィルタの解析、発振回路に応用するため。 Jul 30, 2017
CJMCU Beetleを試す Jul 29, 2017
Arduino 互換ボード SS MICROを試す Jul 22, 2017
店の電飾(3)無限鏡(infinity mirror) Jun 25, 2017
店の電飾(2)回路の変更とスケッチ Jun 25, 2017
店の電飾 Jun 18, 2017

全記事表示リンク

全ての記事を表示する

ブログリンク

リンク

このブログをリンクに追加する

月別アーカイブ

08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  05  04  03  02  12  11  10  09  07  05  04  03  04  03  01  12  11  10  08  07  06  05  03  02  01  12  11  10  09  08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  05  04  02  01  12  10  09  08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  05  03  02  01  12  11  10  09  08  07  06  05  04  03  02  01  12  10  09  08  07  06  05  04  03  02  01 

カテゴリ

プログラミング (0)
freescale (1)
AVR (3)
テルミン (16)
緊急警報放送 (3)
78K (1)
PSoC (295)
地上デジタル放送 (2)
電子工作 (410)
HX711 (2)
ACS712 (6)
数学 (6)
パソコン (12)
PLC (14)
未分類 (39)
ブログ関係 (20)
スカイプ (37)
ロボット (1)
LTSpice (8)
OCXO (0)
arduino (32)
maxima (1)
フランクリン発振回路 (3)
GPS (3)
DTMF (1)
Linux (1)
KOMAINO (7)

タグリスト

最近のコメント

最近のトラックバック

メールフォーム

名前:
メール:
件名:
本文:

検索フォーム

アクセス

RSSリンクの表示

フリーエリア

FC2Ad

まとめ

Template by たけやん