สวัสดีครับ ในบทความนี้จะมีเนื้อหาเกี่ยวกับวิธีการใช้งาน DS18B20 (Digital Temperature Sensor) กับ Arduino กันนะครับ เพื่อเรียนรู้การใช้งาน Arduino กับ Digital Temperature Sensor ผ่าน 1-Wire Protocol

DS18B20 คือ 1-wire digital temperature sensor ที่ผลิดโดย Maxim IC สามารถใช้วัดอุณหภูมิในหน่วยองศาเซลเซียสตั้งแต่ -55 to 125 (+/-0.5) (ความละเอียด 9 ถึง 12-bit) Sensor แต่ละตัวจะมี Serial number (unique 64-Bit Serial number) ที่ไม่ซํ้ากันอยู่เพื่อใช้ระบุ Address แต่ละตัวในกรณีที่เชื่อมต่อ Sensor หลายตัวในสาย Data เส้นเดียว (1-wire)

ให้เชื่อมต่อวงจรดังรูปครับ
สําหรับ DS18B20 sensor จะมีอยู่ 3 ขาดังนี้
มีจุดสังเกตุคือในการต่อใช้งาน DS18B20 sensor จะต้องมีตัวต้านทานขนาด 4.7k Ohm ต่อ Pull Up เนื่องจาก DS18B20 sensor ใช้การสื่อสารแบบ 1-wire
Download Library สองตัวนี้มาก่อนะครับ
กลับไปที่ Arduino IDE เพื่อสร้าง Arduino Project ขึ้นมาโดยเข้าไปที่เมนู File—>new
แล้ว Import Library ที่โหลดมา โดยเข้าไปที่ Sketch —> Include Library —> Add .ZIP Library

เมื่อทุกอย่างเรียบร้อยเราก็มาลงมือ Coding กันครับ
#include <OneWire.h>
#include <DallasTemperature.h>
// กําหนด Pin 2 สําหรับ รับ-ส่ง ข้อมูล
#define ONE_WIRE_BUS 2
// สร้าง Instance ของ OneWire
OneWire oneWire(ONE_WIRE_BUS);
// สร้าง Instance ของ DallasTemperature
DallasTemperature sensors(&oneWire);
void setup(void)
{
// start serial port
Serial.begin(9600);
Serial.println("Dallas Temperature IC Control Library Demo");
// Start up the library
sensors.begin();
}
void loop(void)
{
// Send the command to get temperatures
sensors.requestTemperatures();
Serial.print("Temperature is: ");
// อ่านข้อมูลจาก DS18B20 พร้อมทั้งส่งข้อมูลไปแสดงผลที่ Computer ผ่าน Serial port
Serial.println(sensors.getTempCByIndex(0));
delay(1000);
}
จากตัวอย่าง Code ด้านบนมีการเรียกใช้ Library 2 ตัวคือ OneWire.h และ DallasTemperature.h ซึ่ง 2 ตัวนี้จะทํางานร่วมกันดังนี้ OneWire.h จะทําหน้าที่ส่ง และรับข้อมูลในรูปแบบ 1-wire และ DallasTemperature.h จะทําหน้าที่ควบคุมการอ่านและเขียนข้อมูลสําหรับ DS18B20 Sensor
การทํางานของโปรแกรมด้านบนคือ โปรแกรมจะอ่านข้อมูลจาก DS18B20 Sensor ทุกๆ 1 วินาที แล้วส่งข้อมูลที่อ่านได้ไปแสดงผลบนคอมพิวเตอร์ผ่าน Serial port
เมื่อลอง Compile และ Upload code ลงบน Arduino board แล้วดูผลลัพธ์ทาง Serial monitor ก็จะแสดงข้อมูลของอุณหภูมิทุกๆ 1 วินาที แบบนี้

ก็จะเป็นประมาณนี้นะครับ ติดตรงไหนสอบถามได้นะครับ สําหรับบทความนี้พอแค่นี้ก่อน แล้วเจอกันใหม่บทความหน้าครับ :)
ขอบคุณข้อมูล และรูปภาพจาก arduino.cc
ในการใช้ Shell command บางครั้งเราต้องการที่จะดู path บัจจุบันที่เราเข้ามา ให้เราใช้คําสั่งนี้
สวัสดีครับ วันนี้ผมจะพาทุกท่านย้อนอดีตไปยังสมัยที่ CD ยังฮิตๆ กัน การดูหนัง ฟังเพลง เล่นเพลง mp3 โปรแกรมต่างๆ ก็จะถูกเก็บใน CD ทั้งนั้น แต่ในปัจจุบันไม่ค่อยได้รับความนิยมเท่าไร บางคนอาจจะมี CD-ROM เก่าๆไม่ได้ใช้แล้วไม่รู้จะเอาไปทําอะไร เอามาทําเครื่องเล่น CD เพลงได้ครับ เดี๋ยวผมจะอธิบายวิธีการทําครับ แต่ก่อนอื่นมาดูอุปกรณ์กันก่อนว่ามีอะไรบ้าง
ตัวคูณร่วมน้อย (ค.ร.น.) คือ ตัวคูณร่วม (หรือพหุคูณร่วม) ที่มีค่าน้อยที่สุด ที่จำนวนนับชุดใด(ตั้งแต่สองจำนวนขึ้นไป) ไปหารได้ลงตัว เช่น ค.ร.น. ของ 8 และ 12 คือ 24 เพราะ 24 คือจำนวนที่น้อยมากที่สุดที่ถูกทั้ง 8 และ 12 หารลงตัว