- آلة وزن اردوينو تعمل
- المكونات المطلوبة لآلة الوزن بالاردوينو
- آلة وزن تعتمد على اردوينو - مخطط الدائرة
- صنع الدائرة على لوح أداء منقط
- بناء حاوية لآلة الوزن القائمة على الأردوينو
- آلة وزن اردوينو - كود
موازين الحمل الرقمية هي معجزة أخرى للهندسة والتصميم في العصر الحديث. نعم ، نحن نتحدث عن مقياس الوزن الذي نراه غالبًا في معظم محلات البقالة والأماكن الأخرى ، لكن هل تساءلت يومًا كيف يعمل مقياس الوزن؟ للإجابة على هذا السؤال ، في هذا المشروع ، سنلقي نظرة على خلية التحميل وعملها. أخيرًا ، سنقوم ببناء مقياس تحميل محمول قائم على Arduino باستخدام مستشعر الوزن HX711 ، والذي يمكنه قياس أوزان تصل إلى 10 كجم.
تعتبر آلة الوزن هذه مثالية للمتاجر المحلية ، حيث يقومون بتعبئة العناصر بكميات كبيرة. مثل المنتجات التجارية ، سيكون لميزان الوزن الخاص بنا زر صفري يخرج من الميزان إلى الصفر. أيضًا ، لديه خيار لضبط الوزن للقياس ، عندما يصل وزن القياس إلى الوزن المحدد ، يصدر صوت صفير سريعًا ويتوقف عندما يساوي الوزن المحدد وزن القياس. بهذه الطريقة ، يمكن للمستخدم حزمها بمجرد سماع الصوت ولن يضطر إلى النظر إلى الشاشة. نظرًا لأن هذا مشروع بسيط للغاية ، فسنبني هذا بسهولة باستخدام مكونات مثل Arduino وخلية تحميل مقياس الإجهاد. لذلك ، دون مزيد من التأخير ، دعنا ندخله مباشرة.
في مقال سابق ، قمنا بعمل مشاريع مثل مستشعر الوزن القائم على Raspberry Pi و IoT Smart Container مع تنبيه البريد الإلكتروني ومراقبة الويب باستخدام وحدة مضخم خلية الحمل HX711 الشهيرة. لذا ، تحقق من ذلك إذا كان هذا هو مطلبك.
آلة وزن اردوينو تعمل
العنصر الرئيسي من هذا المشروع هو عبارة عن خلية تحميل و HX711 تحميل وحدة مكبر للصوت الخلية. كما ترون ، جانب واحد محدد بعشرة كيلوغرامات. أيضًا ، يمكنك ملاحظة نوع من الغراء الواقي الأبيض فوق خلية التحميل وخروج أربعة ألوان مختلفة من الأسلاك ، وسوف يكشف السر الموجود أسفل الغراء الواقي الأبيض ووظيفة هذه الأسلاك ذات الألوان الأربعة لاحقًا في المقالة.
خلية الحمل هي محول طاقة يحول القوة أو الضغط إلى خرج كهربائي. لها جانبان ، لنقل الجانب الأيمن والجانب الأيسر ، وهي مصنوعة من كتل الألومنيوم. كما ترون في منتصف المادة يتم رقيقها بوضع ثقب كبير. وهذا هو السبب في أن هذه هي النقطة التي تعاني من التشوه عند وضع الحمل على جانب التثبيت. تخيل الآن أن الخلية اليمنى مثبتة على القاعدة والجانب الأيسر هو المكان الذي يتم فيه وضع الحمل ، وهذا التكوين يشوه خلية تحميل مقياس الضغط بسبب الفتحة العملاقة في المنتصف.
عندما يتم وضع الحمل على جانب التحميل لخلية التحميل ، فإن الجزء العلوي سوف يعاني من التوتر ، والجزء السفلي سوف يعاني من الضغط. هذا هو السبب في انحناء قضيب الألومنيوم على الجانب الأيسر. إذا قمنا بقياس هذا التشوه ، يمكننا قياس القوة التي تم تطبيقها على كتلة الألومنيوم وهذا بالضبط ما سنفعله.
الآن ، يبقى السؤال ما هو داخل الغراء الواقي الأبيض؟ داخل هذا الغراء الواقي ، سنجد مكونًا مرنًا رقيقًا جدًا يسمى مقياس الضغط. مقياس الضغط هو مكون يستخدم لقياس الضغط. إذا ألقينا نظرة فاحصة على هذا المكون ، يمكننا أن نرى وسادتي اتصال ، ومن ثم لدينا نمط سلك موصل مع انحرافات متكررة. هذا السلك الموصل له مقاومة محددة. عندما نثنيها ستتغير قيمة المقاومة؟ لذلك ، يتم تثبيت جانب واحد من مقياس الضغط وتثبيته في مكان ما ، إذا وضعنا وزنًا على الجانب الآخر من قضيب الألومنيوم ، فسيؤدي ذلك إلى إجبار مقياس الضغط على الانحناء ، مما يؤدي إلى حدوث تغيير في المقاومة. كيف يحدث هذا في الواقع؟ إن النمط الموصل لمقياس الضغط مصنوع من النحاس ، وسيكون لهذا السلك مساحة وطول معينين ، وبالتالي فإن هاتين الوحدتين ستعطيان مقاومة السلك. مقاومة السلك تتعارض مع تدفق التيار. من الواضح الآن أنه إذا أصبحت مساحة هذا السلك أصغر ،يمكن أن يمر عدد أقل من الإلكترونات مما يعني تيارًا أقل. الآن إذا قمنا بزيادة المساحة ، فسوف تزيد من مقاومة الموصل. إذا تم تطبيق بعض القوة على هذا السلك ، فسيؤدي ذلك إلى تمدد المنطقة وستقل في نفس الوقت ، وتزداد المقاومة. لكن هذا الاختلاف في المقاومة منخفض للغاية. إذا قمنا بتمديد مقياس الضغط ، ستزداد المقاومة وإذا قمنا بضغطها ، ستنخفض المقاومة. لقياس القوة ، نحتاج إلى قياس المقاومة. قياس المقاومة بشكل مباشر ليس دائمًا عمليًا ، لأن التغيير صغير جدًا. لذلك بدلاً من قياس المقاومة ، يمكننا قياس الفولتية بسهولة. لذلك ، في هذه الحالة ، نحتاج إلى تحويل خرج المقياس من قيم المقاومة إلى قيم الجهد.إذا تم تطبيق بعض القوة على هذا السلك ، فسيؤدي ذلك إلى تمدد المنطقة وستقل في نفس الوقت ، وتزداد المقاومة. لكن هذا الاختلاف في المقاومة منخفض للغاية. إذا قمنا بتمديد مقياس الضغط ، ستزداد المقاومة وإذا قمنا بضغطها ، ستنخفض المقاومة. لقياس القوة ، نحتاج إلى قياس المقاومة. قياس المقاومة بشكل مباشر ليس دائمًا عمليًا ، لأن التغيير صغير جدًا. لذلك بدلاً من قياس المقاومة ، يمكننا قياس الفولتية بسهولة. لذلك ، في هذه الحالة ، نحتاج إلى تحويل خرج المقياس من قيم المقاومة إلى قيم الجهد.إذا تم تطبيق بعض القوة على هذا السلك ، فسيؤدي ذلك إلى تمدد المنطقة وستقل في نفس الوقت ، وتزداد المقاومة. لكن هذا الاختلاف في المقاومة منخفض للغاية. إذا قمنا بتمديد مقياس الضغط ، ستزداد المقاومة وإذا قمنا بضغطها ، ستنخفض المقاومة. لقياس القوة ، نحتاج إلى قياس المقاومة. قياس المقاومة بشكل مباشر ليس دائمًا عمليًا ، لأن التغيير صغير جدًا. لذلك بدلاً من قياس المقاومة ، يمكننا قياس الفولتية بسهولة. لذلك ، في هذه الحالة ، نحتاج إلى تحويل خرج المقياس من قيم المقاومة إلى قيم الجهد.ستنخفض المقاومة. لقياس القوة ، نحتاج إلى قياس المقاومة. قياس المقاومة مباشرة ليس عمليًا دائمًا ، لأن التغيير ضئيل جدًا. لذلك بدلاً من قياس المقاومة ، يمكننا قياس الفولتية بسهولة. لذلك ، في هذه الحالة ، نحتاج إلى تحويل خرج المقياس من قيم المقاومة إلى قيم الجهد.ستنخفض المقاومة. لقياس القوة ، نحتاج إلى قياس المقاومة. قياس المقاومة بشكل مباشر ليس دائمًا عمليًا ، لأن التغيير صغير جدًا. لذلك بدلاً من قياس المقاومة ، يمكننا قياس الفولتية بسهولة. لذلك ، في هذه الحالة ، نحتاج إلى تحويل خرج المقياس من قيم المقاومة إلى قيم الجهد.
يمكننا القيام بذلك بمساعدة جسر ويتستون. نضع مقياس الإجهاد في جسر Wheatstone إذا كان الجسر متوازنًا ، يجب أن يكون الجهد في النقطة الوسطى صفرًا (سبق أن قمنا ببناء مشروع حيث وصفنا كيفية عمل جسر Wheatstone ، يمكنك التحقق من ذلك إذا كنت تريد ذلك معرفة المزيد عن الموضوع). عندما يغير مقياس الضغط مقاومته ، فإنه سيؤدي إلى عدم توازن الجسر ، وسوف يتغير الجهد أيضًا. إذن ، هذه هي الطريقة التي يحول بها جسر ويتستون تغيرات المقاومة إلى قيم الجهد.
لكن هذا التغيير في الجهد لا يزال صغيرًا جدًا ، لذا لزيادة ذلك ، نحتاج إلى استخدام وحدة HX711. HX711 هو ADC تفاضلي 24 بت ، وبهذه الطريقة يمكننا قياس تغيرات الجهد الصغيرة جدًا. سيعطي قيمًا من 0 إلى 2 أسيًا 24.
المكونات المطلوبة لآلة الوزن بالاردوينو
لجعل هذا المشروع بسيطًا قدر الإمكان ، استخدمنا مكونات عامة جدًا يمكنك العثور عليها في أي متجر هوايات محلي. ستعطيك الصورة أدناه فكرة عن المكونات. علاوة على ذلك ، لدينا فاتورة المواد (BOM) مدرجة أدناه.
- خلية تحميل (نستخدم خلية حمولة 10 كجم)
- وحدة مكبر للصوت HX 711
- اردوينو نانو
- I2C LCD 16X2 - متوافق مع I2C
- 1 كيلو المقاوم -2 عدد
- المصابيح -2 عدد
- صفارة
- ثنائي الفينيل متعدد الكلور مشترك
- بطارية 7.4 فولت (إذا كنت تريدها محمولة)
- منظم الجهد LM7805
آلة وزن تعتمد على اردوينو - مخطط الدائرة
تحتوي خلية التحميل على أربعة أسلاك باللون الأحمر والأسود والأخضر والأبيض. قد يختلف هذا اللون حسب الشركات المصنعة ، لذا من الأفضل الرجوع إلى ورقة البيانات. قم بتوصيل اللون الأحمر بـ E + للوحة HX711 ، وقم بتوصيل الأسود بـ E- ، وقم بتوصيل اللون الأبيض بـ A + ، وقم بتوصيل اللون الأخضر بـ A- و Dout وساعة اللوحة المتصلة بـ D4 و D5 على التوالي. قم بتوصيل أحد طرفي الأزرار الانضغاطية بـ D3 و D8 و D9 والأطراف الأخرى بالأرض. لدينا I2C LCD ، لذا قم بتوصيل SDA بـ A4 و SCL بـ A5. قم بتوصيل أرضية LCD و HX711 و Arduino بالأرض ، كما قم بتوصيل VCCs بـ 5Vpin من Arduino. تعمل جميع الوحدات على 5 فولت ، لذلك أضفنا منظم الجهد LM7805. إذا كنت لا تريدها أن تكون محمولة ، فيمكنك تشغيل Arduino مباشرة باستخدام كابل USB.
صنع الدائرة على لوح أداء منقط
لقد قمنا بلحام جميع المكونات الموجودة على لوح بيرفورد مشترك. استخدمنا رؤوسًا نسائية لتلحيم Arduino و ADC بلوحة الدائرة ، كما استخدمنا الأسلاك لتوصيل جميع الأزرار الانضغاطية ومصابيح LED. بعد الانتهاء من جميع عمليات اللحام ، تأكدنا من خروج 5 فولت المناسب من LM7805. أخيرًا ، قمنا بوضع مفتاح لتشغيل / إيقاف تشغيل الدائرة. بمجرد الانتهاء ، بدا الأمر كما في الصورة أدناه.
بناء حاوية لآلة الوزن القائمة على الأردوينو
كما ترى ، تحتوي خلية التحميل على بعض الخيوط اللولبية ، لذا يمكننا تركيبها على لوحة القاعدة. سنستخدم لوح PVC لقاعدة الميزان الخاص بنا ، لذلك قمنا أولاً بقص مربع 20 * 20 سم وأربعة مستطيلات 20 * 5 من لوح PVC. ثم باستخدام الغراء الصلب ، قمنا بلصق كل قطعة وصنعنا حاوية صغيرة.
تذكر أننا لم نصلح جانبًا واحدًا ، لأننا نحتاج إلى وضع الأزرار الانضغاطية ومصابيح LED وشاشات الكريستال السائل عليه. ثم استخدمنا لوحًا بلاستيكيًا لأعلى الميزان. قبل جعل هذا الإعداد دائمًا ، نحتاج إلى التأكد من أن لدينا مساحة كافية من الأرض إلى خلية التحميل ، بحيث تكون قادرة على الانحناء ، لذلك وضعنا المسمار والصواميل بين خلية التحميل والقاعدة ، كما أضفنا بعض الفواصل البلاستيكية بين خلية التحميل والجزء العلوي. استخدمنا ورقة بلاستيكية مستديرة كأعلى توازن ذكي.
ثم وضعنا LCD ، المصابيح ، و دفع أزرار لوحة الأمامية، وكل ما يتعلق بالأسلاك المعزولة طويلة. بعد الانتهاء من عملية الأسلاك ، قمنا بلصق اللوحة الأمامية بالقاعدة الرئيسية ببعض الميل ، حتى نتمكن من قراءة القيم من شاشة LCD بسهولة بالغة. أخيرًا ، قمنا بتوصيل المفتاح الرئيسي بجانب الميزان وهذا كل شيء. هذه هي الطريقة التي صنعنا بها الجسم لمقياس وزننا.
يمكنك التصميم بأفكارك ولكن تذكر أن تضع خلية التحميل كما في الصورة.
آلة وزن اردوينو - كود
نظرًا لأننا انتهينا الآن من عملية الإنشاء لمقياسنا الرقمي ، يمكننا الانتقال إلى جزء البرمجة. لسهولة البرمجة ، سنستخدم مكتبة HX711 ومكتبة EEPROM ومكتبة LiquidCrystal. يمكنك تنزيل مكتبة HX711 من مستودع GitHub الرسمي ، أو الانتقال إلى الأدوات > تضمين المكتبة > إدارة المكتبة ، ثم البحث في المكتبة باستخدام الكلمة الأساسية HX711 ، بعد تنزيل المكتبة ، قم بتثبيتها في Arduino ID.
أولاً ، نحتاج إلى معايرة خلية التحميل وتخزين هذه القيمة على EEPROM ، لذلك ، انتقل إلى ملف> أمثلة> HX 711_ADC ، ثم حدد رمز المعايرة. قبل تحميل الكود ، ضع الميزان على سطح مستوٍ ثابت. ثم قم بتحميل الكود إلى Arduino وافتح الشاشة التسلسلية. ثم قم بتغيير معدل الباود إلى 572600. الآن اطلب المراقبة أخذ الوزن ، لذلك نحتاج إلى الضغط على t والدخول.
الآن ، نحتاج إلى وضع الوزن المعروف على الميزان ، في حالتي ، وهو 194 جرامًا. بعد وضع الوزن المعروف ، اكتب الوزن على الشاشة التسلسلية ، واضغط على مفتاح الإدخال.
الآن ، يسألك جهاز العرض التسلسلي عما إذا كنت تريد حفظ القيمة في EEPROM أم لا ، لذا اكتب Y لاختيار نعم. الآن يمكننا رؤية الوزن على الشاشة التسلسلية.
الكود الرئيسي لهذا المشروع ، الذي قمنا بتطويره من مثال رسم لمكتبة HX711. يمكنك تنزيل الكود الخاص بهذا المشروع من الأسفل.
في قسم الترميز ، أولاً ، أضفنا جميع المكتبات الثلاث. مكتبة HX711 مخصصة لأخذ قيم خلية التحميل. EEPROM هي مكتبة Arduino ID المدمجة ، والتي تُستخدم لتخزين القيم في EEPROM ومكتبة LiquidCrystal مخصصة لوحدة l2C LCD.
#تضمن
ثم حدد الأعداد الصحيحة لدبابيس مختلفة والقيم المخصصة. إن وظيفة loadcell HX711_ADC هي ضبط Dout ودبوس الساعة.
const int HX711_dout = 4 ؛ const int HX711_sck = 5 ؛ int tpin = 3 ؛ HX711_ADC LoadCell (HX711_dout ، HX711_sck) ؛ const int calVal_eepromAdress = 0 ؛ طويل ر const int Up_buttonPin = 9 ؛ const int Down_buttonPin = 8 ؛ زر تعويم PushCounter = 0 ؛ تعويم up_buttonState = 0 ؛ تعويم up_lastButtonState = 0 ؛ تعويم down_buttonState = 0 ؛ تعويم down_lastButtonState = 0 ؛
في قسم الإعداد ، أولاً ، بدأنا جهاز العرض التسلسلي ، وهذا فقط لتصحيح الأخطاء فقط. ثم قمنا بتعريف أوضاع الدبوس ، تم تعريف جميع أزرار الضغط على أنها إدخال. بمساعدة وظيفة Arduino PULL UP ، قمنا بتعيين المسامير على مستوى منطقي مرتفع بشكل طبيعي. لذلك ، لا نريد استخدام أي مقاومات خارجية لذلك.
pinMode (tpin ، INPUT_PULLUP) ؛ pinMode (6 ، الإخراج) ؛ pinMode (12 ، الإخراج) ؛ pinMode (Up_buttonPin ، INPUT_PULLUP) ؛ pinMode (Down_buttonPin ، INPUT_PULLUP) ،
أسطر التعليمات البرمجية التالية مخصصة لإعداد I2C LCD. أولاً ، عرضنا النص الترحيبي باستخدام وظيفة LCD.print () ، بعد ثانيتين ، قمنا بمسح الشاشة باستخدام lcd.clear () . أي ، في البداية ، تُظهر الشاشة ARDUINO BALANCE كنص ترحيبي ، وبعد ثانيتين ، سيتم مسح وعرض أوزان القياس.
lcd.init () ، اضاءه خلفيه ال سى دى()؛ lcd.setCursor (0 ، 0) ؛ lcd.print ("ARDUINO BALANCE") ؛ lcd.setCursor (0 ، 1) ؛ lcd.print ("دعنا نقيس") ؛ تأخير (2000) ؛ lcd.clear () ؛
ثم بدأنا في قراءة القيم من loadCell باستخدام وظيفة loadCell.begin () ، وبعد ذلك نقرأ EEPROM للقيم التي تمت معايرتها ، ونقوم بذلك باستخدام وظيفة EEPROM.get () . أي أننا قمنا بالفعل بتخزين القيمة باستخدام مخطط المعايرة في عنوان EEPROM ، فنحن فقط نستعيد هذه القيمة.
LoadCell.begin () ، EEPROM.get (calVal_eepromAdress، calibrationValue) ؛
في قسم الحلقة ، أولاً ، نتحقق مما إذا كانت أي بيانات من خلية التحميل متاحة باستخدام LoadCell.update () ، إذا كان ذلك متاحًا ، فنحن نقرأ هذه البيانات ونخزنها ، لذلك ، نستخدم LoadCell.getData () . بعد ذلك ، نحتاج إلى عرض القيمة المخزنة في شاشة LCD. للقيام بذلك ، استخدمنا وظيفة LCD.print () . أيضا ، نقوم بطباعة الوزن المحدد. يتم ضبط الوزن بمساعدة عداد زر الضغط. هذا موضح في القسم الأخير.
if (LoadCell.update ()) newDataReady = صحيح ؛ إذا (newDataReady) { if (millis ()> t + serialPrintInterval) { float i = LoadCell.getData ()؛ lcd.setCursor (0 ، 0) ؛ lcd.print ("set wei:") ؛ lcd.setCursor (9 ، 0) ؛ lcd.print (buttonPushCounter) ؛ lcd.setCursor (14 ، 0) ؛ lcd.print ("GM") ؛ lcd.setCursor (0 ، 1) ؛ lcd.print ("الوزن:") ؛ lcd.setCursor (9 ، 1) ؛ lcd.print (ط) ؛ lcd.setCursor (14 ، 1) ؛ lcd.print ("GM") ؛
بعد ذلك ، قمنا بتعيين القيمة الفارغة ، لذلك ، أولاً ، نقرأ حالة زر الضغط الفارغ باستخدام وظيفة digitalRead () ، إذا كانت الحالة منخفضة ، فإننا نفرق هذا الوزن إلى الصفر. الوظيفة الفارغة لميزان الوزن هذا هي جعل القراءات تصل إلى الصفر. على سبيل المثال ، إذا كان لدينا وعاء يتم تحميل الأشياء فيه ، فسيكون الوزن الصافي هو وزن الوعاء + وزن الأشياء. إذا ضغطنا على الزر الفارغ بالوعاء الموجود في خلية التحميل قبل تحميل الأشياء ، فسيتم إلغاء وزن السلة ويمكننا قياس وزن الأشياء بمفردها.
إذا (digitalRead (tpin) == LOW) { LoadCell.tareNoDelay () ؛
الآن ، نحتاج إلى ضبط الشروط لمؤشرات مختلفة مثل ضبط تأخير الجرس وحالة الصمام. لقد فعلنا ذلك باستخدام شروط إذا ، لدينا إجمالي ثلاثة شروط. أولاً ، نحسب الفرق بين الوزن المحدد وقياس الوزن ، ثم نقوم بتخزين تلك القيمة في المتغير k.
تعويم ك = buttonPushCounter-i ؛
1. إذا كان الفرق بين الوزن المحدد وقياس الوزن أكبر من أو يساوي 50 جرامًا ، يصدر الجرس صوتًا بتأخير 200 مللي ثانية (ببطء).
if (k> = 50) { digitalWrite (6، HIGH) ؛ تأخير (200) ؛ digitalWrite (6 ، منخفض) ؛ تأخير (200) ؛ }
2. إذا كان الفرق بين الوزن المحدد وقياس الوزن أقل من 50 وأكبر من 1 جرام ، يصدر الجرس صوتًا مع تأخير قدره 50 مللي ثانية (أسرع).
if (k <50 && k> 1) { digitalWrite (6، HIGH) ؛ تأخير (50) ؛ digitalWrite (6 ، منخفض) ؛ تأخير (50) ؛ }
3. عندما يكون وزن القياس مساويًا أو أكبر من القيمة المحددة ، فسيتم تشغيل المصباح الأخضر وإيقاف تشغيل الجرس والصمام الأحمر.
إذا (i> = buttonPushCounter) { digitalWrite (6، LOW) ؛ digitalWrite (12 ، عالية) ؛ }
لدينا وظيفتان إضافيتان باطلتان () لتحديد الوزن المحدد (لحساب الضغط على الزر).
تعمل الوظيفة على زيادة القيمة المحددة بمقدار 10 جرام لكل ضغطة. يتم ذلك باستخدام وظيفة digitalRead في Arduino إذا كان رقم التعريف الشخصي منخفضًا ، فهذا يعني أن الزر مضغوط وسيؤدي ذلك إلى زيادة القيمة بمقدار 10 جرام.
up_buttonState = digitalRead (Up_buttonPin) ، if (up_buttonState! = up_lastButtonState) { if (up_buttonState == LOW) { bPress = true؛ buttonPushCounter = buttonPushCounter + 10 ؛ }
وبالمثل ،
checkdown هو تقليل القيمة المحددة بمقدار 10 جرام لكل ضغطة.
down_buttonState = digitalRead (Down_buttonPin) ، إذا (down_buttonState! = down_lastButtonState) { if (down_buttonState == LOW) { bPress = true ؛ buttonPushCounter = buttonPushCounter - 10 ؛ }
هذا يمثل نهاية جزء البرمجة.
يعتبر هذا الميزان الإلكتروني المستند إلى Arduino مثاليًا لقياس الأوزان التي تصل إلى 10 كجم (يمكننا زيادة هذا الحد باستخدام خلية تحميل ذات تصنيف أعلى). هذا هو 99٪ دقيقة للقياسات الأصلية.
إذا كان لديك أي أسئلة بخصوص دائرة آلة موازنة الوزن LCD القائمة على Arduino ، يرجى نشرها في قسم التعليقات ، شكرًا لك!