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 ได้
ความคิดเห็น
แสดงความคิดเห็น