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

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


  


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

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


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

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

สอบถามการสร้างโค้ดเครื่องชั่งน้ำหนักครับ

Pongpinyo Chaisaenta

รบกวนขอคำแนะนำด้วยครับ

ผมทำเครื่องชั่ง ชั่งน้ำหนักขึ้นมาได้แล้ว และสามารถใช้งานได้ในระดับหนึ่ง แต่อยากทำโค้ดเพิ่ม

ลองหาศึกษาจากที่ต่างๆก็งงๆครับ เพราะเพิ่งจะเริ่มศึกษา เลยอยากขอรบกวนขอคำชี้แนะด้วยครับ

 จากโค้ดตาชั่งด้านล่างถ้าผมจะเอาคีย์เพดมาใส่ใช้ร่วมด้วยจะต้องทำยังไงบ้างครับให้ได้เป้าหมายแบบนี้ครับ

 

 1. ให้ผม กดปุ่มบางปุ่ม แล้วจึงสามารถคีย์ตัวเลขสักค่านึงให้บอร์ดเก็บค่าไว้ก่อน สมมุติว่าแทนค่าด้วย X

2. แล้วเอาสิ่งของบางอย่างมาชั่งน้ำหนักที่ตาชั่งซึ่งจะได้น้ำหนักมาค่านึง สมมุติว่าแทนค่าด้วย Y

3.และจะให้บอร์ดคำนวนค่าความต่างของน้ำหนัก Y - X = Z แสดงค่านี้ออกมาที่จอlcd 

พอจะมีแนวทางให้ศึกษาไหมครับ ทั้งเรื่องโค้ดและอุปกรณ์ที่ต้องต่อเพิ่มเติมจากตาชั่ง

 

#include <Wire.h> 

#include <LiquidCrystal_I2C.h>

#include <HX711.h>

int button1 = 9;

int press1 = 0;

// Set the LCD address to 0x27 in PCF8574 by NXP and Set to 0x3F in PCF8574A by Ti

LiquidCrystal_I2C lcd(0x3F, 16, 2);

HX711 scale1(A1, A2);

#define MAXFLT 8 // 24 bit resolution is 7 digits 

 

void setup() {

  lcd.clear();

  lcd.begin();

 

  lcd.setCursor(0, 0);

  lcd.print(" Weighting Scale ");

  lcd.setCursor(0, 1);

  lcd.print("--  C1  --"); //แสดงชื่อ --  C1  --

  delay(3000);

 

  lcd.setCursor(0, 0);

  lcd.print("--Place Weight--");

  lcd.setCursor(0, 1);

  lcd.print("   .....    kg  ");

  scale1.set_scale(33038.99999982);  // BUG: calibrate the scale (higher number, lower reading)

  scale1.tare();   // reset the scale to zero 

 

  pinMode(button1, INPUT);

  digitalWrite(button1, HIGH); //enable pullups to make pin high

 

}

 

void loop() 

{

  float r;

  char buf[MAXFLT + 1]; 

  r = scale1.get_units(16); // average 1ุ6 readings 

  Serial.println(dtostrf(r, MAXFLT, 4, buf)); 

  lcd.setCursor(0, 1);

  lcd.print(dtostrf(r, MAXFLT, 2, buf)); // average 16 readings, approx 1 second

  {

    press1 = digitalRead(button1);

    if (press1 == LOW)

    {

      scale1.tare();

    }

    else {

      /// do nothing

    }

  }

}

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

แนวทางศึกษา มีโคดการใช้งาน Load cell , keypad , จอ LCD

และพื้นฐานการเขียนการเขียนโปรแกรม Arduino อื่น ๆ ที่จำเป็น ที่หน้าเว็บ ในคอร์สเรียน Arduino Starter ที่หน้าเว็บครับ

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

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

สอน esp8266

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

สอน NodeMCU

อุปกรณ์ Arduino

MEMBER ZONE

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