ผู้เขียน หัวข้อ: งานครั้งที่ 41 เขียนโปรแกรมอ่านค่าอุณหภูมิจาก DS18B20 แสดงที่ UART (install Lib)  (อ่าน 2112 ครั้ง)

admin

  • Administrator
  • Hero Member
  • *****
  • กระทู้: 516
    • ดูรายละเอียด
    • อีเมล์
เขียนโปรแกรมอ่านค่าอุณหภูมิจาก DS18B20 แสดงผลที่ UART
ฟังก์ชั่นอยู่ในกลุ่ม Serial http://arduino.cc/en/Reference/Serial
-Serial.begin() http://arduino.cc/en/Serial/Begin
-if (Serial) http://arduino.cc/en/Serial/IfSerial
-Serial.available() http://arduino.cc/en/Serial/Available
-Serial.read() http://arduino.cc/en/Serial/Read
-Serial.print() http://arduino.cc/en/Serial/Print
-Serial.println() http://arduino.cc/en/Serial/Println
-Serial.flush() http://arduino.cc/en/Serial/Flush

ฟังก์ชั่นที่ใช้งาน
-pinMode() http://arduino.cc/en/Reference/PinMode
-digitalWrite() http://arduino.cc/en/Reference/DigitalWrite
-delay() http://arduino.cc/en/reference/delay

ไลบารี่เพิ่มเติม ต้องใช้ไลบรารี่ 2 ตัว
-OneWire.h จากเวปไซด์ https://github.com/PaulStoffregen/OneWire
-DallasTemperature.h https://github.com/milesburton/Arduino-Temperature-Control-Library

*ดูวิธีติดตั้งในงานครั้งที่ 20

โจทย์การทดลอง
-เขียนโปรแกรมรับค่าอุณหภูมิที่อ่านจาก DS18B20 แสดงผลผ่าน UART
-โปรแกรมรายละเอียดพิเศษรายกลุ่ม (แจ้งให้ทราบเมื่อถึงชั่วโมงเรียน)

วงจรที่ใช้ในการทดลองสำหรับผู้ที่ใช้บอร์ด Arduino


วงจรที่ใช้ในการทดลองสำหรับผู้ที่ใช้ไอซี ATmega328 (ที่มี Boot Loader Arduino)


ตัวอย่างโปรแกรม
โค๊ด: [Select]
#include <OneWire.h>
#include <DallasTemperature.h>
OneWire oneWire(2);                 //Connect to Pin 2 (D2)
DallasTemperature sensors(&oneWire);
void setup(void)
{
  Serial.begin(9600);
  Serial.println("Dallas Temperature IC DS18B20");
  sensors.begin();
}
void loop(void)
{
  Serial.print(" Requesting temperatures...");
  sensors.requestTemperatures();            // Send the command to get temperatures
  Serial.println("DONE");
  Serial.print("Temperature is: ");
  Serial.print(sensors.getTempCByIndex(0));
  Serial.println(" Degrees C");
  Serial.print("Temperature is: ");
  Serial.print(sensors.getTempFByIndex(0));
  Serial.println(" Degrees F");
}
« แก้ไขครั้งสุดท้าย: มีนาคม 22, 2018, 11:32:40 AM โดย admin »