- ส่วนประกอบที่จำเป็นในการสร้างเครื่องชั่งน้ำหนัก Arduino:
- โหลดเซลล์และโมดูลเซ็นเซอร์น้ำหนัก HX711:
- คำอธิบายวงจร:
- คำอธิบายการทำงาน:
- รหัสเครื่องชั่งน้ำหนัก Arduino:
วันนี้เราจะไปสร้างเครื่องไวท์ Arduinoโดยการเชื่อมต่อมือถือ Load และ HX711 เซนเซอร์น้ำหนักกับ Arduino เราเคยเห็นเครื่องชั่งน้ำหนักตามร้านค้าหลายแห่งซึ่งเครื่องจะแสดงน้ำหนักเพียงแค่วางสิ่งของบนแท่นชั่ง ดังนั้นที่นี่เรากำลังสร้างเครื่องชั่งน้ำหนักเดียวกันโดยใช้ Arduino และโหลดเซลล์ที่มีความจุในการวัดได้ถึง 40 กก ขีด จำกัด นี้สามารถเพิ่มขึ้นได้อีกโดยใช้โหลดเซลล์ที่มีความจุสูงขึ้น
ส่วนประกอบหลักที่จำเป็นในการสร้างเครื่องชั่งน้ำหนัก Arduinoนี้คือเซ็นเซอร์ที่สามารถแปลงน้ำหนักให้เป็นสัญญาณไฟฟ้าที่เทียบเท่าได้ เซ็นเซอร์นี้จะเรียกว่าเป็นโหลดเซลล์ดังนั้นในโครงการนี้เราจะใช้โหลดเซลล์นี้เป็นของเราเซ็นเซอร์น้ำหนัก Arduino นอกจากนี้เรายังใช้โหลดเซลล์เดียวกันในโครงการอื่น ๆ เช่นเครื่องชั่งสำหรับขายปลีก Arduino แบบพกพาเครื่องชั่งน้ำหนัก Raspberry pi เป็นต้นคุณสามารถตรวจสอบได้หากสนใจ
ส่วนประกอบที่จำเป็นในการสร้างเครื่องชั่งน้ำหนัก Arduino:
- Arduino Uno
- โหลดเซลล์ (40 กก.)
- HX711 โหลดเซลล์โมดูลเครื่องขยายเสียง
- 16x2 LCD
- การเชื่อมต่อสายไฟ
- สาย USB
- เขียงหั่นขนม
- น็อต, เฟรมและฐาน
โหลดเซลล์และโมดูลเซ็นเซอร์น้ำหนัก HX711:
โหลดเซลล์เป็นตัวแปลงสัญญาณที่แปลงแรงหรือความดันเข้าออกไฟฟ้าขนาดของเอาต์พุตไฟฟ้านี้แปรผันตรงกับแรงที่กระทำ โหลดเซลล์มีมาตรวัดความเครียดซึ่งจะทำให้เสียรูปเมื่อใช้แรงกดกับมัน จากนั้นสเตรนเกจจะสร้างสัญญาณไฟฟ้าเมื่อเกิดการเสียรูปเมื่อความต้านทานที่มีประสิทธิผลเปลี่ยนแปลงไปในการเปลี่ยนรูป โหลดเซลล์มักประกอบด้วยมาตรวัดความเครียดสี่ตัวในโครงแบบสะพานวีทสโตน โหลดเซลล์มีหลายช่วงเช่น 5 กก. 10 กก. 100 กก. และอื่น ๆ ที่นี่เราใช้โหลดเซลล์ซึ่งรับน้ำหนักได้ถึง 40 กก.
ตอนนี้สัญญาณไฟฟ้าที่สร้างขึ้นโดยโหลดเซลล์มีขนาดไม่กี่มิลลิโวลต์ดังนั้นพวกเขาจึงจำเป็นต้องขยายเพิ่มเติมโดยแอมพลิฟายเออร์บางตัวและด้วยเหตุนี้เซ็นเซอร์ชั่งน้ำหนัก HX711 จึงเข้ามาในภาพโมดูลเซ็นเซอร์ชั่งน้ำหนัก HX711มีชิป HX711 ซึ่งเป็นตัวแปลง A / D ความแม่นยำสูง 24 ตัว (ตัวแปลงอนาล็อกเป็นดิจิตอล) HX711 มีช่องอินพุตอะนาล็อกสองช่องและเราสามารถรับได้ถึง 128 โดยการตั้งโปรแกรมช่องเหล่านี้ดังนั้นโมดูล HX711 จึงขยายเอาต์พุตไฟฟ้าที่ต่ำของโหลดเซลล์จากนั้นสัญญาณที่ขยายและแปลงเป็นดิจิทัลนี้จะถูกป้อนเข้าไปใน Arduino เพื่อรับน้ำหนัก
โหลดเซลล์เชื่อมต่อกับเครื่องขยายสัญญาณโหลดเซลล์ HX711 โดยใช้สายไฟสี่สาย สายไฟทั้งสี่สายนี้ ได้แก่ แดงดำขาวและเขียว / น้ำเงิน สีของสายไฟจากโมดูลไปยังโมดูลอาจมีการเปลี่ยนแปลงเล็กน้อย ด้านล่างรายละเอียดการเชื่อมต่อและแผนผัง:
- RED Wire เชื่อมต่อกับ E +
- BLACK Wire เชื่อมต่อกับ E-
- WHITE Wire เชื่อมต่อกับ A-
- GREEN Wire เชื่อมต่อกับ A +
แก้ไขโหลดเซลล์ด้วยแพลตฟอร์มและฐาน:
ขั้นตอนนี้เป็นทางเลือกและคุณสามารถวางน้ำหนักลงบนโหลดเซลล์ได้โดยตรงโดยไม่ต้องใช้แพลตฟอร์มและสามารถหนีบได้โดยไม่ต้องยึดเข้ากับฐานใด ๆ แต่จะดีกว่าถ้าติดแท่นสำหรับวางของที่มีขนาดใหญ่และยึดเข้ากับฐาน เพื่อให้มันหยุดนิ่ง ดังนั้นที่นี่เราต้องการที่จะทำให้กรอบหรือแพลตฟอร์มสำหรับการวางสิ่งที่สำหรับการวัดน้ำหนักนอกจากนี้ยังจำเป็นต้องมีฐานเพื่อยึดโหลดเซลล์โดยใช้น็อตและสลักเกลียว ที่นี่เราใช้กระดาษแข็งแข็งสำหรับโครงสำหรับวางของทับและไม้กระดานเป็นฐาน ตอนนี้ทำการเชื่อมต่อตามที่แสดงในแผนภาพวงจรและคุณก็พร้อมที่จะไป
คำอธิบายวงจร:
การเชื่อมต่อสำหรับโครงการนี้ทำได้ง่ายและมีแผนผังด้านล่าง หมุด LCD 16x2 RS, EN, d4, d5, d6 และ d7 เชื่อมต่อกับหมายเลขพิน 8, 9, 10, 11, 12 และ 13 ของ Arduino ตามลำดับ หมุด DT และ SCK ของโมดูล HX711 เชื่อมต่อโดยตรงกับหมุด A0 และ A1 ของ Arduino การเชื่อมต่อโหลดเซลล์ด้วยโมดูล HX711 ได้อธิบายไว้แล้วก่อนหน้านี้และยังแสดงไว้ในแผนภาพวงจรด้านล่าง
คำอธิบายการทำงาน:
หลักการทำงานของโครงการ Arduino Weight Measurement นี้เป็นเรื่องง่าย ก่อนที่จะลงรายละเอียดก่อนอื่นเราต้องปรับเทียบระบบนี้เพื่อการวัดน้ำหนักที่ถูกต้อง เมื่อผู้ใช้เปิดเครื่องระบบจะเริ่มปรับเทียบโดยอัตโนมัติ และหากผู้ใช้ต้องการปรับเทียบด้วยตนเองให้กดปุ่มกด เราได้สร้างฟังก์ชัน void calibrate () เพื่อวัตถุประสงค์ในการสอบเทียบตรวจสอบโค้ดด้านล่าง
สำหรับการปรับเทียบให้รอให้ตัวบ่งชี้ LCD วาง 100 กรัมบนโหลดเซลล์ดังแสดงในภาพด้านล่าง เมื่อ LCD แสดงคำ ว่า "ใส่ 100g" ให้ใส่น้ำหนัก 100g ลงบนโหลดเซลล์แล้วรอ หลังจากผ่านไปสักครู่กระบวนการสอบเทียบจะเสร็จสิ้น หลังจากสอบเทียบผู้ใช้สามารถใส่น้ำหนัก (สูงสุด 40 กก.) เหนือโหลดเซลล์และสามารถรับค่าได้มากกว่า LCD เป็นกรัม
ในโครงการนี้เราได้ใช้Arduinoเพื่อควบคุมกระบวนการทั้งหมด โหลดเซลล์รู้สึกน้ำหนักและวัสดุสิ้นเปลืองแรงดันไฟฟ้าแบบอะนาล็อกไฟฟ้าเพื่อHX711 โหลดโมดูลเครื่องขยายเสียง HX711 เป็น ADC 24 บิตซึ่งขยายและแปลงเอาต์พุตโหลดเซลล์แบบดิจิทัล จากนั้นค่าที่ขยายนี้จะถูกป้อนเข้ากับ Arduino ตอนนี้ Arduino คำนวณผลลัพธ์ของ HX711 และแปลงเป็นค่าน้ำหนักเป็นกรัมและแสดงบน LCD กดปุ่มที่ใช้สำหรับการปรับเทียบระบบ เราได้เขียนโปรแกรม Arduino สำหรับกระบวนการทั้งหมดตรวจสอบโค้ดและวิดีโอสาธิตในตอนท้ายของบทช่วยสอนนี้
รหัสเครื่องชั่งน้ำหนัก Arduino:
ส่วนการเขียนโปรแกรมของโครงการนี้มีความซับซ้อนเล็กน้อยสำหรับผู้เริ่มต้น ในโครงการนี้เราไม่ได้ใช้ห้องสมุดใด ๆ สำหรับการเชื่อมต่อเซ็นเซอร์โหลด HX711 กับ Arduino เราเพิ่งทำตามแผ่นข้อมูลของ HX711 และบันทึกการใช้งาน แม้ว่าจะมีห้องสมุดบางแห่งที่นำเสนอเพื่อจุดประสงค์นี้ แต่คุณต้องรวมไลบรารีนั้นไว้เท่านั้นและคุณสามารถรับน้ำหนักได้โดยใช้โค้ดบรรทัดเดียว
ก่อนอื่นเราได้รวมไฟล์ส่วนหัวสำหรับ LCD และกำหนดพินสำหรับสิ่งเดียวกัน และสำหรับปุ่มกดยัง จากนั้นประกาศตัวแปรบางตัวเพื่อการคำนวณ
# รวม
หลังจากนั้นเราได้สร้างฟังก์ชันด้านล่างสำหรับอ่านข้อมูลจากโมดูล HX711 และส่งคืนเอาต์พุต
readCount ยาวที่ไม่ได้ลงนาม (โมฆะ) {unsigned long Count; ถ่านที่ไม่ได้ลงนามฉัน; pinMode (DT, เอาท์พุท); digitalWrite (DT สูง); digitalWrite (SCK, LOW); นับ = 0; pinMode (DT, อินพุต); ในขณะที่ (digitalRead (DT)); สำหรับ (i = 0; i <24; i ++) {digitalWrite (SCK, HIGH); นับ = นับ << 1; digitalWrite (SCK, LOW); ถ้า (digitalRead (DT)) นับ ++; } digitalWrite (SCK, สูง); นับ = นับ ^ 0x800000; digitalWrite (SCK, LOW); ผลตอบแทน (นับ); }
หลังจากนั้นเราได้เริ่มต้น LCD และบอกทิศทางไปยังพินอินพุตและเอาต์พุตใน การตั้งค่าโมฆะ ()
การตั้งค่าเป็นโมฆะ () {Serial.begin (9600); pinMode (SCK, เอาท์พุท); pinMode (sw, INPUT_PULLUP); lcd.begin (16, 2); lcd.print ("น้ำหนัก"); lcd.setCursor (0,1); lcd.print ("การวัด"); ล่าช้า (1,000); lcd.clear (); ปรับเทียบ (); }
ถัดไปในฟังก์ชัน void loop () เราได้อ่านข้อมูลจากโมดูล HX711 และแปลงข้อมูลนี้เป็นน้ำหนัก (กรัม) และส่งไปยัง LCD
โมฆะ loop () {count = readCount (); int w = (((นับตัวอย่าง) / val) -2 * ((นับตัวอย่าง) / val)); Serial.print ("น้ำหนัก:"); Serial.print ((int) w); Serial.println ("g"); lcd.setCursor (0,0); lcd.print ("น้ำหนัก"); lcd.setCursor (0,1); lcd.print (w); lcd.print ("g"); ถ้า (digitalRead (sw) == 0) {val = 0; ตัวอย่าง = 0; w = 0; นับ = 0; ปรับเทียบ (); }}
ก่อนหน้านี้เราได้สร้างฟังก์ชั่นการสอบเทียบซึ่งเราได้ปรับเทียบระบบโดยวางน้ำหนัก 100gm ไว้บนโหลดเซลล์
โมฆะ calibrate () {lcd.clear (); lcd.print ("การปรับเทียบ… "); lcd.setCursor (0,1); lcd.print ("โปรดรอ… "); สำหรับ (int i = 0; i <100; i ++) {count = readCount (); ตัวอย่าง + = นับ; Serial.println (นับ); }……………….
ดังนั้นที่นี่เราได้เรียนรู้การเชื่อมต่อพื้นฐานของโหลดเซลล์และเซ็นเซอร์น้ำหนัก HX11 กับ Arduinoเพื่อวัดน้ำหนัก ในแบบฝึกหัดข้อความของเราเราจะสร้างแอปพลิเคชั่นบางอย่างตามการวัดน้ำหนักเช่นคอนเทนเนอร์อัจฉริยะประตูอัตโนมัติเป็นต้น