สารบัญ:

เครื่องชั่งห้องน้ำ Arduino พร้อมโหลดเซลล์ 50 กก. และแอมพลิฟายเออร์ HX711: 5 ขั้นตอน (พร้อมรูปภาพ)
เครื่องชั่งห้องน้ำ Arduino พร้อมโหลดเซลล์ 50 กก. และแอมพลิฟายเออร์ HX711: 5 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: เครื่องชั่งห้องน้ำ Arduino พร้อมโหลดเซลล์ 50 กก. และแอมพลิฟายเออร์ HX711: 5 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: เครื่องชั่งห้องน้ำ Arduino พร้อมโหลดเซลล์ 50 กก. และแอมพลิฟายเออร์ HX711: 5 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: DIY Arduino Weighing Scale with Load Cell & HX711 Module - Full Calibration 2024, กรกฎาคม
Anonim
เครื่องชั่งห้องน้ำ Arduino พร้อมโหลดเซลล์ 50 กก. และแอมพลิฟายเออร์ HX711
เครื่องชั่งห้องน้ำ Arduino พร้อมโหลดเซลล์ 50 กก. และแอมพลิฟายเออร์ HX711
เครื่องชั่งห้องน้ำ Arduino พร้อมโหลดเซลล์ 50 กก. และแอมพลิฟายเออร์ HX711
เครื่องชั่งห้องน้ำ Arduino พร้อมโหลดเซลล์ 50 กก. และแอมพลิฟายเออร์ HX711

คำแนะนำนี้จะอธิบายวิธีการทำเครื่องชั่งน้ำหนักโดยใช้ชิ้นส่วนที่หาซื้อได้ง่ายจากชั้นวาง

วัสดุที่จำเป็น:

  1. Arduino - (การออกแบบนี้ใช้ Arduino Uno มาตรฐาน รุ่น Arduino หรือโคลนอื่น ๆ ควรใช้งานได้ด้วย)
  2. HX711 บนบอร์ดฝ่าวงล้อม - ไมโครชิปนี้ทำขึ้นเป็นพิเศษสำหรับการขยายสัญญาณจากโหลดเซลล์และรายงานไปยังไมโครคอนโทรลเลอร์อื่น โหลดเซลล์เสียบเข้ากับบอร์ดนี้ และบอร์ดนี้บอก Arduino ว่าโหลดเซลล์วัดอะไร
  3. โหลดเซลล์ขนาด 50 กก. (x4) - โหลดเซลล์เป็นชิ้นส่วนโลหะรูปทรงพิเศษที่มีสเตรนเกจติดกาวไว้ สเตรนเกจเป็นตัวต้านทานที่เปลี่ยนความต้านทานเมื่องอ เมื่อชิ้นส่วนโลหะโค้งงอ ความต้านทานของโหลดเซลล์จะเปลี่ยนไป (HX711 วัดการเปลี่ยนแปลงเล็กน้อยของความต้านทานได้อย่างแม่นยำ) คุณสามารถซื้อโหลดเซลล์และ HX711 เป็นชุดได้ที่นี่: https://www.amazon.com/Degraw-amplifier-weight-Arduino-Bathroom/dp/B075Y5R7T7/ หากคุณซื้อชุดอุปกรณ์ โปรดเขียนรีวิว! มันมีประโยชน์มากสำหรับผู้ซื้อในอนาคต
  4. พื้นผิวติดตั้งที่เรียบและทนทาน - เหมาะอย่างยิ่งสำหรับไม้เนื้อแข็งหรือโลหะ
  5. สายไฟหลากสีสำหรับต่อทุกส่วน
  6. แหล่งจ่ายไฟสำหรับ Arduino

ขั้นตอนที่ 1: ติดตั้งโหลดเซลล์

ติดตั้งโหลดเซลล์
ติดตั้งโหลดเซลล์
ติดตั้งโหลดเซลล์
ติดตั้งโหลดเซลล์

ติดตั้งโหลดเซลล์ 4 ตัวที่ด้านล่างของเครื่องชั่งที่มุมทั้งสี่ อีพ็อกซี่ทำงานได้ดีในการยึดเข้าที่ ดูแผนภาพการติดตั้ง ซึ่งแสดงพื้นผิวที่ควรติดตั้งกับฐาน และพื้นผิวใดควรสัมผัสพื้น

ขั้นตอนที่ 2: ตรวจสอบการเดินสายไฟของโหลดเซลล์

ตรวจสอบการเดินสายไฟของโหลดเซลล์
ตรวจสอบการเดินสายไฟของโหลดเซลล์

แผนภาพการเดินสายไฟถูกสร้างขึ้นโดยสมมติว่าโหลดเซลล์สร้างขึ้นตามภาพนี้

เพื่อให้แน่ใจว่าคุณทำถูกต้อง ตรวจสอบให้แน่ใจว่าขั้วสองขั้วบนโหลดเซลล์ใดมีความต้านทานสูงสุดระหว่างขั้วเหล่านี้ (เช่น ขาวดำ เพื่อให้ตรงกับแผนผัง) ต่อสายไฟในลูปการจับคู่สีขนาดใหญ่ เช่น BB WW BB WW แล้วกระตุ้น (E+/E-) สองก๊อกตรงกลางตรงข้าม (R) และสัมผัส (A+/A-) บนก๊อกตรงกลางอีกคู่

หน้านี้ใน Sackexchange มีข้อมูลที่ดียิ่งขึ้น: https://arduino.stackexchange.com/questions/11946/how-to-get-weight-data-from-glass-electronic-bathroom-scale-sensors/18698 #18698

ขั้นตอนที่ 3: ต่อโหลดเซลล์และ HX711

วางสายโหลดเซลล์และ HX711
วางสายโหลดเซลล์และ HX711
วางสายโหลดเซลล์และ HX711
วางสายโหลดเซลล์และ HX711
วางสายโหลดเซลล์และ HX711
วางสายโหลดเซลล์และ HX711

ดูแผนภาพการเดินสายไฟสำหรับวิธีเชื่อมต่อโหลดเซลล์, HX711 และ Arduino

สายโหลดเซลล์บางเส้นเชื่อมต่อเข้าด้วยกันเพื่อสร้างสิ่งที่เรียกว่าการจัดเรียงสะพานวีทสโตน สิ่งนี้อาจทำให้สับสนเล็กน้อย ตัวเลือกที่ดีในการเชื่อมต่อโหลดเซลล์ทั้งหมดด้วยวิธีที่สะอาดและเข้าใจง่ายคือบอร์ดรวมโหลดเซลล์ SparkFun -

การจัดเรียงนี้ทำให้สามารถรวมและวัดโหลดของเซ็นเซอร์โหลดเซลล์ต่างๆ ได้พร้อมกัน

ขั้นตอนที่ 4: เพิ่มไลบรารี HX711 ลงใน Arduino IDE ของคุณ

ห้องสมุด HX711 มีอยู่ที่นี่:

ดูลิงก์นี้บนเว็บไซต์ Arduino สำหรับคำแนะนำในการเพิ่มไลบรารีลงใน Arduino IDE ของคุณ:

ขั้นตอนที่ 5: ปรับเทียบและชั่งน้ำหนัก

Sparkfun มีโปรแกรม Arduino ที่ยอดเยี่ยมในการรันสเกล เวอร์ชันล่าสุดมีอยู่ใน GitHub และพิมพ์ซ้ำด้านล่าง:

ขั้นตอนแรกของซอฟต์แวร์คือการกำหนดปัจจัยการสอบเทียบสำหรับเครื่องชั่ง ในการดำเนินการนี้ ให้เรียกใช้รหัสนี้:

/*

ตัวอย่างการใช้กระดานฝ่าวงล้อม SparkFun HX711 ที่มีมาตราส่วน โดย: Nathan Seidle SparkFun Electronics วันที่: 19 พฤศจิกายน 2014 ใบอนุญาต: รหัสนี้เป็นสาธารณสมบัติ แต่คุณซื้อเบียร์ให้ฉันถ้าคุณใช้สิ่งนี้และเราพบกันสักวันหนึ่ง (ใบอนุญาตเบียร์) นี่คือภาพร่างการสอบเทียบ ใช้เพื่อกำหนด calibration_factor ที่ตัวอย่างหลักใช้ นอกจากนี้ยังแสดงค่า zero_factor ที่เป็นประโยชน์สำหรับโครงการที่มีมวลถาวรบนมาตราส่วนระหว่างรอบพลังงาน ตั้งค่าเครื่องชั่งของคุณและเริ่มสเก็ตช์โดยไม่ต้องชั่งน้ำหนักบนเครื่องชั่ง เมื่ออ่านค่าแล้ว ให้วางน้ำหนักลงบนสเกล กด +/- หรือ a/z เพื่อปรับ calibration_factor จนกว่าค่าที่อ่านได้จะตรงกับน้ำหนักที่ทราบ ใช้ calibration_factor นี้กับตัวอย่างสเก็ตช์ ตัวอย่างนี้ถือว่าปอนด์ (lbs) หากคุณต้องการกิโลกรัม ให้เปลี่ยน Serial.print(" lbs"); เส้นเป็นกก. ปัจจัยการสอบเทียบจะแตกต่างกันอย่างมีนัยสำคัญ แต่จะสัมพันธ์เชิงเส้นกับปอนด์ (1 ปอนด์ = 0.453592 กก.) ปัจจัยการสอบเทียบของคุณอาจเป็นบวกหรือลบมาก ทั้งหมดขึ้นอยู่กับการตั้งค่าระบบมาตราส่วนของคุณและทิศทางที่เซ็นเซอร์เบี่ยงเบนจากสถานะศูนย์ โค้ดตัวอย่างนี้ใช้ไลบรารีที่ยอดเยี่ยมของ bogde:"https://github.com/bogde/HX711" ไลบรารีของ bogde เผยแพร่ภายใต้ GNU GENERAL PUBLIC LICENSE Arduino pin 2 -> HX711 CLK 3 -> DOUT 5V -> VCC GND -> GND พินส่วนใหญ่บน Arduino Uno จะเข้ากันได้กับ DOUT/CLK บอร์ด HX711 สามารถจ่ายไฟได้ตั้งแต่ 2.7V ถึง 5V ดังนั้นไฟ Arduino 5V น่าจะใช้ได้ */ #รวม "HX711.h" #define LOADCELL_DOUT_PIN 3 #define LOADCELL_SCK_PIN 2 HX711 มาตราส่วน; float calibration_factor = -7050; //-7050 ทำงานสำหรับการตั้งค่าขนาดสูงสุด 440lb ของฉัน การตั้งค่าเป็นโมฆะ () { Serial.begin (9600); Serial.println ("ร่างการสอบเทียบ HX711"); Serial.println("เอาน้ำหนักทั้งหมดออกจากมาตราส่วน"); Serial.println("หลังจากการอ่านเริ่มต้น ให้วางน้ำหนักที่ทราบบนมาตราส่วน"); Serial.println("กด + หรือ a เพื่อเพิ่มปัจจัยการสอบเทียบ"); Serial.println("กด - หรือ z เพื่อลดปัจจัยการสอบเทียบ"); scale.begin(LOADCELL_DOUT_PIN, LOADCELL_SCK_PIN); มาตราส่วน.set_scale(); scale.tare(); //รีเซ็ตมาตราส่วนเป็น 0 ยาว zero_factor = scale.read_average(); //รับค่าพื้นฐานการอ่าน Serial.print("Zero factor: "); // สามารถใช้เพื่อลดความจำเป็นในการทดน้ำหนักได้ มีประโยชน์ในโครงการขนาดถาวร Serial.println(zero_factor); } วงเป็นโมฆะ () { scale.set_scale (calibration_factor); //ปรับปัจจัยการสอบเทียบนี้ Serial.print("การอ่าน: "); Serial.print(scale.get_units(), 1); Serial.print("ปอนด์"); //เปลี่ยนค่านี้เป็นกิโลกรัมและปรับปัจจัยการสอบเทียบใหม่หากคุณปฏิบัติตามหน่วย SI เช่น Serial.print(" calibration_factor: "); Serial.print(calibration_factor); Serial.println(); ถ้า (Serial.available ()) { ถ่านชั่วคราว = Serial.read (); if(temp == '+' || temp == 'a') calibration_factor += 10; อื่น if(temp == '-' || temp == 'z') calibration_factor -= 10; } }

หลังจากปรับเทียบมาตราส่วนแล้ว คุณสามารถเรียกใช้โปรแกรมตัวอย่างนี้ แล้วแฮ็กเพื่อจุดประสงค์ของคุณเอง:

/*

ตัวอย่างการใช้กระดานฝ่าวงล้อม SparkFun HX711 ที่มีมาตราส่วน โดย: Nathan Seidle SparkFun Electronics วันที่: 19 พฤศจิกายน 2014 ใบอนุญาต: รหัสนี้เป็นสาธารณสมบัติ แต่คุณซื้อเบียร์ให้ฉันถ้าคุณใช้สิ่งนี้และเราพบกันสักวันหนึ่ง (ใบอนุญาตเบียร์) ตัวอย่างนี้สาธิตเอาท์พุตมาตราส่วนพื้นฐาน ดูภาพร่างการสอบเทียบเพื่อรับ calibration_factor สำหรับการตั้งค่าโหลดเซลล์เฉพาะของคุณ โค้ดตัวอย่างนี้ใช้ไลบรารีที่ยอดเยี่ยมของ bogde:"https://github.com/bogde/HX711" ไลบรารีของ bogde เผยแพร่ภายใต้ใบอนุญาตสาธารณะของ GNU GENERAL HX711 ทำสิ่งหนึ่งได้ดี: อ่านโหลดเซลล์ บอร์ดฝ่าวงล้อมเข้ากันได้กับโหลดเซลล์ที่ใช้สะพานหินข้าวสาลี ซึ่งจะช่วยให้ผู้ใช้สามารถวัดทุกอย่างได้ตั้งแต่ไม่กี่กรัมจนถึงหลายสิบตัน Arduino pin 2 -> HX711 CLK 3 -> DAT 5V -> VCC GND -> GND บอร์ด HX711 สามารถจ่ายไฟได้ตั้งแต่ 2.7V ถึง 5V ดังนั้นไฟ Arduino 5V น่าจะใช้ได้ */ #include "HX711.h" #define calibration_factor -7050.0 // ค่านี้ได้มาจาก SparkFun_HX711_Calibration sketch #define LOADCELL_DOUT_PIN 3 #define LOADCELL_SCK_PIN 2 HX711 scale; การตั้งค่าเป็นโมฆะ () { Serial.begin (9600); Serial.println ("สาธิตมาตราส่วน HX711"); scale.begin(LOADCELL_DOUT_PIN, LOADCELL_SCK_PIN); scale.set_scale(calibration_factor); //ค่านี้ได้มาจากการใช้ SparkFun_HX711_Calibration sketch scale.tare(); //สมมติว่าไม่มีน้ำหนักบนมาตราส่วนเมื่อเริ่มต้น ให้รีเซ็ตมาตราส่วนเป็น 0 Serial.println("การอ่าน:"); } วงเป็นโมฆะ () { Serial.print ("การอ่าน: "); Serial.print(scale.get_units(), 1); //scale.get_units() ส่งคืน Serial.print แบบลอยตัว (" lbs"); //คุณสามารถเปลี่ยนค่านี้เป็น kg ได้ แต่คุณจะต้องปรับโครงสร้างใหม่ calibration_factor Serial.println(); }

แนะนำ: