Arduino+1602LCD+DS18B20で温度計を作ってみた
16桁x2行表示のLCDモジュールと温度センサーDS18B20を使って温度計を作ってみました。
動作例
準備
ブレッドボードのサイズはギリギリなので、Arduino Nanoなどで試す場合はもっと大きいものを使う必要があります。
- ブレッドボード(400穴)
- Arduino Pro Mini(5V)
- DS18B20
- 16x2 LCDモジュール(HD44780互換)
- 抵抗 2kΩ, 5.1kΩ, 510Ω
- ジャンパ線
配線
Arduinoの4から9番ピンをLCDモジュールに接続しています。また、10番ピンをDS18B20に接続しています。
LCDモジュールのコントラスト調整用の可変抵抗が手持ちで無かったので、固定値でそれっぽいものを選びました。また、バックライトの電流制限抵抗も、見た感じ良さそうかなで決めています。
ソースコード
ライブラリを利用するだけなので、ソースコードは非常に短くなりました。LiquidCrystalライブラリはArduino同梱です。残りの2つのライブラリは下記からインストールが必要です。
#include <LiquidCrystal.h>
#include <OneWire.h>
#include <DallasTemperature.h>
// Connections:
// rs (LCD pin 4) to Arduino pin 8
// enable (LCD pin 6) to Arduino pin 9
// LCD pins d4, d5, d6, d7 to Arduino pins 4, 5, 6, 7
// DS18B20 Wire to Arduino pin 10
#define ONE_WIRE_BUS 10
#define TEMPERATURE_PRECISION 12
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
OneWire oneWire(ONE_WIRE_BUS);
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);
void setup()
{
lcd.begin(16,2);
lcd.clear();
sensors.begin();
sensors.setResolution(TEMPERATURE_PRECISION);
}
void loop()
{
sensors.requestTemperatures(); // Send the command to get temperatures
lcd.setCursor(0,0);
lcd.print(sensors.getTempCByIndex(0));
lcd.print("\xDF""C ");
delay(1000);
}
今回利用した1602LCDモジュールは日本語カタカナフォントが搭載されていたため、「度」を表すのに半濁点(0xDF)を利用しました。別の文字が出てしまうLCDモジュールではLiquidCrystal::createChar()
でフォントを自作する必要があるでしょう。
Author And Source
この問題について(Arduino+1602LCD+DS18B20で温度計を作ってみた), 我々は、より多くの情報をここで見つけました https://qiita.com/hnw/items/e55542bca5d654337268著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .