מעגל בקרת מנוע זרם גבוה באמצעות ארדואינו

נסה את הכלי שלנו לביטול בעיות





בפרויקט זה אנו דנים כיצד לשלוט על מהירות המנוע באמצעות מעגל PWM של Arduino, וכיצד ליישם בקרת רוורס קדימה או כיוון במנוע DC באמצעות Arduino באמצעות כמה מתגי כפתור. ניתן לשלוט על כל מנוע זרם גבוה עד 30 אמפר באמצעות התקנה זו

על ידיאנקיט נגי



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

אנו זקוקים למנועים ליישומים קטנים כמו רובוטיקה וכן באזורים בהם משתמשים במנועים כבדים (תעשיות וכו ').



כעת ניתן לשלוט על מנועים המשמשים ליישומים קטנים מכיוון שהם אינם לוקחים זרם רב (פחות מ -2 אמפר).

ואת המנועים הללו ניתן לשלוט בקלות באמצעות מיקרו-בקר כמו ארדואינו עם נהג מנוע כמו L298 או L293D .

אך לא ניתן לשלוט על מנועים המשמשים למטרות כבדות (יותר מ -10 אמפר) באמצעות אלה ic's מכיוון שהם יכולים לספק זרם מוגבל (מקסימום 2 אמפר). אז איך נשלטים על המנועים האלה?

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

1. מריץ את המנוע הנוכחי הגבוה שלנו עצמו.

2. בידוד המעגל ובכך מונע זעזועים.

כעת ניתן להשתמש בכל מיקרו-בקר להחלפת ממסר אלה. נשתמש כאן ב- arduino UNO.

הרכיבים הנדרשים לפרויקט זה:

1. ARDUINO UNO: לתת לוגיקות קלט לצד העיקרי של הממסר.

2. SPDT RELAY -2: שני ממסרים נדרשים לסיבוב בשני הכיוונים. אנשי קשר חייבים להיות מדורגים בכדי להתמודד עם מפרט המנוע הנוכחי הגבוה

ממסר צבע כחול של התמונה ממסר המציג N / O N / C ופרטי מוט3. כוח Mosfet: אתה יכול להשתמש IRF1010 mosfet כפתור לחצן מיקרוסקופ

4. סוללה (12 וולט): לספק כוח למנוע.

5. שני לחיצות כפתור: לתת תשומות לארדואינו (כלומר כאשר לוחצים עליו וכשלא לוחצים עליו)

נגד 10k 1/4 וואט

6. שני נגדים 10K: לשיפוץ (מוסבר להלן)

מעגל בקרת מנוע זרם גבוה באמצעות ארדואינו

7. חוטי חיבור: ליצירת חיבורים.

סכמטי:

מעגל בקרת מנוע PWM Arduino

צור חיבורים כפי שמוצג באיור.

1. חבר את המסוף הפתוח בדרך כלל של שני הממסר למסוף החיובי של הסוללה ואת המסוף הסגור בדרך כלל למסוף השלילי של הסוללה.

2. חבר את המנוע בין המסוף הנותר (מתוך שלושה) של כל ממסר.

3. חבר מסוף אחד של הצד העיקרי של הממסרים לסיכות הפלט של הארדואינו כמפורט בקוד ומסוף אחר לקרקע.

4. חבר מסוף אחד משני כפתורי הלחיצה לסיכה של 5 וולט של ארדואינו ומסוף אחר לסיכות קלט כמפורט בקוד.

4. ** אל תשכח לחבר נגדים מכיוון שהם חשובים מאוד לתפקוד תקין של מעגל זה, כמוסבר להלן:

מדוע מחברים נגדים?

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

במקום זאת זה מרמז שכאשר המתג פתוח ארדואינו יכול לקחת כל ערך אקראי בין לוגיקה 0 ללוגיקה 1, וזה לא טוב בכלל (זה נקרא קופץ).

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

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

נגד זה נקרא נגד הנפתח שכן הוא מושך את ההיגיון על הסיכה ל 0. ותהליך זה נקרא ניתוק מחדש.

קוד:

צרב קוד זה בארדואינו שלך.

int x// initialise variables
int y
int z
int w
void setup() {
pinMode(6,OUTPUT)//initialise pin 6 as output to RL1
pinMode(9,OUTPUT)//initialise pin 9 as output to RL2
pinMode(3,INPUT)//initialise pin 3 as input
pinMode(4,INPUT)//initialise pin 4 as input
pinMode(10,OUTPUT)//initialise PWM pin 8 as output to gate of mosfet
pinMode(A0,INPUT)//initialise pin A0 as input from pot.
Serial.begin(9600)
}
void loop() {
z=analogRead(A0)// read values from potentiometer in terms of voltage
w= map(z,0,1023,0,255)// map those values from 0 to 255
analogWrite(10,w)// write the mapped value to 10thpin as output
delay(1)//on time period of mosfet
analogWrite(10,w)
delay(1)//off time period of ,mosfet
Serial.println(z)//print value from pot to serial monitor
Serial.println(w)//print mapped value to serial monitor
x= digitalRead(3)
y= digitalRead(4)
if(x==0 && y==0){digitalWrite(6,LOW)//hault motor
digitalWrite(9,LOW)}
if(x==1 && y==0){digitalWrite(6,HIGH)// clockwise rotation of motor
digitalWrite(9,LOW)}
if(x==0 && y==1){digitalWrite(6,LOW)// anticlockwise rotation of motor
digitalWrite(9,HIGH)}
if(x==1 && y==1){digitalWrite(6,LOW)//hault motor
digitalWrite(9,LOW)
}
}

עבודה (הבנת קוד):

• בקרת כיוון:

ת.כאשר לא לוחצים על שני לחצני הלחיצה:

במצב זה, ארדואינו לוקח 0 קלט משני הפינים. כמפורט בקוד במצב זה, שני סיכות הפלט נותנות לוגיקה 0 (LOW):

אם (x == 0 && y == 0) {digitalWrite (6, LOW)

digitalWrite (9, LOW)}

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

B. כאשר לוחצים על לחצן X אך לא לוחצים על Y:

במצב זה, ארדואינו לוקח 0 כניסות מסיכה 4 אך קלט 1 מ- pin3. כמפורט בקוד במצב זה סיכה 6 צריכה להיות בהיגיון 1 (HIGH) ואילו סיכה 9 בהיגיון 0 (LOW):

אם (x == 1 && y == 0) {digitalWrite (6, HIGH)

digitalWrite (9, LOW)}

מכיוון שמתח כניסה לממסר מס '1 גבוה, המתג של ממסר זה נזרק למצב פתוח כרגיל ואילו מתח הכניסה לממסר 2 נמוך, המתג של ממסר זה נותר במצב סגור בדרך כלל וגורם 12V ו- 0V בהתאמה על גבי מסופי המנוע וגורם לכך סיבוב המנוע לכיוון אחד.

C. כאשר לוחצים על כפתור Y אך לא לוחצים על X:

במצב זה, ארדואינו לוקח קלט אחד מסיכה 4 אך קלט 0 מ- pin3. כמפורט בקוד במצב זה סיכה 6 צריכה להיות בהיגיון 0 (LOW) ואילו סיכה 9 בהיגיון 1 (HIGH):

אם (x == 1 && y == 0) {digitalWrite (6, LOW)

digitalWrite (9, HIGH)}

מכיוון שמתח קלט לממסר 2 גבוה הפעם, המתג של ממסר זה נזרק למצב פתוח כרגיל ואילו מתח הכניסה לממסר מס '1 נמוך, המתג של ממסר זה נשאר במצב סגור בדרך כלל וגורם 12V ו- 0V בהתאמה על פני המנוע. מסופים, מה שגורם לסיבוב המנוע לכיוון אחר.

ד.כששני לחצני הלחיצה נלחצים:

במצב זה, ארדואינו לוקח קלט אחד משני הפינים. כמפורט בקוד במצב זה, שני סיכות הפלט נותנות לוגיקה 0 (LOW):

אם (x == 0 && y == 0) {digitalWrite (6, LOW)

digitalWrite (9, LOW)}

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

• בקרת מהירות:

נניח שפוטנציומטר נמצא במצב כזה כאשר הוא נותן 0 וולט כקלט לסיכה A0 של הארדואינו. בשל כך, ארדואינו ממפה ערך זה כ- 0 וכך נותן 0 כ- PWM פלט בסיכה מס '10 כלומר,

analogWrite (10,0) // כתוב את הערך הממופה לסיכה העשירית כפלט

לפיכך השער של mosfet מקבל 0 זרם שבגללו הוא נשאר כבוי והמנוע נמצא במצב כבוי.

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

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

עדכון : עבור מנוע זרם גבוה, אנא השתמש בממסרי 12 וולט / 30 אמפר ובשלבי הנהג של BJT להפעלת ממסרי הספק גבוהים אלה כמצוין בתרשים המתוקן הבא:




הקודם: מעגל חיישן חניה הפוך לרכב עם אזעקה הבא: מעגל מחולל אותות PWM של Arduino