Arduinoでローストビーフを作る(7)

温度センサーをつなぐ(その1)
温度センサー(ADT7410のI2Cモジュール)を設置します。

【材料】
・温度センサー(ADT7410のI2C接続モジュール)(秋月)
・ブレッドボードとブレッドボード用ジャンパ線(オス・オス)数本(前回既出)

【つなぎ方】
・ArduinoのA4とA5は、複数接続できるようにブレッドボード(例えば使っていない方の「+」と「―」)に取り出し、そこからLCDと温度センサーにつなぎます。
・温度センサーモジュールから4本の線が出ています。以下、温度センサー側の表示とArduino側の接続先を示します。すべてブレッドボードを介して接続します。
・GND → GND
・VCC → 5V
・SDA → A4
・SCL → A5
・I2C接続デバイスにはI2Cアドレスが必要です。この温度センサーはデフォルトアドレス”0x48”を用いることにします。

【ライブラリのインストール】
・この温度センサーを使うには、ライブラリのインストールが必要です。
・Arduino IDE画面最上段メニュー「ツール」→「ライブラリを管理」を選ぶと、左カラムにライブラリマネージャーが現れます。そのタイトルの直ぐ下に検索欄があるので「ADT7410」と入力します。「Adafruit ADT7410 Library」というライブラリがヒットするので、それを「インストール」します。窓「ライブラリの依存関係をインストール」が表示されるので、「全てをインストール」をクリックします。出力画面に「インストールは成功しました。」という言葉が一瞬表示されます。

【スケッチ】
Arduino IDEのスケッチ画面に以下のスケッチを書きます。
ヒーターをつなぐ(その3)のスケッチに、「コメント付き行」を追加します。

// 最初の宣言です
#include <Wire.h>  //I2C通信のライブラリ(忘れていました。でもLCDは動いた?)
#include <Adafruit_ADT7410.h>  // ADT7410のライブラリ読み込み
Adafruit_ADT7410 Temp1 = Adafruit_ADT7410();  // ADT温度センサーをTemp1と名付けます
#include <LiquidCrystal_I2C.h> 
LiquidCrystal_I2C lcd(0x27,16,2); 
int LED = 3; 
int SSR = 6; 
int Value = 20;  // ヒーターへの出力を少し強めました
float Duty = 0.0; 
 
void setup(void) {
  Serial.begin(9600);
  Wire.begin(); // I2C通信開始(忘れていました。)
  Temp1.begin(0x48);  // アドレスは0x48(デフォルト)
  Temp1.reset();  // ソフトウェア・リセット
  Temp1.setResolution(ADT7410_16BIT);  // 解像度=16bitを設定
  delay(250);  // タイミング調整用?

  lcd.init();
  lcd.backlight();
  pinMode(LED,OUTPUT);
  pinMode(SSR,OUTPUT); 
  // ここにあった「Danger!」表示は削除しました
}
 
void loop(){
  float Cdeg = Temp1.readTempC();  // セ氏で温度(実数)を読み込む
  Serial.println(Cdeg);  // Arduino IDEのシリアルモニタに温度を出力
  analogWrite(LED, Value); 
  analogWrite(SSR,Value); 
  lcd.setCursor(0,1); 
  lcd.print("Duty = "); 
  lcd.setCursor(10,1); 
  Duty = (float)Value * 0.392 + 0.5;
  lcd.print((int)Duty);
  lcd.setCursor(15,1); 
  lcd.print('%'); 
  lcd.setCursor(0,0);  // カーソルを左上に移動
  lcd.print("TempADT= ");  // 温度=
  lcd.print(Cdeg,2);  // Cdeg を小数点2桁で表示
  lcd.setCursor(15,0);  // カーソルを右上に移動
  lcd.print("C");  // セ氏温度の単位表示

  delay(10000);  // 10秒間隔で温度測定・表示
}

【実行】
・スケッチ画面の上段にある「→」アイコンをクリックすると、スケッチのコンパイル(機械語翻訳)が行われ、Arduinoにダウンロードされます。Arduinoは直ちにそれを実行します。
・1602ディスプレイに「TempADT= ◯◯.◯◯ C」と、「Duty ratio = 8 %」という表示が出ましたでしょうか?
・TempADTの値は10秒ごとに変化します。
・Arduino IDEの「シリアルモニタ」(窓右上の虫メガネみたいなのをクリック)で、温度がPCの方にも表示されます。
・ブレッドボード上のLEDが更に明るくなりましたでしょうか?
・お疲れ様です。
・次回はArduinoからmacに送られたデータを元に、温度変化のグラフをPythonで描いてみます。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です