תוכן עניינים:

מדידת מהירות המנוע באמצעות Arduino: 6 שלבים
מדידת מהירות המנוע באמצעות Arduino: 6 שלבים

וִידֵאוֹ: מדידת מהירות המנוע באמצעות Arduino: 6 שלבים

וִידֵאוֹ: מדידת מהירות המנוע באמצעות Arduino: 6 שלבים
וִידֵאוֹ: שליטה על מהירות המנוע באמצעות פוטנציומטר 2024, נוֹבֶמבֶּר
Anonim
מדידת מהירות מנוע באמצעות Arduino
מדידת מהירות מנוע באמצעות Arduino
מדידת מהירות מנוע באמצעות Arduino
מדידת מהירות מנוע באמצעות Arduino
מדידת מהירות המנוע באמצעות Arduino
מדידת מהירות המנוע באמצעות Arduino

האם זה קשה למדוד סל ד של המנוע ??? אני לא חושב שכן. להלן פתרון פשוט אחד.

רק חיישן IR אחד וארדואינו בערכה שלך יכולים לעשות זאת.

בפוסט זה אתן הדרכה פשוטה המסבירה כיצד למדוד את סל ד של כל מנוע באמצעות חיישן IR ו- Arduino UNO/nano

אספקה:

1. Arduion uno (אמזון) / Arduion nano (אמזון)

2. חיישן IR (אמזון)

3. מנוע DC כלשהו (אמזון)

4. LCD 16*2 (אמזון)

כלים בשימוש

1. מלחם (אמזון)

2. חשפן חוטים (אמזון)

שלב 1: שלב: 1 להבטיח את מצב העבודה של חיישנים והתקנים

חיישן IR הוא מכשיר אלקטרוני, הפולט את האור על מנת לחוש אובייקט כלשהו של הסביבה. חיישן IR יכול למדוד את החום של אובייקט כמו גם לזהות את התנועה. בדרך כלל, בספקטרום האינפרא אדום, כל האובייקטים מקרינים צורה כלשהי של קרינה תרמית. סוגים אלה של קרינות אינם נראים לעינינו, אך חיישן אינפרא אדום יכול לזהות קרינות אלה.

מנוע זרם ישר (DC) הוא סוג של מכונה חשמלית הממירה אנרגיה חשמלית לאנרגיה מכנית. מנועי DC לוקחים חשמל באמצעות זרם ישיר, וממירים אנרגיה זו לסיבוב מכני.

מנועי DC משתמשים בשדות מגנטיים המתרחשים מהזרמים החשמליים שנוצרים, המניעים את תנועת הרוטור הקבוע בתוך פיר הפלט. מומנט הפלט והמהירות תלויים הן בקלט החשמלי והן בעיצוב המנוע.

מהו ארדואינו?

Arduino היא פלטפורמת אלקטרוניקה בעלת קוד פתוח המבוססת על חומרה ותוכנה נוחים לשימוש. לוחות Arduino מסוגלים לקרוא כניסות - אור על חיישן, אצבע על כפתור או הודעת טוויטר - ולהפוך אותו ליציאה - הפעלת מנוע, הדלקת נורית LED, פרסום משהו ברשת. אתה יכול להגיד ללוח שלך מה לעשות על ידי שליחת סט הוראות לבקר המיקרו בלוח. לשם כך אתה משתמש בשפת התכנות Arduino (מבוססת על חיווט), ובתוכנת Arduino (IDE), המבוססת על עיבוד.

הורד את ARDUINO IDE

שלב 2: איך זה עובד?

אז מה ההיגיון מאחורי זה ??

זה עובד הרבה דומה למקודד. למקודדים קשה להבין אותם למתחילים. כל מה שאתה צריך לדעת הוא שחיישן ה- IR יוצר דופק ואנו מגלים את מרווח הזמן בין כל דופק.

במקרה זה חיישן ה- IR ישלח דופק לארדואינו בכל פעם שקרן ה- IR שלו יורטה במדחפים מנועים. בדרך כלל אנו משתמשים במדחפים עם שני להבים אך השתמשתי במדחף בעל שלושה להבים כפי שמוצג באיור. בהתאם למספר להבי המדחף עלינו לשנות כמה ערכים בעת חישוב סל ד.

בואו ניקח בחשבון שיש לנו מדחף בעל שני להבים. עבור כל מנוע מהפכה הלהב יירטט את קרן ה- IR פעמיים. כך חיישן ה- IR יפיק פולסים בכל פעם שיירטו.

כעת עלינו לכתוב תוכנית שיכולה למדוד את פולסי המספרים המיוצרים על ידי חיישן IR במרווח זמן מסוים.

ישנן יותר מאחת הדרכים לפתור בעיה אך עלינו לבחור איזו מהן היא הטובה ביותר בקודים אלה מדדתי את משך הזמן בין ההפסקות (חיישן IR) השתמשתי בפונקציות micros () כדי למדוד את משך הפולסים במיקרו שניות.

אתה יכול להשתמש בנוסחה זו כדי למדוד את RPMRPM = ((1/משך)*1000*1000*60)/להבים

איפה, משך - מרווח זמן בין הפולסים.

60 - שניות לדקות

1000 - טחנת לשניות

1000 - מיקרו לטחנה

להבים - ללא כנפיים במדחף.

תצוגת LCD - ה- Arduino מעדכן את פקודות ורישומי הנתונים של תצוגת LCD. המציג את תווי ASCII בתצוגת ה- LCD.

שלב 3: תכנת את Arduino שלך באמצעות Arduino IDE

#לִכלוֹל

LiquidCrystal lcd (9, 8, 7, 6, 5, 4); const int IR_IN = 2; // חיישן IR INPUT מיקרו -מיקרו ארוכים ללא סימן; // לאחסון זמן משך זמן לא חתום; // לאחסון הפרש זמן לא חתום lcdrefresh; // כדי לאחסן זמן עבור lcd לרענן int rpm; // ערך RPM הנוכחי בוליאני; // המצב הנוכחי של סריקת כניסת IR כניסה מקומית בוליאנית; // מצב חיישן IR בהגדרת חלל הסריקה הקודם () {pinMode (IR_IN, INPUT); lcd.begin (16, 2); prevmicros = 0; prevstate = LOW; } לולאת חלל () {////////////////////////////////////// //////////////////////////////////////// // קרא את מצב חיישן IR אם (prevstate! = Currentstate) // אם יש שינוי בקלט {if (currentstate == LOW) // אם הקלט משתנה רק מ- HIGH ל- LOW {duration = (micros () - prevmicros); // הפרש זמן בין המהפכה בסל"ד המיקרו שניות = ((60000000/משך)/3); // סל"ד = (1/ זמן מילי)*1000*1000*60; prevmicros = micros (); // אחסן זמן לחישוב מהפכת נקט}} prevstate = currentstate; // אחסן את נתוני הסריקה (סריקה קודמת) לסריקה הבאה /////////////////////////////////// ///////////////////////////////////////////////////// תצוגת LCD אם ((millis ()-lcdrefresh)> = 100) {lcd.clear (); lcd.setCursor (0, 0); lcd.print ("מהירות המנוע"); lcd.setCursor (0, 1); lcd.print ("סל"ד ="); lcd.print (סל"ד); lcdrefresh = millis (); }}

שלב 4: סימולציה באמצעות פרוטאוס

סימולציה באמצעות פרוטאוס
סימולציה באמצעות פרוטאוס

הפרויקט הזה עבד מצוין כשניסיתי לדמות זאת בעזרת פרוטאוס.

במקום להשתמש בחיישן IR השתמשתי בגנרטור דופק DC אשר ידמה את דופק ה- IR הדומה לזה שנוצר כאשר קרני ה- IR פוגעות בלהבי המדחפים.

עליך לבצע שינויים בתוכנית בהתאם לחיישן שבו אתה משתמש

חיישן IR עם LM358 חייב להשתמש בפקודה זו.

if (currentstate == HIGH) // אם הקלט משתנה רק מ- LOW ל- HIGH

חיישן IR עם LM359 חייב להשתמש בפקודה זו.

if (currentstate == LOW) // אם הקלט משתנה רק מ- HIGH ל- LOW

שלב 5: ביצוע חומרה

ביצוע חומרה
ביצוע חומרה
ביצוע חומרה
ביצוע חומרה
ביצוע חומרה
ביצוע חומרה

לשימוש סכמטי בתמונות הסימולציה או עיין בקודי התוכנית וביצע את החיבורים בהתאם. העלה את קוד התוכנית ל- Arduino ומדוד את סל ד של כל מנוע. המשך לעקוב אחר הפוסט הבא שלי וצפה בערוץ היוטיוב שלי.

מוּמלָץ: