Quantum Technology and Electromagnetic Research Forum

KidBright => KidBright with Arduino IDE Q&A => ข้อความที่เริ่มโดย: Watchara A. ที่ มีนาคม 29, 2019, 02:06:49 PM

หัวข้อ: ตัวอย่าง KidBright with Arduino IDE : อ่านค่า Temperature Sensor บน KidBright
เริ่มหัวข้อโดย: Watchara A. ที่ มีนาคม 29, 2019, 02:06:49 PM
ตัวอย่าง 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
(https://netpie.io/public/netpieio/assets/images/logo/netpie_logo.png) (https://github.com/pieacademy/NETPIE-KidBright-Workshop2018)
หัวข้อ: Re: ตัวอย่าง KidBright with Arduino IDE : อ่านค่า Temperature Sensor บน KidBrigh
เริ่มหัวข้อโดย: thiangone ที่ เมษายน 12, 2019, 07:25:03 PM
เวลา คอมไพล์ โปรแกรมTemperature Sensor บน KidBrightนี้ ทำไหม คอมไพล์ไม่ผ่าน โปรแกรมแจ้งว่า  Wire1.begin(4, 5);   ไม่ได้ประกาศ
ต้องเพิ่มไลเบอรี่ อะไรไหม เห็นมี #include <Wire.h>  อย่างเดียว