Arduino งานโปรแกรมการอ่านค่าอุณหภูมิด้วย DS18B20 ครั้ง 14


Code

#include <LedControl.h>    // การอ่านไฟล์จากไดเร็กทอรี หรือโฟลเดอร์ที่กำหนดไว้
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 11   //  ใช้เพื่อตั้งชื่อค่าคงที่
OneWire oneWire(ONE_WIRE_BUS);     // ฟังก์ชั่นพิเศษของ OneWire.h
DallasTemperature sensors(&oneWire);
float Tfloat;    // ตัวแปรชนิด floating-point หรือตัวแปรที่มีจุดทศนิยม
long Tint;    เป็นตัวแปรจำนวนเต็มแบบขยายโดยไม่มีจุดทศนิยม เก็บค่าแบบ 32 bit 
LedControl lc=LedControl(8,10,9,1); 

void show6digit(int num)    // การเขียนฟังชังก์ชั่นขึ้นมาโดยใช้ชื่อว่า show6digit
{
  int seg1,seg2;
  seg2 = (((((num%100000)%10000)%1000)%100)/10);
  seg1 = (((((num%100000)%10000)%1000)%100)%10);
  lc.setDigit(0,0,seg1,false); 
  if (num>=10)
      lc.setDigit(0,1,seg2,false);
  delay(300);
}
void setup(void)      // ฟังก์ชั่นใช้ในการประกาศค่าเริ่มต้น
{
  sensors.begin(); // เริ่มการทำงานของเซ็นเซอร์
  lc.shutdown(0,false);  
  lc.setIntensity(0,5); 
  lc.clearDisplay(0); // ล้างหน้าจอ

void loop(void)     // ฟังก์ชั่นใช้ในการเขียนโค้ดโปรแกรมการทำงานของArduinoเป็นฟังก์ชั่นการวนลูปไปเรื่อยๆ
{
  sensors.requestTemperatures(); 
  Tfloat = sensors.getTempCByIndex(0);
  Tint = int(Tfloat);
  lc.clearDisplay(0);
  show6digit(Tint);
}


ภาพจำลองการทำงานด้วยโปรแกรม Proteus



อธิบายการทำงานของโปรแกรม

เเสดงผล การทำงานของ ic วัด อุณหภูมิ  เเละเเสดงผลบน 7segment สามารถปรับค่า ic ได้








ความคิดเห็น

บทความที่ได้รับความนิยม