ความรู้แน่น ฟรีสำหรับชุมชน ArduinoAll ที่นี่เท่านั้น

ฟรีและดีที่สุด คอร์สอบรม Arduino + NodeMCU
ทำเพื่อแบ่งปัน ห้ามนำไปจำหน่าย หรือเก็บเงินค่าเรียน
  !!!


  


AllNewStep รับประกันคุณภาพทุกชิ้น วันจันทร์-ศุกร์แจ้งชำระสินค้าก่อน 14.00 จัดส่งทันทีวันนี้ค่ะ

กรุงเทพ /ภาคกลาง ได้พรุ่งนี้


*** สินค้าทุกชิ้น ถ้าสามารถทำรายการสั่งซื้อได้ แสดงว่ามีครบทุกรายการค่ะ *** 

พิมพ์ค้นหาบทความ หัวข้อกระทู้ และสินค้าในเว็บ AllNewStep ได้ที่นี่
QUOTE 

Infrared thermometer อยากให้มีฟังชั่น บันทึกค่าได้แสดงบนoled

Chanittha Nacharoon

สวัสดีค่ะ ตอนนี้ทำโปรเจ็ค Infrared thermometer  กับarduino pro mini ,oled อยากจะให้มีฟังชั่นการบันทึกค่าก่อนหน้าสัก3ค่า แล้วกดปุ่มbutton switch จะแสดงค่าที่บันทึกไว้3ค่าค่ะ  อยากจะให้ช่วยเขียนโค้ดให้ดูหน่อยอะค่ะ ถามอาจารย์มาเขาบอกให้ใช้arrayเก็บค่า แต่ไม่เข้าใจ

 

 

/***********************************

Arduino Contactless thermometer 

MLX90614 I2C connection

OLED 4-wire SPI connection 

Dated: 7-6-2019

Code by: Aswint Raj

**********************************/

 

#include <Wire.h> 

#include <SparkFunMLX90614.h> 

 

#include <SPI.h>

#include <Adafruit_GFX.h>

#include <Adafruit_SSD1306.h>

 

// If using software SPI (the default case):

 

#define OLED_RESET 4

 

Adafruit_SSD1306 display(OLED_RESET);

 

IRTherm therm;

 

void setup() 

{

  Serial.begin(9600); 

  therm.begin(); 

  therm.setUnit(TEMP_C); 

 

   display.begin(SSD1306_SWITCHCAPVCC);

   display.clearDisplay();

   display.setRotation(2);

  

}

 

String temperature; 

char runner;

 

void loop() 

{

  if (therm.read()) // On success, read() will return 1, on fail 0.

  {

    temperature = String(therm.object(), 1);

    Serial.print("Object: ");

    Serial.print(temperature); Serial.println("C");

    display.clearDisplay();

    runner++;

    delay(5);

  }

 

  display.setTextSize(2);

  display.setTextColor(WHITE);

  display.setCursor(display.width()/4,display.height()/12);

  

  if (therm.object()>=25)

  {

  display.setCursor(display.width()/4,display.height()/12);

  

  display.println(temperature);

 

  display.drawLine(display.width()/runner,display.height() - display.height()/2.5, display.width()/runner+1, display.height() - display.height()/2.5, WHITE);

 

  display.setCursor(0,display.height()-display.height()/4);

  display.setTextSize(1);

  display.println("   Fever");

  display.setCursor(display.width()- display.width()/4,display.height()/12);

  display.println("deg C");

  display.display();

  }

  else{

  display.setCursor(display.width()/4,display.height()/12);

  

  display.println(temperature);

 

  display.drawLine(display.width()/runner,display.height() - display.height()/2.5, display.width()/runner+1, display.height() - display.height()/2.5, WHITE);

 

  display.setCursor(0,display.height()-display.height()/4);

  display.setTextSize(1);

  display.println("   Normal");

  display.setCursor(display.width()- display.width()/4,display.height()/12);

  display.println("deg C");

  display.display();

  }

  if (runner>20)

  runner=0;

}

QUOTE 
ความคิดเห็นที่ #1
เจ้าของร้าน

ทดสอบโปรแกรมง่าย ๆ ก่อน เขียนฟิกค่าไว้ใน array แล้วทดลองเก็บค่า ดึงจากตัวแปรมาแสดง

คอนเซฟตัวอย่างโคดดังนี้ครับ

double val[3];

void setup() {

}

void loop() {

  for(int i=0;i<3;i++){

    val[i] = readTemp(); // เก็บค่าอุณหภูมิในตัวแปรก่อนหน้า 3 ค่าล่าสุด

    delay(1000); // หน่วงเวลา 1 วินาทีแล้วเก็บค่าใหม่

  }

}

// ฟังก์ชั่นอ่านค่าอุณหภูมิ

double readTemp(){

  return temp;

}

แสดงความคิดเห็นที่ 1-1 จากทั้งหมด 1 ความคิดเห็น
ขาย ARDUINO
คุณภาพ อันดับ 1

ได้รับรางวัลร้านยอดเยี่ยม
ตั้งแต่ปี 2558
ขาย Arduino
วีดีโอสอน Arduino

สอน esp8266

สอน Arduino IoT
สอน Arduino แบบเร็ว

สอน NodeMCU

อุปกรณ์ Arduino

MEMBER ZONE

พูดคุย-สอบถาม