- المكونات المطلوبة:
- شرح العمل:
- شرح الدائرة:
- شرح البرمجة:
- تصميم الدوائر و PCB باستخدام EasyEDA:
- حساب العينات وطلبها عبر الإنترنت:
الزلزال هو كارثة طبيعية لا يمكن التنبؤ بها تسبب أضرارًا في الأرواح والممتلكات. يحدث فجأة ولا يمكننا إيقافه ولكن يمكن تنبيهنا منه. في الوقت الحاضر ، هناك العديد من التقنيات التي يمكن استخدامها لاكتشاف الاهتزازات الصغيرة والقرع ، حتى نتمكن من اتخاذ الاحتياطات قبل حدوث بعض الاهتزازات الرئيسية في الأرض. نحن هنا نستخدم Accelerometer ADXL335 لاكتشاف اهتزازات ما قبل الزلزال. مقياس التسارع ADXL335 حساس للغاية للاهتزازات والاهتزازات مع جميع المحاور الثلاثة. نحن هنا نبني كاشف الزلازل القائم على Arduino باستخدام مقياس التسارع.
نحن هنا نبني كاشف الزلازل هذا كدرع Arduino على PCB وسنعرض أيضًا رسم الاهتزازات على الكمبيوتر باستخدام المعالجة.
المكونات المطلوبة:
- اردوينو UNO
- مقياس التسارع ADXL335
- 16x2 LCD
- صفارة
- الترانزستور BC547
- 1 كيلو مقاومات
- 10 كيلو وعاء
- يؤدى
- مزود الطاقة 9 فولت / 12 فولت
- عصي بيرغ ذكر / أنثى
مقياس التسارع:
وصف دبوس مقياس التسارع:
- يجب توصيل مصدر Vcc 5 فولت بهذا الدبوس.
- X-OUT يعطي هذا الدبوس إخراجًا تناظريًا في اتجاه x
- Y-OUT يعطي هذا الدبوس إخراجًا تناظريًا في اتجاه y
- Z-OUT يعطي هذا الدبوس إخراجًا تناظريًا في اتجاه z
- أرض GND
- ST يستخدم هذا الدبوس لتعيين حساسية المستشعر
تحقق أيضًا من مشاريعنا الأخرى باستخدام مقياس التسارع:
- لعبة بينج بونج باستخدام اردوينو
- مقياس التسارع القائم على لفتة اليد الروبوت التحكم.
- نظام الإنذار بحوادث المركبات القائم على Arduino باستخدام GPS و GSM و Accelerometer
شرح العمل:
عمل كاشف الزلازل هذا بسيط. كما ذكرنا سابقًا ، استخدمنا مقياس التسارع للكشف عن اهتزازات الزلازل على طول أي من المحاور الثلاثة بحيث كلما حدثت اهتزازات ، يستشعر مقياس التسارع تلك الاهتزازات ويحولها إلى قيمة ADC مكافئة. ثم تتم قراءة قيم ADC هذه بواسطة Arduino ويتم عرضها على شاشة LCD مقاس 16 × 2. لقد أظهرنا أيضًا هذه القيم على الرسم البياني باستخدام المعالجة. تعرف على المزيد حول Accelerometer من خلال الاطلاع على مشاريع Accelerometer الأخرى هنا.
نحتاج أولاً إلى معايرة مقياس التسارع عن طريق أخذ عينات من الاهتزازات المحيطة كلما ارتفعت طاقة Arduino. ثم نحتاج إلى طرح قيم العينة هذه من القراءات الفعلية للحصول على القراءات الحقيقية. هذه المعايرة مطلوبة حتى لا تظهر تنبيهات فيما يتعلق بالاهتزازات الطبيعية المحيطة بها. بعد العثور على قراءات حقيقية ، يقارن Arduino هذه القيم بقيم max و min المحددة مسبقًا. إذا وجد Arduino أن أي تغييرات كانت أكثر أو أقل ، فإن القيم المحددة مسبقًا لأي محور في كلا الاتجاهين (سلبي وإيجابي) ، ثم يقوم Arduino بتشغيل الجرس ويعرض حالة التنبيه على شاشة LCD مقاس 16 × 2 كما يتم تشغيل مؤشر LED أيضًا. يمكننا ضبط حساسية كاشف الزلازل عن طريق تغيير القيم المحددة مسبقًا في كود Arduino.
يتم تقديم فيديو توضيحي وكود Arduino في نهاية المقالة.
شرح الدائرة:
دارة كاشف الزلازل اردوينو شيلد ثنائي الفينيل متعدد الكلورهو أيضا بسيط. في هذا المشروع ، استخدمنا Arduino الذي يقرأ الجهد التناظري لمقياس التسارع ويحولها إلى قيم رقمية. يقوم Arduino أيضًا بتشغيل الجرس ، LED ، شاشة LCD مقاس 16 × 2 وحساب ومقارنة القيم واتخاذ الإجراءات المناسبة. الجزء التالي هو مقياس التسارع الذي يكتشف اهتزاز الأرض ويولد الفولتية التناظرية في 3 محاور (X ، Y ، و Z). تُستخدم شاشة LCD لإظهار تغير قيم المحور X و Y و Z وأيضًا إظهار رسالة تنبيه فوقها. شاشة LCD هذه متصلة بـ Arduino في وضع 4 بت. ترتبط دبابيس RS و GND و EN مباشرة بـ 9 و GND و 8 دبابيس من Arduino وبقية 4 دبابيس بيانات من LCD وهي D4 و D5 و D6 و D7 متصلة مباشرة بالدبوس الرقمي 7 و 6 و 5 و 4 من Arduino. يتم توصيل الجرس بالدبوس 12 من Arduino من خلال ترانزستور NPN BC547. كما يتم استخدام وعاء 10 كيلو للتحكم في سطوع شاشة LCD.
شرح البرمجة:
في جهاز Arduino Shield للكشف عن الزلازل ، قمنا بعمل رمزين: أحدهما لـ Arduino لاكتشاف الزلزال والآخر لمعالجة IDE لرسم اهتزازات الزلزال على الرسم البياني على الكمبيوتر. سنتعرف على كل من الرموز واحدة تلو الأخرى:
كود اردوينو:
بادئ ذي بدء ، نقوم بمعايرة مقياس التسارع فيما يتعلق بسطح وضعه ، بحيث لا يُظهر تنبيهات فيما يتعلق بالاهتزازات الطبيعية المحيطة به. في هذه المعايرة ، نأخذ بعض العينات ثم نأخذ متوسطًا منها ونخزنها في متغير.
لـ (int i = 0 ؛ i
الآن عندما يأخذ مقياس التسارع قراءات ، سنطرح قيم العينة هذه من القراءات حتى يتمكن من تجاهل الاهتزازات المحيطة.
قيمة int 1 = analogRead (x) ؛ // قراءة x خارج int value2 = analogRead (y) ؛ // قراءة y out int value3 = analogRead (z) ؛ // قراءة z خارج int xValue = xsample-value1 ؛ // إيجاد التغيير في x int yValue = ysample-value2 ؛ // إيجاد التغيير في y int zValue = zsample-value3 ؛ // إيجاد التغيير في z / * تبديد التغيير في قيم المحور x و y و z عبر lcd * / lcd.setCursor (0،1) ؛ lcd.print (zValue) ؛ lcd.setCursor (6،1) ؛ lcd.print (yValue) ؛ lcd.setCursor (12،1) ؛ lcd.print (zValue) ؛ تأخير (100)
ثم يقارن Arduino تلك القيم المعايرة (المطروحة) بحدود محددة مسبقًا. واتخاذ الإجراءات وفقًا لذلك. إذا كانت القيم أعلى من القيم المحددة مسبقًا ، فسيصدر صوتًا صفيرًا ويرسم الرسم البياني للاهتزاز على الكمبيوتر باستخدام المعالجة.
/ * مقارنة التغيير بالحدود المحددة مسبقًا * / if (xValue <minVal - xValue> maxVal - yValue <minVal - yValue> maxVal - zValue <minVal - zValue> maxVal) {if (buz == 0) start = ميلي () ؛ // مؤقت بدء الطنين = 1 ؛ // buzzer / led flag activated} وإلا إذا (buz == 1) // تم تنشيط علم الطنان ثم تنبيه الزلزال {lcd.setCursor (0،0)؛ lcd.print ("إنذار الزلزال") ؛ if (millis ()> = start + buzTime) buz = 0 ؛ }
كود المعالجة:
مرفق أدناه رمز المعالجة ، يمكنك تنزيل الكود من الرابط أدناه:
كود معالجة كاشف زلزال الأرض
لقد صممنا رسمًا بيانيًا باستخدام المعالجة ، من أجل اهتزازات الزلازل الأرضية ، حيث حددنا حجم النافذة والوحدات وحجم الخط والخلفية وقراءة وعرض المنافذ التسلسلية وفتح منفذ تسلسلي محدد وما إلى ذلك.
// تعيين حجم النافذة: وحجم الخط f6 = createFont ("Arial"، 6، true) ؛ f8 = createFont ("Arial"، 8، true) ؛ f10 = createFont ("Arial"، 10، true) ؛ f12 = createFont ("Arial"، 12، true) ؛ f24 = createFont ("Arial" ، 24 ، صحيح) ؛ الحجم (1200 ، 700) ؛ // قائمة بجميع المنافذ التسلسلية المتاحة println (Serial.list ()) ؛ myPort = مسلسل جديد (هذا ، "COM43" ، 9600) ؛ println (myPort) ؛ myPort.bufferUntil ('\ n') ، خلفية (80)
في الوظيفة أدناه ، تلقينا البيانات من المنفذ التسلسلي واستخرجنا البيانات المطلوبة ثم قمنا بتعيينها بحجم الرسم البياني.
// استخراج جميع القيم المطلوبة لجميع المحاور الثلاثة: int l1 = inString.indexOf ("x =") + 2؛ String temp1 = inString.substring (l1، l1 + 3) ؛ l1 = inString.indexOf ("y =") + 2 ؛ String temp2 = inString.substring (l1، l1 + 3) ؛ l1 = inString.indexOf ("z =") + 2 ؛ سلسلة temp3 = inString.substring (l1، l1 + 3) ؛ // تعيين قيمة x و y و z بأبعاد الرسم البياني تعويم inByte1 = float (temp1 + (char) 9) ؛ inByte1 = خريطة (inByte1، -80،80، 0، height-80) ؛ تعويم inByte2 = تعويم (temp2 + (char) 9) ؛ inByte2 = خريطة (inByte2، -80،80، 0، height-80) ؛ تعويم inByte3 = تعويم (temp3 + (char) 9) ؛ inByte3 = خريطة (inByte3، -80،80، 0، height-80) ؛ تعويم x = خريطة (xPos، 0،1120،40، width-40) ؛
بعد ذلك ، قمنا برسم مساحة الوحدة ، والحدود القصوى والدقيقة ، وقيم المحور x و y و z.
// رسم نافذة الرسم البياني ، وحدة السكتة الدماغية الوزن (2) ؛ السكتة الدماغية (175) ؛ الخط (0،0،0،100) ؛ textFont (f24) ، ملء (0،00،255) ؛ textAlign (RIGHT) ؛ xmargin ("EarthQuake Graph By Circuit Digest"، 200،100) ؛ ملء (100) ؛ الوزن (100) ؛ خط (1050،80،1200،80) ؛………………
بعد ذلك نرسم القيم على الرسم البياني باستخدام 3 ألوان مختلفة مثل الأزرق لقيمة المحور س ، واللون الأخضر للمحور ص ويمثل ع باللون الأحمر.
السكتة الدماغية (0،0،255) ؛ إذا (y1 == 0) y1 = الارتفاع في Byte1 التحول ؛ الخط (x ، y1 ، x + 2 ، الارتفاع inByte1-shift) ؛ y1 = ارتفاع inByte1 التحول ؛ السكتة الدماغية (0،255،0) ؛ إذا (y2 == 0) y2 = الارتفاع في Byte2 التحول ؛ الخط (x ، y2 ، x + 2 ، الارتفاع inByte2-shift) ؛ y2 = الارتفاع في Byte2 التحول ؛ السكتة الدماغية (255،0،0) ؛ إذا (y2 == 0) y3 = الارتفاع في Byte3 التحول ؛ الخط (x ، y3 ، x + 2 ، الارتفاع inByte3-shift) ؛ y3 = الارتفاع في Byte3 التحول ؛
تعرف أيضًا على المزيد حول المعالجة من خلال الاطلاع على مشاريع المعالجة الأخرى الخاصة بنا.
تصميم الدوائر و PCB باستخدام EasyEDA:
إن EasyEDA ليس فقط الحل الوحيد للالتقاط التخطيطي ومحاكاة الدوائر وتصميم ثنائي الفينيل متعدد الكلور ، بل إنه يقدم أيضًا خدمة منخفضة التكلفة للنماذج الأولية وثنائي الفينيل متعدد الكلور. لقد أطلقوا مؤخرًا خدمة مصادر المكونات الخاصة بهم حيث لديهم مخزون كبير من المكونات الإلكترونية ويمكن للمستخدمين طلب المكونات المطلوبة إلى جانب طلب PCB.
أثناء تصميم الدوائر الخاصة بك وثنائي الفينيل متعدد الكلور ، يمكنك أيضًا جعل تصميمات الدوائر الكهربائية وثنائي الفينيل متعدد الكلور الخاصة بك عامة حتى يتمكن المستخدمون الآخرون من نسخها أو تعديلها والاستفادة منها ، كما أننا جعلنا تخطيطات الدوائر الكهربائية وثنائي الفينيل متعدد الكلور لدينا عامة من أجل درع مؤشر الزلزال هذا Arduino UNO ، تحقق من الرابط أدناه:
easyeda.com/circuitdigest/EarthQuake_Detector-380c29e583b14de8b407d06ab0bbf70f
يوجد أدناه لقطة من الطبقة العليا لتخطيط ثنائي الفينيل متعدد الكلور من EasyEDA ، يمكنك عرض أي طبقة (أعلى ، أسفل ، سطح علوي ، حرير سفلي ، إلخ) من ثنائي الفينيل متعدد الكلور عن طريق تحديد الطبقة من نافذة "الطبقات".
يمكنك أيضًا مشاهدة عرض الصور لثنائي الفينيل متعدد الكلور باستخدام EasyEDA:
حساب العينات وطلبها عبر الإنترنت:
بعد الانتهاء من تصميم ثنائي الفينيل متعدد الكلور ، يمكنك النقر فوق رمز إخراج التصنيع ، والذي سينقلك إلى صفحة طلب PCB. هنا يمكنك عرض PCB الخاص بك في Gerber Viewer أو تنزيل ملفات Gerber من PCB الخاص بك. هنا يمكنك تحديد عدد مركبات ثنائي الفينيل متعدد الكلور التي تريد طلبها ، وعدد طبقات النحاس التي تحتاجها ، وسمك ثنائي الفينيل متعدد الكلور ، ووزن النحاس ، وحتى لون ثنائي الفينيل متعدد الكلور. بعد تحديد جميع الخيارات ، انقر فوق "حفظ في عربة التسوق" وأكمل طلبك. لقد قاموا مؤخرًا بتخفيض معدلات ثنائي الفينيل متعدد الكلور بشكل كبير ، والآن يمكنك طلب 10 قطعة من ثنائي الفينيل متعدد الكلور ثنائي الطبقة بحجم 10 سم × 10 سم مقابل 2 دولار فقط.
هنا هو ثنائي الفينيل متعدد الكلور الذي حصلت عليه من EasyEDA:
فيما يلي صور الدرع النهائي بعد لحام المكونات على PCB: