11-17-2018 09:49 PM
Since the Arduino compatible compiler for LabVIEW has a sample VI of the thermocouple amplifier MAX 6675, I compared it with the sketch made with Arduino IDE.
「LabVIEWのArduino用コンパイラで熱電対アンプMAX6675を使った温度測定」
LabVIEW用Arduinoコンパイラには熱電対アンプMAX6675のサンプルVIがあるので、Arduino IDEで作ったスケッチと比較してみました。
-----------------------
感触を確認するためにLabVIEWのArduino用コンパイラを久しぶりに使ってみることにしました。たまたま手元にSPI接続の熱電対アンプMAX6675(センサー付きでAMAZONで500円ぐらい)があったのでLabVIEWのArduino用コンパイラでプログラムを作ってみようと思い立ち、SPI用のサンプルVIを見たらなんとMAX6675用のVIでした。
VIを作ることもなく感触を思い出してしまったので、Arduino IDEで書いたプログラム(これもサンプルを少し改造しただけ)と比較してみました。
MAX6675のデータシートを軽く読んでみます。
12ビットデータを2バイトで受け取ります。下位3ビットは状態を示すために使われています。
よく読めばSPIはモード0でクロックは最大でも4.3MHzということも読み取れます。(LabVIEW用ArduinoコンパイラのサンプルVIではモード1を使っていましたが、モード0が正しいと思いました。ただし、モード1でも動いていました。)
配線は以下の通り
MAX6675<---------->Arduino UNO互換機
GND<---------->GND
VCC<---------->5V
SCK<---------->D13
CS<---------->D10
SO<---------->D12
きちんと測定ができるかArduino IDEで確認します。スイッチサイエンスさんにサンプルがありましたので、それをベースにしました。
ArduinoコンパイラのサンプルVIも少し変更して機能的に同じプログラムになるようにしました。
使用しているメモリの比較
Arduino IDE <----------> LabVIEW用Arduinoコンパイラ
フラッシュメモリ/スケッチ:3586バイト(11%)<----------> スケッチ5948バイト(18%)
RAM/グローバル変数:209バイト(10%)<----------> 215バイト(10%)
スケッチとVIを添付します。このような小さなプログラムの場合はArduino IDEの方が見易いと思いますが、複雑になると普段LabVIEWを使っている人にはLabVIEWの方が読みやすくなるでしょう。
(2018.11.18)
12-20-2018 05:43 AM
はじめまして。
CompatibleCompilerの記事がとても少ないので,このような記事を書いてくださり感謝いたします。
私は31855を使っていますが,最後の3ビットシフトを2ビットシフト(-2)にするだけで,当たり前ですが正常に動きました。
ところでMode0とMode1の違いは何でしょうか?資料がなく,よくわかりません。ご存知でしたらご教示ください。
よろしくおねがいいたします。
12-20-2018 07:11 AM
こんにちは、
SPI通信のModeは4種類ありますが、データシートにModeの番号を書いている例は少なく、タイミング図で何番ね、と判断します。
クロックの極性(2種)Xサンプリングエッジの取り方(2種)で4種類となるのですが、私が書いても間違いそうなので、ANALOG DEVICES社のアプリケーションノートを参考にしてください。
https://www.analog.com/media/jp/technical-documentation/application-notes/an-1248_jp.pdf
SPIのデイジーチェーン接続の話も書いてあったりしてためになります。
余談ですが、最近LabVIEW用Arduinoコンパイラを使う仕事があって、通常版を購入しました。Home版からのアップグレードパスはないのかと聞いたら”ない”と言われました。でも、Arduinoを仕事で使うのにも便利ですよね。LabVIEWベースパケージのサブスクリプションが安いのでこれも買ってしまいましたが、NXG2.1の入ったUSBメモリが送られてきたのには少しがっかりしました。NXG3になりましたよと宣伝していたのにね。
08-29-2021 02:14 PM
visit this
it can be usefull
https://forums.ni.com/t5/Hobbyist-Toolkit/Arduino-Max6675-Labview-Linx-Interface/m-p/4173657#M885
08-29-2021 07:22 PM - 編集済み 08-29-2021 07:29 PM
diazomar2004,
Thank you.
I think that "max6675.vi" attached to the link is very good with an easy-to-understand explanation.
08-30-2021 05:22 AM
if you want to read more than one thermocuple you have to use PWM out from arduino to the Cheap Select of the max 6675