- רכיבים נדרשים:
- הסבר עבודה:
- הסבר מעגל:
- הסבר על תכנות:
- עיצוב מעגלים ו- PCB באמצעות EasyEDA:
- חישוב והזמנת דוגמאות באופן מקוון:
רעידת אדמה היא אסון טבע בלתי צפוי שגורם נזק לחיים ורכוש. זה קורה פתאום ואנחנו לא יכולים לעצור את זה אבל אפשר להתריע על כך. בימינו, ישנן טכנולוגיות רבות בהן ניתן להשתמש כדי לזהות טלטולים קטנים ודפיקות, כך שנוכל לנקוט באמצעי זהירות לפני כמה תנודות עיקריות בכדור הארץ. כאן אנו משתמשים ב- Accelerometer ADXL335 כדי לזהות את התנודות לפני רעידת האדמה. מד התאוצה ADXL335 רגיש מאוד לרעידות ולרטט יחד עם כל שלושת הצירים. כאן אנו בונים גלאי רעידות אדמה מבוסס ארדואינו באמצעות תאוצה.
אנו בונים כאן גלאי רעידות אדמה כמגן ארדואינו על גבי PCB ונציג גם את גרף הרטט במחשב באמצעות עיבוד.
רכיבים נדרשים:
- ארדואינו UNO
- מד תאוצה ADXL335
- LCD בגודל 16x2
- זַמזָם
- טרנזיסטור BC547
- נגדים 1k
- עציץ 10K
- לד
- ספק כוח 9v / 12v
- ברג מקלות זכר / נקבה
תאוצה:
תיאור סיכה של מד התאוצה:
- Vcc אספקת 5 וולט צריכה להתחבר בסיכה זו.
- X-OUT סיכה זו נותנת פלט אנלוגי בכיוון x
- Y-OUT סיכה זו נותנת פלט אנלוגי לכיוון y
- Z-OUT סיכה זו נותנת פלט אנלוגי בכיוון z
- קרקע GND
- ST סיכה זו משמשת להגדרת הרגישות של החיישן
בדוק גם את הפרויקטים האחרים שלנו באמצעות תאוצה:
- משחק פינג פונג באמצעות ארדואינו
- רובוט מבוקר תנועת יד מבוסס תאוצה.
- מערכת התראת תאונות רכב מבוסס Arduino באמצעות GPS, GSM ומאיץ
הסבר עבודה:
העבודה של גלאי רעידות אדמה זה פשוטה. כפי שהזכרנו קודם, השתמשנו במאיץ לאיתור רעידות רעידות אדמה לאורך כל אחד משלושת הצירים כך שבכל פעם שמתרחשות רעידות, מאיץ מחיש את התנודות וממיר אותן לערך ADC שווה ערך. ואז ערכי ADC נקראים על ידי Arduino ומוצגים על גבי LCD 16x2. הראינו גם ערכים אלה בגרף באמצעות עיבוד. למידע נוסף על Accelerometer על ידי מעבר על הפרויקטים האחרים שלנו עבור Accelerometer כאן.
ראשית עלינו לכייל את המאיץ על ידי לקיחת דוגמאות של התנודות שמסביב בכל פעם שארדואינו מתחזק. אז עלינו להפחית את ערכי הדגימה מהקריאות בפועל כדי לקבל את הקריאות האמיתיות. יש צורך בכיול זה כדי שלא יציג התראות ביחס לרטט הסביבתי הרגיל שלו. לאחר מציאת קריאות אמיתיות, Arduino משווה ערכים אלה עם ערכי מקסימום ו- min מוגדרים מראש. אם Arduino מגלה ששינויים כלשהם הם פחות או יותר מהערכים המוגדרים מראש של כל ציר בשני הכיוונים (שלילי וחיובי) אז Arduino מפעיל את הבאזר ומציג את מצב ההתראה על גבי LCD 16x2 וגם נורית LED מופעלת. אנו יכולים להתאים את הרגישות של גלאי רעידות אדמה על ידי שינוי הערכים המוגדרים מראש בקוד הארדואינו.
סרטון הפגנה וקוד ארדואינו ניתנים בסוף המאמר.
הסבר מעגל:
מעגל של גלאי רעידות אדמה זה מגן PCB ארדואינוהוא גם פשוט. בפרויקט זה השתמשנו בארדואינו שקורא את המתח האנלוגי של תאוצה וממיר אותם לערכים הדיגיטליים. Arduino גם מניע את הבאזר, ה- LED, ה- 16x2 LCD ומחשב ומשווה ערכים ולנקוט בפעולות מתאימות. החלק הבא הוא תאוצה שמזהה את רעידות האדמה ויוצר מתח אנלוגי בשלושה צירים (X, Y ו- Z). LCD משמש להצגת שינוי הערכים של ציר X, Y ו- Z ולהצגת הודעת התראה מעליו. LCD זה מחובר לארדואינו במצב 4 סיביות. סיכות RS, GND ו- EN מחוברות ישירות ל- 9, GND ו- 8 סיכות של Arduino ולשאר 4 סיכות נתונים של LCD כלומר D4, D5, D6 ו- D7 מחוברות ישירות לסיכה דיגיטלית 7, 6, 5 ו -4 של Arduino.. הזמזם מחובר לסיכה 12 של ארדואינו דרך טרנזיסטור NPN BC547. סיר 10k משמש גם לשליטה על בהירות ה- LCD.
הסבר על תכנות:
בכך מגן Arduino גלאי רעידות אדמה, עשינו שני קודים: אחד עבור Arduino לזהות רעידת אדמה ועוד עבור העיבוד IDE לשרטט את תנודות רעידת האדמה מעל הגרף על מחשב. נלמד על שני הקודים בזה אחר זה:
קוד ארדואינו:
ראשית כל, אנו מכיילים את מד התאוצה ביחס למשטח ההצבה שלו, כך שהוא לא יציג התראות ביחס לרטט הסביבתי הרגיל שלו. בכיול זה אנו לוקחים כמה דוגמאות ואז לוקחים ממוצע שלהן ומאחסנים במשתנה.
עבור (int i = 0; i
כעת בכל פעם ש- Accelerometer לוקח קריאות, נפחית את ערכי הדגימה מהקריאות כך שהוא יכול להתעלם מרטט הסביבה.
ערך int1 = analogRead (x); // קריאת x החוצה int value2 = analogRead (y); // קריאת y ערך int3 = 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 = מיליס (); // טיימר מתחיל buz = 1; // זמזם / דגל led מופעל} אחרת אם (buz == 1) // דגל זמזם מופעל ואז מתריע על רעידת אדמה {lcd.setCursor (0,0); lcd.print ("התראת רעידות אדמה"); אם (מילי ()> = התחל + buzTime) buz = 0; }
קוד עיבוד:
להלן קוד העיבוד המצורף, תוכלו להוריד את הקוד מהקישור למטה:
קוד עיבוד גלאי רעידות אדמה
תכננו גרף באמצעות עיבוד, עבור רעידות רעידות אדמה, בו הגדרנו את גודל החלון, יחידות, גודל גופן, רקע, קריאה והצגה של יציאות טוריות, פתיחת יציאה טורית שנבחרה וכו '
// הגדר את גודל החלון: וגודל הגופן f6 = createFont ("Arial", 6, נכון); f8 = createFont ("Arial", 8, נכון); f10 = createFont ("Arial", 10, true); f12 = createFont ("Arial", 12, נכון); f24 = createFont ("Arial", 24, נכון); גודל (1200, 700); // רשום את כל היציאות הטוריות הזמינות println (Serial.list ()); myPort = סידורי חדש (זה, "COM43", 9600); println (myPort); myPort.bufferUntil ('\ n'); רקע (80)
בפונקציה שלמטה, קיבלנו נתונים מהיציאה הטורית וחילצנו נתונים נדרשים ולאחר מכן מיפינו אותם עם גודל הגרף.
// חילוץ כל הערכים הנדרשים מכל שלושת הצירים: int l1 = inString.indexOf ("x =") + 2; מחרוזת temp1 = inString.substring (l1, l1 + 3); l1 = inString.indexOf ("y =") + 2; מחרוזת temp2 = inString.substring (l1, l1 + 3); l1 = inString.indexOf ("z =") + 2; מחרוזת temp3 = inString.substring (l1, l1 + 3); // מיפוי ערך x, y ו- z עם ממדי גרף צפים ב- Byte1 = float (temp1 + (char) 9); inByte1 = מפה (inByte1, -80,80, 0, גובה -80); צף inByte2 = צף (temp2 + (char) 9); inByte2 = מפה (inByte2, -80,80, 0, גובה -80); צף inByte3 = צף (temp3 + (char) 9); inByte3 = מפה (inByte3, -80,80, 0, גובה -80); צף x = מפה (xPos, 0,1120,40, רוחב -40);
לאחר מכן תכננו שטח יחידה, מגבלות מקסימום ומינימום, ערכים של ציר x, y וציר z.
// חלון גרף לשרטוט, שבץ יחידה משקל (2); שבץ מוחי (175); קו (0,0,0,100); textFont (f24); מילוי (0,00,255); textAlign (RIGHT); xmargin ("גרף EarthQuake לפי מעגל העיכול", 200,100); מילוי (100); strokeWeight (100); קו (1050,80,1200,80);………………
לאחר מכן אנו משרטטים את הערכים מעל הגרף באמצעות 3 צבעים שונים ככחול עבור ערך ציר ה- x, צבע ירוק עבור ציר y ו- z מיוצג על ידי צבע אדום.
שבץ (0,0,255); אם (y1 == 0) y1 = גובה- inByte1- משמרת; קו (x, y1, x + 2, גובה- inByte1- משמרת); y1 = גובה- inByte1- משמרת; שבץ מוחי (0,255,0); אם (y2 == 0) y2 = גובה- inByte2-shift; קו (x, y2, x + 2, גובה- shift- Byte2); y2 = גובה- inByte2-shift; שבץ מוחי (255,0,0); אם (y2 == 0) y3 = height-inByte3-shift; קו (x, y3, x + 2, גובה- shift-Byte3); y3 = גובה- inByte3-shift;
למידע נוסף על עיבוד, עיין בפרויקטים אחרים של עיבוד שלנו.
עיצוב מעגלים ו- PCB באמצעות EasyEDA:
EasyEDA הוא לא רק הפיתרון החד-פעמי ללכידה סכמטית, הדמיית מעגלים ותכנון PCB, אלא הם מציעים גם שירות עלות נמוכה למחשבי PCB ושירות המקור לרכיבים. לאחרונה הם השיקו את שירות המקור לרכיבים שבו יש להם מלאי גדול של רכיבים אלקטרוניים ומשתמשים יכולים להזמין את הרכיבים הנדרשים שלהם יחד עם הזמנת ה- PCB.
תוך כדי תכנון המעגלים וה- PCB שלך, אתה יכול גם להפוך את עיצובים המעגלים וה- PCB שלך לציבוריים כך שמשתמשים אחרים יוכלו להעתיק או לערוך אותם ויכולים להפיק תועלת משם, הפכנו גם את כל פריסות המעגל וה- PCB לציבוריות עבור מגן מחוון רעידות אדמה Arduino UNO, בדוק את הקישור הבא:
easyeda.com/circuitdigest/EarthQuake_Detector-380c29e583b14de8b407d06ab0bbf70f
להלן תמונת המצב של השכבה העליונה של פריסת ה- PCB מבית EasyEDA, באפשרותך להציג כל שכבה (למעלה, תחתון, טופסילק, חלק תחתון וכו ') של ה- PCB על ידי בחירת השכבה בחלון' שכבות '.
אתה יכול גם לראות תצוגת תמונות של PCB באמצעות EasyEDA:
חישוב והזמנת דוגמאות באופן מקוון:
לאחר השלמת העיצוב של PCB, תוכלו ללחוץ על סמל פלט הייצור , שייקח אתכם לדף הזמנת PCB. כאן תוכל להציג את ה- PCB שלך ב- Gerber Viewer או להוריד קבצי Gerber של ה- PCB שלך. כאן תוכלו לבחור את מספר ה- PCB שאתם רוצים להזמין, כמה שכבות נחושת אתם צריכים, את עובי ה- PCB, את משקל הנחושת ואפילו את צבע ה- PCB. לאחר שבחרת בכל האפשרויות, לחץ על "שמור לעגלה" והשלם את הזמנתך. לאחרונה הם הורידו את שיעורי ה- PCB שלהם באופן משמעותי ועכשיו תוכלו להזמין 10 יחידות PCB דו שכבתי בגודל 10 ס"מ x 10 ס"מ רק תמורת 2 דולר.
הנה מעגלי ה- PCB שקיבלתי מ- EasyEDA:
להלן התמונות של מגן סופי לאחר הלחמת הרכיבים על גבי PCB: