Arduinoで温度を測りLCDに表示する

中華Arduino関連がAmazonでとても安価。ダメ元で複数個ポチりました。品質はそれなり(ピンヘッダ曲がり・本体ピンヘッダ半田付けでブローホールの嵐 半田付け技術が無い)ですが、結構使えます。バラック的にブレッドボードで組みました。組み込みでケース入れて子供用の温度計にしても良いなぁと思っています。

BOM

Parts メーカ 型番・仕様 購入 単価
Arduino本体 HiLetgo プロ ミニ ATMEGA328P 5V 16MHz Amazon 330
LCD HiLetgo DC 5V HD44780 1602 LCD ディスプレイモジュール 16×2キャラクタ LCDブルーブラックライト Amazon 190
I2C HiLetgo IIC/I2C/TWI/SPI シリアル インタフェース ボード モジュール Amazon 120
温度センサー TI LM35DZ 秋月電子 110
ブレッドボード     秋月電子  
ジャンプワイヤ   オス-メス オスーオス 秋月電子  

準備

LCD+I2Cインターフェース

LCDとI2Cインターフェースボードを背合わせに半田付けすると回路同士が接触してショートしそう。なのでLCD本体にもヘッダピンを立ててブレッドボードでの接続としました。

Arduino

ピンヘッダをブレッドボードに刺して半田付け。上記の通りでへぼ半田。鉛入りだときれいに出来るのだが、、、会社技術員に聞いたところ水分でもあったのでは?中国から水分吸って到着しとは思えないんだけど。。。。

Fritzingで書くも、、、、

I2Cインターフェースボードが無いのでノートで代用して書きました。かっこ悪いです。

 

Sketch

/*   
 * Arduino LM35Z + LCD Sketch 20170625
 * https://yeh.jp
 * 
 */
#include <Wire.h> //I2C Class
#include <LiquidCrystal_I2C.h> //LCD I2C Class
 
LiquidCrystal_I2C lcd(0x3f,16,2);  // run ic2_scanner sketch and get the IC2 address, which is 0x3f in my case,it could be 0x3f in many cases

float a_in;          // アナログ入力値(0?203)
float temp_c = 0;  // 摂氏値( ℃ )



void setup()
{
  lcd.init();    // initialize the lcd
  //Serial.begin(9600);  // シリアル通信速度
}
 
void loop()
{

// アナログピン0から計測値を取得(0?203)
a_in = analogRead(0);
// 入力値を摂氏に換算
temp_c = ((5 * a_in) / 1024) * 100;
// set cursor to first line
  lcd.setCursor(0, 0);
// Print a message to the LCD.
  lcd.backlight();
  lcd.print("Temperature");
  lcd.print(temp_c);
  lcd.setCursor(0,1);
  lcd.print("https://yeh.jp ");
  // 改行しながら出力
  //Serial.println( temp_c );
  delay(500);
}

 

コメント