lnwshop logo

HX711 (บอร์ดรับค่าจาก Load Cell ขนาด 24 Bit)

HX711 (บอร์ดรับค่าจาก Load Cell ขนาด 24 Bit)
หมวดหมู่ Loadcell
ราคาปกติ 145.00 บาท
ลดเหลือ 40.00 บาท
สถานะสินค้า พร้อมส่ง
แก้ไขล่าสุด 9 เม.ย. 2561
ความพึงพอใจ ยังไม่มีความคิดเห็น
จำนวน
ชิ้น
หยิบลงตะกร้า
Share
Scan this!

บอร์ดรับค่าจาก Load Cell ใช้งานกับบอร์ Arduino และ Microcontroler เบอร์อื่น ๆ 

ตัวอย่าง Code ใช้งาน

Hx711.h

#ifndef HX711_h
  #define HX711_h
   
  #if ARDUINO >= 100
  #include "Arduino.h"
  #else
  #include "WProgram.h"
  #endif
   
  class HX711
  {
  private:
  byte PD_SCK; // Power Down and Serial Clock Input Pin
  byte DOUT; // Serial Data Output Pin
  byte GAIN; // amplification factor
  long OFFSET; // used for tare weight
  float SCALE; // used to return weight in grams, kg, ounces, whatever
   
  public:
  // define clock and data pin, channel, and gain factor
  // channel selection is made by passing the appropriate gain: 128 or 64 for channel A, 32 for channel B
  // gain: 128 or 64 for channel A; channel B works with 32 gain factor only
  HX711(byte dout, byte pd_sck, byte gain = 128);
   
  virtual ~HX711();
   
  // check if HX711 is ready
  // from the datasheet: When output data is not ready for retrieval, digital output pin DOUT is high. Serial clock
  // input PD_SCK should be low. When DOUT goes to low, it indicates data is ready for retrieval.
  bool is_ready();
   
  // set the gain factor; takes effect only after a call to read()
  // channel A can be set for a 128 or 64 gain; channel B has a fixed 32 gain
  // depending on the parameter, the channel is also set to either A or B
  void set_gain(byte gain = 128);
   
  // waits for the chip to be ready and returns a reading
  long read();
   
  // returns an average reading; times = how many times to read
  long read_average(byte times = 10);
   
  // returns (read_average() - OFFSET), that is the current value without the tare weight; times = how many readings to do
  double get_value(byte times = 1);
   
  // returns get_value() divided by SCALE, that is the raw value divided by a value obtained via calibration
  // times = how many readings to do
  float get_units(byte times = 1);
   
  // set the OFFSET value for tare weight; times = how many times to read the tare value
  void tare(byte times = 10);
   
  // set the SCALE value; this value is used to convert the raw data to "human readable" data (measure units)
  void set_scale(float scale = 1.f);
   
  // set OFFSET, the value that's subtracted from the actual reading (tare weight)
  void set_offset(long offset = 0);
   
  // puts the chip into power down mode
  void power_down();
   
  // wakes up the chip after power down mode
  void power_up();
  };
   
 

#endif /* HX711_h */

HX711.cpp

#include <Arduino.h>
  #include <HX711.h>
   
  HX711::HX711(byte dout, byte pd_sck, byte gain) {
  PD_SCK = pd_sck;
  DOUT = dout;
   
  pinMode(PD_SCK, OUTPUT);
  pinMode(DOUT, INPUT);
   
  set_gain(gain);
  }
   
  HX711::~HX711() {
   
  }
   
  bool HX711::is_ready() {
  return digitalRead(DOUT) == LOW;
  }
   
  void HX711::set_gain(byte gain) {
  switch (gain) {
  case 128: // channel A, gain factor 128
  GAIN = 1;
  break;
  case 64: // channel A, gain factor 64
  GAIN = 3;
  break;
  case 32: // channel B, gain factor 32
  GAIN = 2;
  break;
  }
   
  digitalWrite(PD_SCK, LOW);
  read();
  }
   
  long HX711::read() {
  // wait for the chip to become ready
  while (!is_ready());
   
  byte data[3];
   
  // pulse the clock pin 24 times to read the data
  for (byte j = 3; j--;) {
  for (char i = 8; i--;) {
  digitalWrite(PD_SCK, HIGH);
  bitWrite(data[j], i, digitalRead(DOUT));
  digitalWrite(PD_SCK, LOW);
  }
  }
   
  // set the channel and the gain factor for the next reading using the clock pin
  for (int i = 0; i < GAIN; i++) {
  digitalWrite(PD_SCK, HIGH);
  digitalWrite(PD_SCK, LOW);
  }
   
  data[2] ^= 0x80;
   
  return ((uint32_t) data[2] << 16) | ((uint32_t) data[1] << 8) | (uint32_t) data[0];
  }
   
  long HX711::read_average(byte times) {
  long sum = 0;
  for (byte i = 0; i < times; i++) {
  sum += read();
  }
  return sum / times;
  }
   
  double HX711::get_value(byte times) {
  return read_average(times) - OFFSET;
  }
   
  float HX711::get_units(byte times) {
  return get_value(times) / SCALE;
  }
   
  void HX711::tare(byte times) {
  double sum = read_average(times);
  set_offset(sum);
  }
   
  void HX711::set_scale(float scale) {
  SCALE = scale;
  }
   
  void HX711::set_offset(long offset) {
  OFFSET = offset;
  }
   
  void HX711::power_down() {
  digitalWrite(PD_SCK, LOW);
  digitalWrite(PD_SCK, HIGH);
  }
   
  void HX711::power_up() {
  digitalWrite(PD_SCK, LOW);
  }

สามารถดาวโหลดตัวอย่างได้ที่

https://github.com/bogde/HX711

รีวิววีดีโอ

 

สินค้านี้ยังไม่มีคนรีวิว
คำถาม
รายละเอียด
ชื่อผู้ถาม
ข้อมูลสำหรับการติดต่อกลับ (ไม่เปิดเผย เห็นเฉพาะเจ้าของร้าน)
อีเมล
เบอร์มือถือ
  • ถาม
สินค้านี้ยังไม่มีคนถามคำถาม
ธ.กสิกรไทย สาขาตลาดบางบ่อ ออมทรัพย์
ธ.ไทยพาณิชย์ สาขาบางนา ออมทรัพย์
ธ.กรุงเทพ สาขาเทพารักษ์ สมุทรปราการ ออมทรัพย์
ธ.กรุงไทย สาขาซีคอนสแควร์ ออมทรัพย์
พร้อมเพย์ สาขา- -
  • ค่าธรรมเนียม 4.4% + 11 THB
  • การชำระผ่าน PayPal คุณไม่จำเป็นต้องแจ้งชำระเงิน เนื่องจากระบบจะจัดการให้คุณทันที ที่คุณชำระเงินเสร็จสมบูรณ์
เพื่อความเข้าใจตรงกันระหว่างผู้ซื้อและผู้ขายและมิตรภาพที่ดีต่อกัน กรุณาทำความเข้าใจเงื่อนไข

CATEGORY

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

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

MEMBER

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

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

STATISTICS

หน้าที่เข้าชม1,156,860 ครั้ง
ผู้ชมทั้งหมด343,995 ครั้ง
เปิดร้าน16 พ.ค. 2558
ร้านค้าอัพเดท20 เม.ย. 2561

ติดต่อเรา

0956133385
facebook
เพิ่มเพื่อน

ค้นหารหัสพัสดุสินค้า

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