エンジニア風味 (Engineer-taste)

電子系エンジニアのメモ帳

MATLABのArduinoアドオンを用いてセンサ情報を取得する(3)

(2)の続きです。
MATLABのアドオンを使って、センサ情報を取得する場合にはArduinoに直接プログラミングはしません。
なので、Arduino IDEなどは触らなくてよいことになります。

ここでやろうとしている温度センサtmp275からI2Cで情報を取り出そうとする場合にはMATLABから
直接制御することになります。

プログラムですが、

a=arduino('COM6','Uno','Libraries','I2C');
tmp275=i2cdev(a,'0x48');% I2Cデバイスをつくる

% 初期設定書き込み
writeRegister(tmp275,1,hex2dec('E0'),'uint8');

write(tmp275,0,'uint8');% データ要求
pause(0.5);
data=read(tmp275,2,'uint8');% データ取込み

% 生データから温度への変換
temperature = (double(bitshift(int16(data(1)), 4)) +...
    double(bitshift(int16(data(2)), -4))) * 0.0625

% Clean Up
clear tmp275 a;%デバイス消去

こんな感じになります。ここで、1行目の'COM6'はarduinoのプロパティで表示されたポート番号を指定してください。
最後はclearでデバイス設定を消しておかないと、次に接続するときにエラーが出ます。
(4)に続きます。