• ตอบกระทู้
  • ตั้งกระทู้ใหม่
QUOTE 

ช่วยตอบทีครับงงมากเลย

(Guest)
นที (Guest)
IP: 118.172.97.x
2 ปีที่ผ่านมา

พอดีทำ เครื่องวัดอุณภูมิกับ บอด ออดูโน่ ได้โค๊ดมาแล้วแต่พอใส่มันขึ้น error ครับบ

 

วานท่านผู้รู้แก้ไขให้หน่อย

 

#include <LiquidCrystal.h> 

#include <i2cmaster.h> 

 

LiquidCrystal lcd(8,9,4,5,6,7); 

int inPin = 2; //pin 0 as input 

int val = 0; 

void setup(){ 

        lcd.begin(8,2); 

        pinMode(inPin, INPUT);    // switch as input 

 

Serial.begin(9600); 

 

Serial.println("Setup..."); 

 

i2c_init(); //Initialise the i2c bus 

 

PORTC = (1 << PORTC4) | (1 << PORTC5);//enable pullups 

         

 

void loop(){ 

  double maxc,minc,maxf,minf; 

  maxc=0; 

  maxf=0; 

  minc=99; 

  minf=99; 

  while(1){ 

    int dev = 0x5A<<1; 

    int data_low = 0; 

    int data_high = 0; 

    int pec = 0; 

i2c_start_wait(dev+I2C_WRITE); 

    i2c_write(0x07); 

     

    // read 

    i2c_rep_start(dev+I2C_READ); 

    data_low = i2c_readAck(); //Read 1 byte and then send ack 

    data_high = i2c_readAck(); //Read 1 byte and then send ack 

    pec = i2c_readNak(); 

    i2c_stop(); 

     

    //This converts high and low bytes together and processes temperature, MSB is a error bit and is 

ignored for temps 

    double tempFactor = 0.02; // 0.02 degrees per LSB (measurement resolution of the MLX90614) 

    double tempData = 0x0000; // zero out the data 

    int frac; // data past the decimal point 

     

    // This masks off the error bit of the high byte, then moves it left 8 bits and adds the low byte. 

    tempData = (double)(((data_high & 0x007F) << 8) + data_low); 

    tempData = (tempData * tempFactor)-0.01; 

     

    //tempData = tempData+3.18;//calibrate sensor 

     

    float celcius = tempData - 273.15; 

    float fahrenheit = (celcius*1.8) + 32; 

 

    Serial.print("Celcius: "); 

    Serial.println(celcius); 

    Serial.print("Fahrenheit: "); 

    Serial.println(fahrenheit); 

          if(celcius > maxc) maxc = celcius; 

      if(fahrenheit > maxf) maxf = fahrenheit; 

      if(celcius < minc) minc = celcius; 

      if(fahrenheit< minf) minf = fahrenheit; 

val = digitalRead(inPin);  // read input value 

   if (val == HIGH) {         // check if the input is HIGH (button released) 

      lcd.setCursor(0,0); 

      lcd.print("Cmx:"); 

      lcd.print(maxc); 

      lcd.setCursor(0,1); 

      lcd.print("Cmn:"); 

      lcd.print(minc); 

      delay(3000); 

      lcd.setCursor(0,0); 

      lcd.print("Fmx:"); 

      lcd.print(maxf); 

      lcd.setCursor(0,1); 

      lcd.print("Fmn:"); 

      lcd.print(minf); 

      delay(2000); 

  }  

  else{     

    lcd.setCursor(0,0); 

    lcd.print("C:"); 

    lcd.print(celcius); 

    lcd.setCursor(0,1); 

    lcd.print("F:"); 

    lcd.print(fahrenheit); 

     delay(500); // wait (ms) before printing again 

  } 

1
แสดงความคิดเห็นที่ 0-0 จากทั้งหมด 0 ความคิดเห็น
ชื่อ
อีเมล
ข้อความ
  • ตอบกระทู้

CATEGORIES

CONTACT US

มือถือ0887823467 แฟกซ์02-0153201

SALE

รหัสสินค้า AG00125
2,300.00 บาท
850.00 บาท
  • สั่งซื้อ
รหัสสินค้า BR00017
400.00 บาท
150.00 บาท
เลิกจำหน่าย
รหัสสินค้า SA00003
250.00 บาท
100.00 บาท
  • สั่งซื้อ
รหัสสินค้า SG00027
200.00 บาท
80.00 บาท
  • สั่งซื้อ

NEW PRODUCTS

รหัสสินค้า AG00103
200.00 บาท
  • สั่งซื้อ
รหัสสินค้า
295.00 บาท
  • สั่งซื้อ
รหัสสินค้า
590.00 บาท
345.00 บาท
  • สั่งซื้อ
รหัสสินค้า
10.00 บาท
  • สั่งซื้อ
รหัสสินค้า
9.00 บาท
  • สั่งซื้อ
รหัสสินค้า
600.00 บาท
  • สั่งซื้อ
รหัสสินค้า PS00005
520.00 บาท
  • สั่งซื้อ
รหัสสินค้า AS00133
120.00 บาท
100.00 บาท
  • สั่งซื้อ
รหัสสินค้า
75.00 บาท
  • สั่งซื้อ
รหัสสินค้า
50.00 บาท
สินค้าหมด

เข้าร่วมร้านค้า

ร้านArduitronics
ร้านArduitronics
/www.arduitronics.com/
สมัครสมาชิกร้านนี้ เพื่อรับสิทธิพิเศษ

STATISTICS

หน้าที่เข้าชม4,536,949 ครั้ง
ผู้ชมทั้งหมด1,381,209 ครั้ง
เปิดร้าน21 พ.ค. 2556
ร้านค้าอัพเดท27 ก.พ. 2560

MEMBER

เข้าสู่ระบบด้วย
เข้าสู่ระบบ
สมัครสมาชิก

ยังไม่มีบัญชีเทพ สร้างบัญชีใหม่ ไม่เกิน 5 นาที
สมัครสมาชิก (ฟรี)

TRACKCODE

  • ค้นหา
*ใส่ order id หรือ email ที่ใช้ในการสั่งซื้อ
ดูรหัสพัสดุทั้งหมด »
Go to Top