ผู้เขียน หัวข้อ: ตัวอย่าง KidBright with Arduino IDE : อ่านค่า Temperature Sensor บน KidBright  (อ่าน 936 ครั้ง)

Watchara A.

  • Administrator
  • Sr. Member
  • *****
  • กระทู้: 306
  • Point: +0/-0
  • E25FGL / (alias : E22MHS,E22AAA)
    • ดูรายละเอียด
    • TSE Official Web
ตัวอย่าง KidBright with Arduino IDE : อ่านค่า Temperature Sensor บน KidBright

ตัวอย่างนี้เป็นการอ่านค่า Temperature Sensor บน KidBright และ ส่งค่าผ่าน Serial กลับมาที่ Serial Monitor ของ Arduino

LM73 ซึ่งเป็น Temperature Sensor บน KidBright ต่อกับ KidBright ผ่าน I2C Bus ทาง I2C1 ที่ Address 0x4D
ไม่จำเป็นต้องติดตั้ง Library ใดๆเพิ่มเติม (ขอขอบคุณข้อมูลจาก NETPIE Academy)

Sourcecode จะแสดงค่าอุณหภูมิผ่าน Serial Monitor ทุก 5 วินาที

โค๊ด: [Select]
#include <Wire.h>
#define LM73_ADDR 0x4D

int analog_value = 0;
double temp=0;

float readTemperature() {
  Wire1.beginTransmission(LM73_ADDR);
  Wire1.write(0x00); // Temperature Data Register
  Wire1.endTransmission();
 
  uint8_t count = Wire1.requestFrom(LM73_ADDR, 2);
  float temp = 0.0;
  if (count == 2) {
    byte buff[2];
    buff[0] = Wire1.read();
    buff[1] = Wire1.read();
    temp += (int)(buff[0]<<1);
    if (buff[1]&0b10000000) temp += 1.0;
    if (buff[1]&0b01000000) temp += 0.5;
    if (buff[1]&0b00100000) temp += 0.25;
    if (buff[0]&0b10000000) temp *= -1.0;
  }
  return temp;
}

void setup() {
  Serial.begin(9600);
  Wire1.begin(4, 5);
}

void loop() {
      temp = readTemperature();
      Serial.print("Temp:");Serial.println(temp);
      delay(5000);
}

แก้ไขเพิ่มเติมจาก : PIEAcademy - NETPIE-KidBright-Workshop2018
« แก้ไขครั้งสุดท้าย: มีนาคม 29, 2019, 02:31:08 PM โดย Watchara A. »
วัชระ อมศิริ
คณะวิศวกรรมศาสตร์ มหาวิทยาลัยธรรมศาสตร์
99 หมู่ 18 ตำบลคลองหนึ่ง อำเภอคลองหลวง
จังหวัดปทุมธานี 12120
awatchar@engr.tu.ac.th

หมายเหตุ : การแนะนำทางเทคนิคต่างๆ เป็นการแนะนำอย่างง่ายให้มีความเหมาะสมกับการนำไปใช้ของนักเรียน อาจอธิบายไม่ถูกต้องชัดเจนตามหลักวิชาการ ขออภัยมา ณ ที่นี้

thiangone

  • Newbie
  • *
  • กระทู้: 1
  • Point: +0/-0
    • ดูรายละเอียด
  • Line ID: thiangone
Re: ตัวอย่าง KidBright with Arduino IDE : อ่านค่า Temperature Sensor บน KidBrigh
« ตอบกลับ #1 เมื่อ: เมษายน 12, 2019, 07:25:03 PM »
เวลา คอมไพล์ โปรแกรมTemperature Sensor บน KidBrightนี้ ทำไหม คอมไพล์ไม่ผ่าน โปรแกรมแจ้งว่า  Wire1.begin(4, 5);   ไม่ได้ประกาศ
ต้องเพิ่มไลเบอรี่ อะไรไหม เห็นมี #include <Wire.h>  อย่างเดียว