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

ヒーターをつなぐ(その3)
液晶ディスプレイ(2行✕16文字)を設置します。

【材料】
・1602LCDディスプレイI2C接続モジュール(秋月)
・ブレッドボードとブレッドボード用ジャンパ線(オス・オス)数本(前回既出)

【つなぎ方】
・LCDモジュールから4本の線が出ています。以下、LCD側の表示とArduino側の接続先を示します。
・GND → GND
・VCC → 5V
・SDA → A4
・SCL → A5
なお、Arduino側のGNDと5Vは他のデバイスでも使うので、ジャンパ線でブレッドボードに取り出し、そこから配線することをお勧めします。
また、I2C接続デバイスにはI2Cアドレスが必要ですが、この液晶ディスプレイはデフォルトアドレス”0x27”を用いることにします。

【ライブラリのインストール】
・この液晶ディスプレイを使うには、ライブラリのインストールが必要です。
・Arduino IDE画面最上段メニュー「ツール」→「ライブラリを管理」を選ぶと、左カラムにライブラリマネージャーが現れます。そのタイトルの直ぐ下に検索欄があるので「LiquidCrystal I2C」と入力します。ヒットした同一名記事の「インストール」をクリックすると、出力画面に「インストールに成功しました。」という言葉が一瞬表示されます。

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

// 最初の宣言です
#include <LiquidCrystal_I2C.h>  // LCD(ディスプレイ)用のライブラリを読み込む
LiquidCrystal_I2C lcd(0x27,16,2);  // LCDのアドレス、文字数、行数を指定します
int LED = 3;
int SSR = 6;
int Value = 10; // 値を10とします(必ず255以下の整数にしてください)
float Duty = 0.0;  // Dutyという実数変数を設定します
 
void setup(void) {
  Serial.begin(9600);  //シリアル通信初期化
  lcd.init();  // LCDの初期化
  lcd.backlight();  // LCDのバックライトです
  pinMode(LED,OUTPUT); // LEDをつないだ端子のモードは「出力」です
  pinMode(SSR,OUTPUT); // SSRをつないだ端子のモードは「出力」です
  lcd.setCursor(0,0);  // LCDのカーソル位置を左上に
  lcd.print("Danger! HeaterON");  // 警告表示
}
 
void loop(){
  analogWrite(LED, Value);
  analogWrite(SSR,Value);
  lcd.setCursor(0,1);  // LCDのカーソル位置を左下に
  lcd.print("Duty = ");  // PWM のデューティー比のことです 
  lcd.setCursor(12,1);  // カーソル位置指定
  Duty = (float)Value * 0.392 + 0.5;  // Valueを実数に直しDuty比を計算します
  lcd.print((int)Duty);  // Duty比を整数表示します
  lcd.setCursor(15,1);  // カーソル位置指定
  lcd.print('%');  // %はシングルコーテーションで囲まないとエラーになります
}

【実行】
・スケッチ画面の上段にある「→」アイコンをクリックすると、スケッチのコンパイル(機械語翻訳)が行われ、Arduinoにダウンロードされます。Arduinoは直ちにそれを実行します。
・1602ディスプレイに「Danger! Heater ON」と、「Duty ratio = 4%」という表示が出ましたでしょうか?
・ここで言う「Duty ratio(デューティー比)」とは、高速でオン/オフを繰り返して通電量を制御する方法であるPWM(Pulse Width Modulation)において、一定時間内の「オンの数 / (オン+オフの数)✕ 100 (%)(オンの状態の割合)です。
・今回のヒーターは、なぜかデューティー比を上げても、温度の上がり方があまり変わりません。考え中です。

コメントする

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