ในโพสต์นี้เราจะเรียนรู้เกี่ยวกับโหลดเซลล์ตามมาตรวัดความเครียด เราจะมาสำรวจว่า Strain Gauge คืออะไร Load Cell คืออะไรผลของอุณหภูมิบนเครื่องวัดความเครียดการชดเชยอุณหภูมิด้วย Wheatstone bridge และ Load cell amplifier HX711 และในที่สุดเราจะเรียนรู้วิธีการสร้างเครื่องชั่งน้ำหนักที่ใช้ Arduino โดยใช้โหลดเซลล์เป็น เซ็นเซอร์น้ำหนัก
โพสต์นี้เกี่ยวข้องกับการวัดน้ำหนักและวิธีการวัดและการใช้วิธีการในวงจรชั่งน้ำหนักที่ใช้ Arduino
เราทุกคนชอบที่จะเห็นน้ำหนักของเราโดยไม่คำนึงถึงอายุของเราเด็กตัวเล็ก ๆ อาจชอบที่จะเห็นน้ำหนักตัวเพิ่มขึ้นและผู้ใหญ่อาจชอบที่จะเห็นน้ำหนักตัวเองลดลง น้ำหนักเป็นแนวคิดที่สำคัญมาตั้งแต่สมัยโบราณซึ่งช่วยในการซื้อขายสินค้าการพัฒนาอุปกรณ์วิทยาศาสตร์และผลิตภัณฑ์เชิงพาณิชย์
ในยุคปัจจุบันเราวัดน้ำหนักเป็นกิโลกรัมมิลลิกรัมแม้กระทั่งไมโครกรัมเพื่อวัตถุประสงค์ในห้องปฏิบัติการ หนึ่งกรัมเหมือนกันทั่วโลกอุปกรณ์วัดน้ำหนักทั้งหมดต้องวัดเหมือนกัน การผลิตยาเม็ดจำนวนมากที่มีขนาดยาไม่กี่มิลลิกรัมก็เพียงพอที่จะทำให้ยาช่วยชีวิตเป็นยาฆ่าตัวตายได้
น้ำหนักคืออะไร?
น้ำหนักคือแรงที่กระทำบนเครื่องบิน ปริมาณของแรงที่กระทำเป็นสัดส่วนโดยตรงกับมวลของวัตถุซึ่งหมายถึงมวลของวัตถุที่สูงขึ้นแรงที่กระทำก็จะยิ่งสูงขึ้น
มวลคือปริมาณของสสารทางกายภาพที่มีอยู่ในวัตถุ
น้ำหนักขึ้นอยู่กับอีกปัจจัยหนึ่ง: แรงโน้มถ่วง
แรงโน้มถ่วงมีค่าคงที่ทั่วโลก (แรงโน้มถ่วงมีการเปลี่ยนแปลงเล็กน้อยเนื่องจากรูปทรงกลมที่ไม่สม่ำเสมอของโลก แต่มีขนาดเล็กมาก) น้ำหนัก 1Kg บนโลกจะมีน้ำหนัก 160 กรัมบนดวงจันทร์ที่มีมวลเท่ากันเนื่องจากดวงจันทร์มีแรงดึงดูดที่อ่อนแอกว่ามาก
ตอนนี้คุณรู้แล้วว่าน้ำหนักคืออะไรและอะไรคือปัจจัยที่ทำให้วัตถุหนัก
Strain gauge คืออะไร:
สเตรนเกจเป็นตัวแปลงสัญญาณหรือเซ็นเซอร์ที่ใช้วัดความเครียด (การเสียรูป) บนวัตถุ สิ่งนี้คิดค้นโดยวิศวกรไฟฟ้า Edward E. Simmons และวิศวกรเครื่องกล Arthur Claude Ruge
ภาพประกอบของ Strain Gauge:
มาตรวัดความเครียดมีความยืดหยุ่นเป็นรูปแบบฟอยล์โลหะบาง ๆ ที่คั่นกลางระหว่างแผ่นพลาสติกบาง ๆ สองแผ่นและต้องติดบนพื้นผิวโดยใช้กาวที่เหมาะสมหรือวัสดุยึดติดใด ๆ
เมื่อเราใช้น้ำหนักหรือแรงบนพื้นผิวมันจะทำให้เสียรูปและมาตรวัดความเครียดก็เปลี่ยนรูปเช่นกัน การเปลี่ยนรูปของสเตรนเกจทำให้ความต้านทานไฟฟ้าของฟอยล์โลหะเปลี่ยนไป
ตอนนี้การเปลี่ยนแปลงความต้านทานของมาตรวัดความเครียดเป็นสัดส่วนโดยตรงกับน้ำหนักหรือแรงที่กระทำบนพื้นผิว
ในชีวิตจริงการเปลี่ยนแปลงความต้านทานของสเตรนเกจนั้นไม่มีนัยสำคัญที่จะตรวจจับได้ ในการตรวจจับการเปลี่ยนแปลงเล็กน้อยในความต้านทานเราใช้ Wheatstone bridge
มาสำรวจกันโดยย่อว่า Wheatstone Bridge มีอะไรบ้าง
ทำความเข้าใจเกี่ยวกับสะพานวีทสโตน:
สะพานหินข้าวสาลีเป็นวงจรที่สามารถใช้เพื่อกำหนดความต้านทานที่ไม่รู้จัก สะพาน Wheatstone ได้รับการออกแบบโดย Samuel Hunter Christie ต่อมาสะพาน Wheatstone ได้รับการปรับปรุงและเผยแพร่โดย Sir Charles
วีทสโตน.
ภาพประกอบของวงจรสะพานวีทสโตน:
ดิจิตอลมัลติมิเตอร์ที่ทันสมัยของเราสามารถอ่านค่าความต้านทานได้ตั้งแต่ช่วงเมกะโอห์มกิโลโอห์มและช่วงโอห์ม
การใช้ Wheat stone bridge เราสามารถวัดความต้านทานได้ในช่วงมิลลิโอห์ม
สะพานหินข้าวสาลีประกอบด้วยตัวต้านทาน 4 ตัวจากสี่ตัว 3 ตัวเป็นที่รู้จักความต้านทานและตัวต้านทานที่ไม่รู้จัก
ความต่างศักย์ (แรงดันไฟฟ้า) จะใช้กับจุด“ A” และ“ C” และจากจุด“ B” และ“ D” จะมีการเชื่อมต่อโวลต์มิเตอร์
หากตัวต้านทานทั้งหมดเท่ากันจะไม่มีกระแสไหลที่จุด“ B” และ“ D” และโวลต์มิเตอร์จะอ่านค่าเป็นศูนย์ นี่เรียกว่าสะพานสมดุล
หากความต้านทานของตัวต้านทานแตกต่างจากตัวต้านทานอื่น ๆ อีกสามตัวจะมีการไหลของแรงดันไฟฟ้าระหว่างจุด“ B” และ“ D” และโวลต์มิเตอร์จะอ่านค่าบางส่วนตามสัดส่วนกับความต้านทานที่ไม่รู้จัก สิ่งนี้เรียกว่าสะพานที่ไม่สมดุล
ที่นี่ความต้านทานที่ไม่รู้จักคือมาตรวัดความเครียดเมื่อความต้านทานเปลี่ยนไปจะสะท้อนกับโวลต์มิเตอร์
ตอนนี้เราได้แปลงการเสียรูปหรือน้ำหนักหรือแรงเป็นสัญญาณแรงดันไฟฟ้า แรงดันไฟฟ้านี้จำเป็นต้องได้รับการขยายเพื่อให้ได้การอ่านที่เป็นประโยชน์ซึ่งจะถูกป้อนไปยังไมโครคอนโทรลเลอร์เพื่อให้ได้ค่าที่อ่านเป็นกรัม
ตอนนี้เรามาดูกันว่าอุณหภูมิมีผลต่อประสิทธิภาพของสเตรนเกจอย่างไร
ผลกระทบของอุณหภูมิใน Strain Gauge:
มาตรวัดความเครียดมีความไวต่ออุณหภูมิและอาจทำให้การอ่านน้ำหนัก / แรงจริงไม่สมบูรณ์ เมื่อมีการเปลี่ยนแปลงของอุณหภูมิโดยรอบฟอยล์โลหะจะอยู่ภายใต้การขยายตัวของโลหะซึ่งส่งผลโดยตรงต่อความต้านทาน
เราสามารถทำให้ผลของอุณหภูมิเป็นโมฆะได้โดยใช้ Wheatstone bridge มาดูกันว่าเราจะชดเชยอุณหภูมิโดยใช้ Wheatstone bridge ได้อย่างไร
การชดเชยอุณหภูมิ:
เราสามารถทำให้ผลของอุณหภูมิเป็นกลางได้อย่างง่ายดายโดยการเปลี่ยนตัวต้านทานทั้งหมดด้วยสเตรนเกจ ตอนนี้ความต้านทานของมาตรวัดความเครียดทั้งหมดจะได้รับผลกระทบจากอุณหภูมิเท่า ๆ กันและเสียงที่ไม่ต้องการจะถูกลบล้างโดยลักษณะของสะพานวีทสโตน
โหลดเซลล์คืออะไร?
โหลดเซลล์เป็นโปรไฟล์อลูมิเนียมที่มีสเตรนเกจติดอยู่ทั้ง 4 ด้านในโครงแบบวีทสโตนบริดจ์
ภาพประกอบของโหลดเซลล์:
โหลดเซลล์ประเภทนี้มีความแข็งและนิยมใช้ในอุตสาหกรรม มีที่ยึดสกรู 4 ตัวด้านหนึ่งยึดเข้ากับพื้นผิวที่หยุดนิ่งและปลายอีกด้านหนึ่งยึดเข้ากับตัวยึด (ตะกร้าพูด) เพื่อยึดวัตถุที่จะวัด
มีน้ำหนักสูงสุดที่ระบุไว้ในแผ่นข้อมูลหรือบนตัวถังเกินข้อกำหนดอาจทำให้โหลดเซลล์เสียหายได้
เซลล์สะพานแบบเต็มประกอบด้วยขั้ว 4 ขั้วคือ E +, E- ซึ่งเป็นสายกระตุ้นที่ใช้แรงดันไฟฟ้า อีกสองสายคือ S + และ S- ซึ่งเป็นสายสัญญาณที่วัดแรงดันไฟฟ้า
ตอนนี้แรงดันไฟฟ้าเหล่านี้อยู่ในช่วงมิลลิโวลต์ไม่แรงพอที่ไมโครคอนโทรลเลอร์จะอ่านและประมวลผลได้ เราจำเป็นต้องมีการขยายและไมโครคอนโทรลเลอร์ควรมองเห็นการเปลี่ยนแปลงเล็กน้อย ในการดำเนินการนี้มีโมดูลเฉพาะที่เรียกว่าแอมพลิฟายเออร์โหลดเซลล์เรามาดูภาพรวมกัน
โหลดเซลล์ Amplifier HX711:
ภาพประกอบของโมดูลแอมพลิฟายเออร์โหลดเซลล์ HX711:
แอมพลิฟายเออร์โหลดเซลล์ใช้ IC HX711 ซึ่งเป็นตัวแปลงอนาล็อกเป็นดิจิตอล 24 บิตที่ออกแบบมาโดยเฉพาะสำหรับการวัดน้ำหนัก มีกำไรที่เลือกได้แตกต่างกัน 32, 64 และ 128 และทำงานบน 2.6 ถึง 5.5 V.
บอร์ดฝ่าวงล้อมนี้ช่วยในการตรวจจับการเปลี่ยนแปลงเล็ก ๆ บนโหลดเซลล์ โมดูลนี้ต้องการไลบรารี HX711.h เพื่อใช้งาน
Arduino หรือไมโครคอนโทรลเลอร์อื่น ๆ
โหลดเซลล์จะเชื่อมต่อกับโมดูล HX711 และโมดูลจะเชื่อมต่อกับ Arduino วงจรการวัดน้ำหนักจำเป็นต้องได้รับการพัฒนาในลักษณะนี้
สรุปตอนนี้คุณรู้แล้วว่าสเตรนเกจคืออะไรสะพานวีทสโตนคืออะไรผลกระทบของอุณหภูมิที่มีต่อมาตรวัดความเครียดการชดเชยอุณหภูมิและแอมพลิฟายเออร์โหลดเซลล์คืออะไร
เราได้ทำความเข้าใจอย่างถ่องแท้ถึงส่วนทางทฤษฎีของการออกแบบเครื่องชั่งน้ำหนักจากการอภิปรายข้างต้นแล้วตอนนี้เรามาดูกันว่าเซลล์ Loas สามารถใช้ทำเครื่องชั่งน้ำหนักเชิงปฏิบัติโดยใช้ Arduino ได้อย่างไร
การออกแบบเครื่องชั่งน้ำหนักดิจิตอลโดยใช้ Arduino
ในการอภิปรายต่อไปนี้เราจะเรียนรู้วิธีสร้างเครื่องชั่งน้ำหนักดิจิตอลโดยใช้ Arduino ซึ่งสามารถวัดน้ำหนักได้ตั้งแต่ไม่กี่กรัมถึง 40 Kg (ขึ้นอยู่กับข้อกำหนดของโหลดเซลล์ของคุณ) ด้วยความแม่นยำที่สมเหตุสมผล เราจะเรียนรู้เกี่ยวกับการจำแนกประเภทของโหลดเซลล์เกรดที่มีความแม่นยำและเราจะทำการปรับเทียบวงจรที่เสนอและสรุปเครื่องชั่งน้ำหนัก
หมายเหตุ: วงจรนี้อาจไม่สอดคล้องกับมาตรฐานที่จำเป็นสำหรับการนำไปใช้ในเชิงพาณิชย์
เครื่องชั่งน้ำหนักถูกใช้ในการค้าและการวิจัยที่แตกต่างกันตั้งแต่มิลลิกรัมไปจนถึงหลายตัน เครื่องชั่งน้ำหนักที่เสนอจะขึ้นอยู่กับข้อกำหนดของโหลดเซลล์ของคุณ มีตั้งแต่ 500 กรัม 1 Kg 5Kg 10 Kg 20 Kg และ 40 Kg เป็นต้น
โหลดเซลล์มีหลายเกรดมีช่วงความแม่นยำที่แตกต่างกันและคุณควรเลือกรุ่นที่เหมาะสมกับโครงการของคุณ
การจำแนกประเภทความแม่นยำของโหลดเซลล์:
คลาสความแม่นยำที่แตกต่างกันถูกกำหนดไว้สำหรับการใช้งานประเภทต่างๆ การจัดประเภทด้านล่างนี้มาจากช่วงความแม่นยำต่ำสุดไปจนถึงช่วงความแม่นยำสูงสุด
โหลดเซลล์ที่มีความแม่นยำต่ำกว่า (แต่มีความแม่นยำพอสมควร) จัดเป็น D1, C1 และ C2 เท่านี้ก็เพียงพอแล้วสำหรับโครงการนี้ โหลดเซลล์เหล่านี้ใช้สำหรับวัดน้ำหนักของทรายซีเมนต์หรือน้ำ
โหลดเซลล์เกรด C3 ใช้ในการประกันคุณภาพเช่นการตรวจสอบน้ำหนักของลูกปืนชิ้นส่วนโครงสร้างเครื่องจักรเป็นต้น
C4, C5, C6 มีความแม่นยำที่ดีที่สุดในระดับเดียวกันโหลดเซลล์เกรดเหล่านี้ใช้ในการวัดเป็นกรัมถึงไมโครกรัม ชั้นเรียนเกรดเหล่านี้ใช้ในเครื่องชั่งที่เคาน์เตอร์ร้านค้าการตรวจสอบการผลิตขนาดใหญ่การบรรจุอาหารและการใช้ในห้องปฏิบัติการเป็นต้น
ตอนนี้เรามาดูรายละเอียดทางเทคนิคของโครงการกัน
แผนภูมิวงจรรวม:
โหลดการเชื่อมต่อเซลล์ HX711 กับ Arduino และโหลดเซลล์
โครงการประกอบด้วย Arduino, โหลดเซลล์และโหลดเซลล์บอร์ด HX711 และคอมพิวเตอร์ เอาต์พุตสามารถตรวจสอบได้บน Serial monitor ของ Arduino IDE
สมองของโครงการนั้นเหมือนกับ arduino เสมอคุณสามารถใช้บอร์ด Arduino รุ่นใดก็ได้ HX711 เป็น ADC 24 บิตซึ่งสามารถโค้งงอได้น้อยที่สุดเนื่องจากน้ำหนักของโหลดเซลล์ สามารถทำงานได้ตั้งแต่ 2.7 V ถึง 5 V โดยใช้พลังงานจากบอร์ด Arduino
โดยทั่วไปโหลดเซลล์มีสายไฟสี่สายซึ่งเป็นเอาต์พุตจากเกจวัดความเครียดที่กำหนดค่าสะพานวีทสโตน
สายสีแดงคือ E +, สายสีดำคือ E-, สายสีเขียวคือ A- และสายสีขาวคือ A + โมดูล HX711 บางโมดูลระบุชื่อของเทอร์มินัลของโหลดเซลล์และโมดูล HX711 บางโมดูลระบุสีของสายไฟแบบจำลองดังกล่าวแสดงอยู่ในแผนภาพวงจร
พิน DATA ของ HX711 เชื่อมต่อกับพิน # 3 ของ Arduino และพินนาฬิกาของ HX711 เชื่อมต่อกับพิน # 2 ของ Arduino
วิธีการติดตั้งโหลดเซลล์:
โหลดเซลล์มีรูสกรูสี่รูสองรูที่ทั้งสองด้าน ด้านใดด้านหนึ่งจะต้องอยู่นิ่งเพื่อความแม่นยำสูงสุดอาจจะถูกกองไว้กับไม้ที่มีน้ำหนักพอสมควร
สามารถใช้ไม้บาง ๆ หรือแผ่นบางเพื่อรับน้ำหนักที่วัดได้ตามภาพประกอบด้านบน
ดังนั้นเมื่อคุณวางน้ำหนักโหลดเซลล์จะงอมาตรวัดความเครียดและเปลี่ยนความต้านทานซึ่งวัดโดยโมดูล HX711 และป้อนเข้ากับ Arduino
เมื่อตั้งค่าฮาร์ดแวร์เสร็จแล้วให้อัปโหลดรหัสและปรับเทียบกัน
การปรับเทียบวงจร:
มีสองโปรแกรมโปรแกรมหนึ่งคือโปรแกรมการสอบเทียบ (การค้นหาปัจจัยการสอบเทียบ) รหัสอื่นคือโปรแกรมการวัดน้ำหนักปัจจัยการสอบเทียบที่พบจากรหัสโปรแกรมสอบเทียบจะต้องถูกป้อนในโปรแกรมการวัดน้ำหนัก
ปัจจัยการสอบเทียบจะกำหนดความแม่นยำของการวัดน้ำหนัก
ดาวน์โหลดไลบรารี HX711 ที่นี่: github.com/bogde/HX711
รหัสโปรแกรมสอบเทียบ:
//-------------------- --------------------//
#include
const int out = 3
const int clck = 2
HX711 scale(out, clck)
float CalibrationFactor = -96550
char var
void setup()
{
Serial.begin(9600)
Serial.println('------------- Weight Scale Calibration --------------')
Serial.println('Press Q,W,E,R or q,w,e,r to increase calibration factor by 10,100,1000,10000 respectively')
Serial.println('Press A,S,D,F or a,s,d,f to decrease calibration factor by 10,100,1000,10000 respectively')
Serial.println('Press 'T' or 't' for tare')
scale.set_scale()
scale.tare()
long zero_factor = scale.read_average()
Serial.print('Zero factor: ')
Serial.println(zero_factor)
}
void loop()
{
scale.set_scale(CalibrationFactor)
Serial.print('Reading: ')
Serial.print(scale.get_units(), 3)
Serial.println(' Kilogram')
Serial.print('Calibration Factor is: ')
Serial.println(CalibrationFactor)
Serial.println('--------------------------------------------')
if (Serial.available())
{
var = Serial.read()
if (var == 'q')
{
CalibrationFactor = CalibrationFactor + 10
}
else if (var == 'a')
{
CalibrationFactor = CalibrationFactor - 10
}
else if (var == 'w')
{
CalibrationFactor = CalibrationFactor + 100
}
else if (var == 's')
{
CalibrationFactor = CalibrationFactor - 100
}
else if (var == 'e')
{
CalibrationFactor = CalibrationFactor + 1000
}
else if (var == 'd')
{
CalibrationFactor = CalibrationFactor - 1000
}
else if (var == 'r')
{
CalibrationFactor = CalibrationFactor + 10000
}
else if (var == 'f')
{
CalibrationFactor = CalibrationFactor - 10000
}
else if (var == 'Q')
{
CalibrationFactor = CalibrationFactor + 10
}
else if (var == 'A')
{
CalibrationFactor = CalibrationFactor - 10
}
else if (var == 'W')
{
CalibrationFactor = CalibrationFactor + 100
}
else if (var == 'S')
{
CalibrationFactor = CalibrationFactor - 100
}
else if (var == 'E')
{
CalibrationFactor = CalibrationFactor + 1000
}
else if (var == 'D')
{
CalibrationFactor = CalibrationFactor - 1000
}
else if (var == 'R')
{
CalibrationFactor = CalibrationFactor + 10000
}
else if (var == 'F')
{
CalibrationFactor = CalibrationFactor - 10000
}
else if (var == 't')
{
scale.tare()
}
else if (var == 'T')
{
scale.tare()
}
}
}
//-------------------- --------------------//
วิธีสอบเทียบ:
- เมื่อติดตั้งฮาร์ดแวร์เสร็จแล้วให้อัปโหลดโค้ดด้านบน
- ถอดแผ่นบางหรือไม้ที่ใช้สำหรับรับน้ำหนักรวมทั้งสกรูสองตัว (ควรยึดด้านอื่น ๆ ของโหลดเซลล์เข้ากับฐาน)
- เปิด Serial monitor
- วางน้ำหนักที่ทราบไว้บนโหลดเซลล์โดยตรง 100 กรัม (พูด)
- กด Q, W, E, R เพื่อเพิ่มปัจจัยการสอบเทียบ 10,100,1000,10000 ตามลำดับ
- กด A, S, D, F เพื่อลดปัจจัยการสอบเทียบ 10,100,1000,10000 ตามลำดับ
- กด“ Enter” ทุกครั้งที่เพิ่มหรือลดปัจจัยการสอบเทียบ
- เพิ่มหรือลดปัจจัยการสอบเทียบจนกว่าน้ำหนักที่ถูกต้องของวัสดุน้ำหนักที่ทราบจะปรากฏขึ้น
- ฟังก์ชัน Tare คือการตั้งค่ามาตราส่วนน้ำหนักให้เป็นศูนย์ซึ่งจะมีประโยชน์เมื่อคุณต้องการวัดน้ำหนักของน้ำ (พูด) โดยไม่ต้องชั่งน้ำหนักชาม วางชามก่อนกดภาชนะแล้วเทน้ำ
- สังเกตปัจจัยการสอบเทียบและจดไว้หลังจากที่ทราบน้ำหนักปรากฏขึ้น
ตอนนี้สามารถวัดน้ำหนักที่ไม่รู้จักได้แล้ว
รหัสโปรแกรมการวัดน้ำหนัก:
//---------------- ----------------//
#include
const int out = 3
const int clck = 2
HX711 scale(out, clck)
float CalibrationFactor = -12000 // Replace -12000 the calibration factor.
void setup()
{
Serial.begin(9600)
Serial.println('Press 'T' or 't' to tare')
scale.set_scale(CalibrationFactor)
scale.tare()
}
void loop()
{
Serial.print('Weight: ')
Serial.print(scale.get_units(), 3)
Serial.println(' Kilogram')
if (Serial.available())
{
char var = Serial.read()
if (var == 't')
{
scale.tare()
}
if (var == 'T')
{
scale.tare()
}
}
}
//---------------- ----------------//
float CalibrationFactor = -12000
แทนที่ -12000 ด้วยปัจจัยการสอบเทียบที่คุณพบ อาจเป็นจำนวนลบหรือจำนวนบวก
อัปโหลดรหัสด้านบนพร้อมกับการตั้งค่าฮาร์ดแวร์ทั้งหมดและเครื่องชั่งน้ำหนักของคุณก็พร้อมแล้ว
เครื่องชั่งน้ำหนักโดยใช้จอ LCD
บทความข้างต้นอธิบายระบบเครื่องชั่งน้ำหนักที่ใช้ Arduino โดยใช้พีซีของคุณในส่วนต่อไปนี้เราจะพยายามสร้างเครื่องชั่งน้ำหนักรุ่นที่ใช้งานได้จริงโดยเพิ่มจอ LCD 16 x 2 เพื่อที่เราจะได้ไม่ต้องพึ่งพาพีซีขณะทำการวัด น้ำหนัก. ในโพสต์นี้มีการเสนอสองเวอร์ชันโดยรุ่นหนึ่งมี 'I2C' 16 x 2 LCD และอีกรุ่นหนึ่งไม่มีจอ LCD 'I2C' 16 x 2
ที่นี่มีให้เลือกสองทางเพื่อให้ผู้อ่านสามารถเลือกการออกแบบได้ตามความสะดวก ความแตกต่างหลักระหว่างทั้งสองคือการเชื่อมต่อสายกับโมดูลอะแดปเตอร์ I2C เพียง 4 สาย (Vcc, GND, SCL และ SDA) เป็นสิ่งจำเป็นสำหรับการทำงานของจอแสดงผล LCD ในขณะที่ไม่มีอะแดปเตอร์ I2C คุณต้องใช้สายไฟหลายเส้นเพื่อเชื่อมต่อระหว่าง Arduino และจอแสดงผล LCD
อย่างไรก็ตามทั้งสองฟังก์ชั่นเหมือนกันทุกประการบางคนชอบ I2C มากกว่าแบบเดิมและบางส่วนชอบในทางกลับกันดังนั้นนี่คือการออกแบบทั้งสองแบบ
มาดูการออกแบบ LCD แบบเดิม:
แผนภูมิวงจรรวม:
ในแผนผังข้างต้นเรามี arduino, จอ LCD 16 x 2 และโพเทนชิออมิเตอร์ 10K สำหรับปรับความคมชัดของจอ LCD
3.3 V สามารถป้อนจาก Arduino ไปยังจอแสดงผล LCD สำหรับแบ็คไลท์ มีปุ่มกดเพื่อให้การอ่านน้ำหนักเป็นศูนย์ฟังก์ชันนี้จะอธิบายโดยละเอียดในตอนท้าย
นี่เป็นเพียงการเชื่อมต่อระหว่าง LCD และ Arduino การเชื่อมต่อระหว่างโหลดเซลล์และโหลดเซลล์แอมพลิฟายเออร์กับ Arduino แสดงไว้ในส่วนก่อนหน้า
รหัสสำหรับเครื่องชั่งน้ำหนัก LCD:
// -------- Program developed by R.GIRISH -------//
#include
#include
const int rs = 10
const int en = 9
const int d4 = 8
const int d5 = 7
const int d6 = 6
const int d7 = 5
LiquidCrystal lcd(rs, en, d4, d5, d6, d7)
const int out = 3
const int clck = 2
const int Tare = 4
HX711 scale(out, clck)
float CalibrationFactor = -12000 // Replace -12000 the calibration factor.
void setup()
{
lcd.begin(16, 2)
pinMode(Tare, INPUT)
digitalWrite(Tare, HIGH)
lcd.setCursor(0, 0)
lcd.print(' Weight Scale')
lcd.setCursor(0, 1)
lcd.print(' Machine')
delay(2000)
scale.set_scale(CalibrationFactor)
scale.tare()
}
void loop()
{
lcd.clear()
lcd.setCursor(0, 0)
lcd.print('Weight:')
lcd.print(scale.get_units(), 3)
lcd.print(' Kg')
delay(200)
if (digitalRead(Tare) == LOW)
{
scale.tare()
lcd.clear()
lcd.setCursor(0, 0)
lcd.print('Tare ......')
lcd.setCursor(0, 1)
lcd.print('Setting to 0 Kg.')
delay(1000)
}
}
// -------- Program developed by R.GIRISH -------//
ตอนนี้เรามาดูวิธีใช้เครื่องชั่งน้ำหนักนี้กับจอ LCD ที่ใช้อะแดปเตอร์ I2C
แผนภาพวงจร Arduino และจอแสดงผล LCD พร้อมอะแดปเตอร์ I2C:
ที่นี่เรามีเพียง Arduino และจอแสดงผล LCD พร้อมอะแดปเตอร์ I2C ที่ด้านหลัง ตอนนี้การเชื่อมต่อสายทำได้ง่ายขึ้นและตรงไปตรงมา
ภาพประกอบของโมดูล I2C:
โมดูลนี้สามารถบัดกรีได้โดยตรงที่ด้านหลังของจอ LCD 16 x 2 หรือ 20 x 4 ตามปกติและทำตามแผนผัง
และอีกครั้งโปรดดูส่วนก่อนหน้าสำหรับการเชื่อมต่อโหลดเซลล์เครื่องขยายสัญญาณโหลดเซลล์และ Arduino
ดาวน์โหลดไลบรารีต่อไปนี้สำหรับใช้ I2C:
github.com/marcoschwartz/LiquidCrystal_I2C
github.com/PaulStoffregen/Wire
รหัสสำหรับวงจรมาตราส่วนน้ำหนักตาม I2C:
// -------- Program developed by R.GIRISH -------//
#include
#include
#include
const int out = 3
const int clck = 2
const int Tare = 4
HX711 scale(out, clck)
float CalibrationFactor = -12000 // Replace -12000 the calibration factor.
LiquidCrystal_I2C lcd(0x27, 16, 2)
void setup()
{
lcd.init()
lcd.backlight()
pinMode(Tare, INPUT)
digitalWrite(Tare, HIGH)
lcd.setCursor(0,0)
lcd.print(' Weight Scale')
lcd.setCursor(0,1)
lcd.print(' Machine')
delay(2000)
scale.set_scale(CalibrationFactor)
scale.tare()
}
void loop()
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Weight:')
lcd.print(scale.get_units(), 3)
lcd.print(' Kg')
delay(200)
if (digitalRead(Tare) == LOW)
{
scale.tare()
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Tare ......')
lcd.setCursor(0,1)
lcd.print('Setting to 0 Kg.')
delay(1000)
}
}
// -------- Program developed by R.GIRISH -------//
บันทึก:
คุณควรป้อนปัจจัยการสอบเทียบในรหัสก่อนที่คุณจะอัปโหลดรหัสอย่างใดอย่างหนึ่งไปยัง Arduino
float CalibrationFactor = -12000
การได้รับปัจจัยการสอบเทียบได้อธิบายไว้ในส่วนก่อนหน้าข้างต้น
ฟังก์ชัน Tare:
ฟังก์ชัน Tare ในเครื่องชั่งน้ำหนักคือการนำการอ่านค่าเป็นศูนย์ ตัวอย่างเช่นถ้าเรามีตะกร้าสำหรับใส่สินค้าน้ำหนักสุทธิจะเป็นน้ำหนักของตะกร้า + น้ำหนักของสินค้า
ถ้าเรากดปุ่มภาชนะกับตะกร้าบนโหลดเซลล์ก่อนที่จะโหลดสินค้าน้ำหนักของตะกร้าจะถูกละเลยและเราสามารถวัดน้ำหนักของสินค้าเพียงอย่างเดียว
หากคุณมีคำถามใด ๆ เกี่ยวกับวงจรเครื่องชั่งน้ำหนัก LCD ที่ใช้ Arduino นี้โปรดแสดงความคิดเห็นในส่วนความคิดเห็นคุณอาจได้รับคำตอบอย่างรวดเร็ว
คู่ของ: วงจรโซลิดสเตตคอนแทคสำหรับปั๊มมอเตอร์ ถัดไป: วิธีสร้าง Step Down Transformers