迷走の果て・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.blog.fc2.com/tb.php/866-5a42efe5

 | HOME | 

文字サイズの変更

プロフィール

edy

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

DABP発振回路を使ってキャパシタのESRを測定する構想(2)断念 2018/02/15
Androidアプリ:Resonance Calculator LC共振回路の計算に便利 2018/02/03
DABP発振回路を使ってキャパシタのESRを測定する構想(1)追記あり 2018/01/27
スマホとmicro:bitをBluetoothでつなぎたいのだが・・・。 2018/01/27
Androidアプリ:Signal Generator 2017/12/31
エレコム EHP-AHR192 を試す。(1) 2017/12/17
AliExpressでお買い物:TPS60403テスト 2017/12/02
AliExpressでお買い物:スイッチトキャパシタ電圧コンバータ三種(1) 2017/11/29
ATmega328 Maximum Frequency vs. VCC 2017/11/26
AC電力計(2) 2017/11/19

全記事表示リンク

全ての記事を表示する

リンク

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

月別アーカイブ

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  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)
電子工作 (434)
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)
Android (1)

タグリスト

最近のコメント

最近のトラックバック

メールフォーム

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

検索フォーム

アクセス

RSSリンクの表示

ブログリンク

FC2Ad

まとめ

Template by たけやん