בימינו, חובבים מאוד מעוניינים בשליטה ב-Brushless DC (BLDC)
בהשוואה למנוע DC המסורתי, ביצועי המנוע השתפרו, גם יעילות האנרגיה השתפרה, אך קשה יותר לשימוש. קיימים מוצרי מדף רבים
למטרה זו.
לדוגמה, יש הרבה בקרי BLDC קטנים שעובדים טוב מאוד עבור מטוסי RC.
למי שרוצה לבחון את השליטה של ה-BLDC יותר לעומק, יש גם הרבה מיקרו-בקרים וחומרה אלקטרונית אחרת למשתמשים תעשייתיים, שלרוב יש להם תיעוד טוב מאוד.
עד כה לא מצאתי שום תיאור מקיף כיצד להשתמש במיקרו-בקר Arduino עבור בקרת BLDC.
כמו כן, אם אתם מעוניינים לבצע בלימה רגנרטיבית, או להשתמש ב-BLDC לייצור חשמל, לא מצאתי הרבה מוצרים המתאימים לשימוש עם מנועים קטנים, וגם לא גיליתי כיצד לשלוט על גנרטור תלת פאזי.
המבנה הזה היה במקור בסיפור על
חישוב בזמן אמת, אני ממשיך לעשות זאת לאחר סיום הקורס.
הרעיון של הפרויקט הוא להציג דגם פרופורציונלי של מכונית היברידית עם אחסון אנרגיה של גלגל תנופה ובלימה רגנרטיבית.
המנוע המשמש בפרויקט הוא BLDCs קטן שניקו מהכונן הקשיח של המחשב הפגום.
מדריך זה מתאר כיצד להשתמש במיקרו-בקר Arduino ובחיישני
המיקום של Hall-Affects במצבי נהיגה ובלימה מתחדשת.
שימו לב שביקור ב-oscillisoft עוזר מאוד, אם לא חיוני, להשלמת פרויקט זה.
אם אינך מצליח לגשת להיקף, הוספתי כמה הצעות כיצד לעשות זאת ללא ההיקף (שלב 5).
דבר אחד שהפרויקט הזה לא צריך לכלול בשום בקר מנוע בפועל הוא כל פונקציית בטיחות כמו הגנת זרם יתר.
למעשה, הדבר הגרוע ביותר הוא שאתה שורף את מנוע ה-HD.
עם זאת, הטמעת הגנת זרם יתר עם החומרה הנוכחית אינה קשה, ואולי אעשה זאת בשלב מסוים.
אם אתה מנסה לשלוט במנוע גדול יותר, אנא הוסף הגנה מפני זרם יתר על מנת להגן על המנוע שלך ועל בטיחותך.
אני רוצה לנסות להשתמש בבקר הזה עם מנוע גדול יותר שיכול לעשות קצת עבודה \'אמיתית\' אבל עדיין אין לי את המתאים.
שמתי לב ש-eBay מכרה מכונית 86 W בכ-40$.
נראה מועמד טוב.
יש גם אתר RC בשם \'GoBrushless\' שמוכר ערכות שמרכיבות את ה-BLDC שלהם.
אלה לא יקרים מדי ושווה את הניסיון לבנות אחד.
שימו לב שאין חיישן אולם למנוע באתר זה. וואו!
כתיבת המבנה הזה היא עבודה גדולה.
אני מקווה שתמצא את זה מועיל, אנא ציין את הערותיך והצעותיך.
מודד דיגיטלי (DMM)-
אם ל-DMM שלך יש אוסילוסקופ של מד תדרים (
עדיף שיהיה לפחות 2 ערוצים)
דרייבר T8 Torx (
צריך אחד מהם כדי לפתוח כל כונן קשיח).
יש חנות לחומרי בניין טובה.
סדנת מכונה ואב טיפוס מהיר (
אלה מועילים מאוד אבל אני חושב שאפשר לעשות את הפרויקט הזה בלעדיהם).
חומר bldc מנוע טבעת מגנטית מהדיסק הקשיח של המחשב (
חצי מהמנוע)
מכונן קשיח אחר כמה (3-6)
יש מנוע קטן שני בדיסק הכסוף בדיסק הקשיח (DC מוברש תקין)
גומייה או (רצוי)
מנוע DC ללא מברשות עם ידית עם מנוע אחר לוחית לחם אלקטרונית חוט מוצק חודש ה- Arduino Duemilanove 120 ohm resistor resistor six ohm resorist or six ohm resistor Poteniometer100 k ohmST מיקרו מעגל L6234 מנוע תלת פאזי מנהל IC שני קבלים 100 uF אחד קבל 10 nF אחד קבל 220 nF אחד קבל 1 uF קבל אחד 100 uF שלוש דיודות מקבלות אחת 2.
מחזיק Honeywell SS41 הערה F: 5A bipolar SS41
מייק אנטון עיצב ומכר מוצר שיחליף את האלקטרוניקה הכוחנית ומעגלי חיישני הול שהצגתי במדריך זה (
הוא נשלט באמצעות אינדוקציה פוטנציאלית אחורית).
ניתן למצוא מפרטים ומידע על רכש בשני הקישורים הבאים: אם אתה מתכוון לבצע את הפרויקט הזה, אני מציע לך להקדיש את הזמן כדי להבין ביסודיות איך ה-BLDC עובד ושולט.
יש מספר רב של הפניות באינטרנט (
ראה להלן כמה הצעות).
עם זאת, אני כן כולל כמה תרשימים וטבלאות בפרויקט שלי שאמורים לעזור לך להבין.
הנה רשימה של המושגים שלדעתי הם החשובים ביותר להבנת הפרויקט הזה: טרנזיסטורים MOSFET 3-פאזי חצי גשר 6-
3-שלבים הפחתת המשפט
Pulse Width Modulation of Phase Motor (PWM) Hall-
Microchip AVR443: חיישנים-הפניה כללית DC Motor עקרונות בסיסיים עבור חיישני מיקום דיגיטליים
שליטה על מנוע תלת פאזי בקרה של DC בקרה ללא מברשת של מנוע DCbruse
Phase חיישן Flying Star Hall, סרטון טוב של ניקוי מנוע הכונן הקשיח, אבל נראה שהמחבר מפעיל את המנוע כמנוע צעד וכמנוע צעד. דף אינטרנט ספציפי יותר עבור BLDC על IC כונן מנוע l6234, כולל גליונות נתונים, הערות יישום ומידע רכישה.
דוגמה חינם להנעת מנוע ללא מברשות PM עבור יישומי רכב חשמלי היברידי.
זהו המאמר היחיד שמצאתי שמתאר את סדר השינוי של שלב הבלימה הרגנרטיבית.
המאמר הזה, בלימה רגנרטיבית ברכבים חשמליים הוא שימושי, שאלתי ממנו כמה מספרים, אבל אני חושב שהוא מתאר באופן שגוי איך התחדשות עובדת.
עשיתי את הפרויקט הזה עם מנוע כונן דיסק ממוחזר כי זה היה קל לעבור ואני אוהב להשתמש במנוע קטן במתח נמוך כדי ללמוד את הכבל הנשלט על ידי BLDC ולא לגרום לבעיות בטיחות.
בנוסף, תצורת המגנט של חיישן האולם הופכת לפשוטה מאוד באמצעות הטבעת המגנטית (רוטור)
מהמנוע השני מבין המנועים הללו (ראה שלב 4).
אם אתה לא רוצה ללכת לכל הטרחה של התקנה וכיול של חיישן האולם (שלבים 5-7)
אני יודע שיש לפחות כמה מנועים לכונן CD/DVD שנבנו חיישן באולם.
על מנת לספק אינרצית סיבוב למנוע ולתת להם מעט עומס, שמתי 5 כוננים קשיחים על המנוע, הדבקתי בעדינות יחד עם מעט דבק חזק והדבקתי למנוע (
זה עשה את גלגל התנופה בפרויקט המקורי שלי).
אם אתה מתכוון להסיר את המנוע מהכונן הקשיח, אתה צריך כונן T8 Torx כדי להבריג את המעטפת (
בדרך כלל יש שני ברגים מוסתרים מאחורי המקל בתווית המרכזית)
וברגים פנימיים שמחזיקים את המנוע במקומו.
אתה גם צריך להסיר את הראש Reader (
Sound circle executive)
בדרך זו אתה יכול להוציא את דיסק הזיכרון כדי להגיע למנוע.
בנוסף, תזדקק למנוע שני של כונן קשיח כדי להסיר את הרוטור מהמנוע הזה (
יש מגנט בפנים).
על מנת לפרק את המנוע, תפסתי את הרוטור (למעלה)
מלחציה של המנוע וחטטתי אותו על הסטטור (התחתון)
שני המברגים מרוחקים זה מזה 180 מעלות.
זה לא קל להחזיק את המנוע על זוג הדוק מספיק ללא עיוות.
אולי תרצה לבנות עץ v-
Block המשמש למטרה זו.
קדחתי חור בטבעת המגנטית במחרטה כך שתתאים בנוחות לחלק העליון של המנוע.
אם אינך מסוגל להשתמש במחרטה, תוכל לתקן את הרוטור ההפוך על המנוע בעזרת דבק חזק.
התמונות 2 ו-3 למטה מציגות את החלק הפנימי של אחד המנועים שפירקתי.
במחצית הראשונה יש (הרוטור) 8 מוטות (
מגנט עטוף בניילון).
במחצית השנייה (הסטטור)
יש 12 חריצים (פיתולים).
לכל אחד משלושת שלבי המנוע יש 4 חריצים בסדרה.
לחלק ממנועי HD יש שלושה מגעים בתחתית, מגע אחד לכל שלב, והשני הוא הברז המרכזי של המנוע (
במקום שבו שלושה שלבים נפגשים).
בפרויקט זה, אין צורך ברז מרכזי, אבל זה יכול להיות שימושי בשליטה ללא חיישנים (
אני מקווה לשחרר הערה לגבי שליטה ללא חיישן יום אחד).
אם למנוע שלך יש ארבעה מגעים, אתה יכול לזהות את הפאזה עם אומטר.
ההתנגדות בין הברז המרכזי לפאזה היא מחצית מההתנגדות בין כל שני פאזות.
רוב הספרות על מנועי BLDC עוסקת באלה עם צורת גל פוטנציאלית אחורית בצורת סולם, אך נראה שלמנוע הכונן הקשיח יש פוטנציאל אחורי שנראה כמו סינוס (ראה להלן).
עד כמה שידוע לי, הנעה של מנוע גלי סינוס עם PWM של גלי סינוס עובד מצוין, אם כי היעילות עשויה לרדת במקצת.
כמו כל מנועי ה-BLDC, זה מורכב
מגשר חצי טרנזיסטור תלת פאזי (
ראה תמונות 2 למטה).
אני משתמש ב-IC מתוצרת ST Micro (L6234)
עבור הגשר, הידוע גם כנהג המנוע.
החיבור החשמלי של L6234 מוצג בשלב 8.
התמונה השלישית להלן מציגה תרשים סכמטי של נהג המנוע ושלושת שלבי המנוע.
על מנת שהמנוע יפעל עם כיוון השעון, המתג יתבצע בסדר הבא (
האות הראשונה היא הטרנזיסטור העליון והאות השנייה היא הטרנזיסטור התחתון)
: שלב 1 2 3 4 5 6 עם כיוון השעון: CB, AB, AC, BC, BA, CA נגד כיוון השעון: BC, BA, CA, CB, AB, AC, אלה
דורשים רצף של 6' 360, אבל רק דרגה פיזית של 90 עבור מנועים אלה.
לכן, מהירות הסיבוב של כל מנוע מתרחשת ארבע פעמים.
נראה ששני הרצפים זהים, אבל הם לא זהים מכיוון
שלרצף בן 6 שלבים, עבור CW, כיוון הזרם דרך הפאזה הוא כיוון אחד, ועבור CCW, הכיוון הנוכחי הוא הפוך.
אתה יכול לראות זאת בעצמך על ידי הפעלת המתח של הסוללה או ספק הכוח על כל אחד משלבי המנוע.
אם תפעיל את המתח, המנוע יזוז מעט לכיוון אחד וייעצר.
אם אתה יכול לשנות במהירות את המתח על הפאזה באחד מהרצפים לעיל, אתה יכול לסובב את המנוע באופן ידני.
טרנזיסטורים ומיקרו-בקרים משלימים את כל המתגים הללו במהירות רבה, ומחליפים מאות פעמים בשנייה כשהמנוע פועל במהירות גבוהה.
כמו כן, שימו לב שאם המתח מופעל על שני השלבים, המנוע זז מעט ואז נעצר.
הסיבה לכך היא שהמומנט הוא אפס.
אתה יכול לראות זאת בתמונה הרביעית למטה, המציגה את הפוטנציאל האחורי של זוג שלבים מוטוריים.
זהו גל סינוס.
כאשר הגל עובר דרך x-
Shaft, המומנט שמספק שלב זה הוא אפס. ברצף
שינוי פאזות BLDC בן שישה השלבים שמעולם לא קרה.
לפני שהמומנט בפאזה מסוימת הופך נמוך, הכוח מועבר לשילוב פאזה אחר.
מנועי BLDC גדולים יותר מיוצרים בדרך כלל על ידי חיישני Hall בתוך המנוע.
אם יש לך מנוע כזה אז אתה יכול לדלג על השלב הזה.
כמו כן, אני יודע שיש לפחות כמה מנועים של כונן CD/DVD המובנים בחיישן הול כבר.
כאשר המנוע מסתובב, שלושה חיישני אולם משמשים לזיהוי מיקום, כך ששינוי הפאזה מתבצע ברגע הנכון.
מנוע ה-HD שלי עובד עד 9000 סל'ד (150 הרץ).
מכיוון שיש 24 שינויים לכל גלגל, ב-9000 סל'ד, המכונה משתנה כל 280 מיקרו שניות.
המיקרו-בקר Arduino עובד במהירות של 16 מגה-הרץ, כך שכל מחזור שעון הוא 0. 06 מיקרו-שניות.
אני לא יודע כמה מחזורי שעון נדרשים כדי לבצע הפחתת משפט, אבל גם אם נדרשים 100 מחזורי שעון, כלומר, זה לוקח 5 מיקרו-שניות לכל הפחתת משפט.
למנועי HD אין חיישני הול, ולכן יש צורך להתקין אותם בחלק החיצוני של המנוע.
יש לקבע את החיישן ביחס לסיבוב המנוע ולחשוף אותו לסדרה של קטבים התואמים את סיבוב המנוע.
הפתרון שלי הוא להסיר את הטבעת המגנטית מאותו מנוע ולהתקין אותה הפוך על המנוע שיש לשלוט בו.
לאחר מכן התקנתי שלושה חיישני אולם מעל הטבעת המגנטית הזו, במרחק של 30 מעלות זה מזה על פיר המנוע (
סיבוב מנוע חשמלי של 120 מעלות).
מחזיק החיישן שלי Hall מורכב ממחזיק פשוט המורכב משלושה חלקי אלומיניום שעובדו על ידי ושלושה חלקי פלסטיק העשויים על אב טיפוס מהיר.
אם אין לך את הכלים האלה, זה לא אמור להיות קשה למצוא דרך אחרת לציין את המיקום.
יצירת סוגריים עבור חיישני הול תהיה מאתגרת יותר.
זוהי דרך אפשרית לעבודה: 1.
מצא מגש פלסטיק בגודל המתאים ותוכל באפוקסי בזהירות את חיישן האולם. 2.
על הנייר מודפסת תבנית בעלת עיגול זהה לרדיוס הטבעת המגנטית, ושלושת הסימנים מרוחקים 15 מעלות 3 זה מזה.
הדביקו את התבנית לדיסק ולאחר מכן השתמשו בתבנית כמדריך למקם בזהירות את אפוקסי חיישן האולם במקומו.
כעת, כאשר חיישני הול מותקנים על המנוע, חבר אותם למעגל המוצג להלן ובדוק אותם באמצעות DMM או אוסילוסקופ כדי לוודא שהפלט הולך וגדל ככל שהמנוע מסתובב.
אני מפעיל את החיישנים האלה מתחת ל-5 v באמצעות פלט 5 v של Arduino.
חיישן הול הוא גבוה או נמוך בפלט (1 או 0)
זה תלוי אם הם מרגישים את אנטארקטיקה או את הארקטי.
מכיוון שהם נמצאים במרחק של 15 מעלות זה מזה, המגנטים מסתובבים מתחתיהם ומשנים את הקוטביות כל 45 מעלות, שלושת החיישנים הללו לעולם לא יהיו גבוהים או נמוכים בו זמנית.
כאשר המנוע מסתובב, פלט החיישן הוא 6-
דפוס הצעדים המוצג בטבלה הבאה.
החיישן חייב להיות מיושר עם תנועת המנוע כך שאחד משלושת החיישנים ישתנה בדיוק במיקום שינוי הפאזה של המנוע.
במקרה זה, הקצה העולה של חיישן האולם הראשון (H1)
צריך להיות עקבי עם הפתיחה של השילוב C (גבוה) ו-B (נמוך).
זה שווה ערך להפעלת טרנזיסטורים 3 ו-5 במעגל הגשר.
אני מיישר את החיישן עם המגנט עם אוסילוסקופ.
על מנת לעשות זאת, עלי להשתמש בשלושה ערוצי היקף.
אני מסובב את המנוע על ידי חיבור לחגורה של המנוע השני ומודד את הפוטנציאל האחורי בין שני שילובי הפאזות (
A ו-B, A ו-C)
זהו שני סינוס.
כמו הגלים בתמונה למטה
ואז הסתכלו על האות של חיישן הול 2 בערוץ 3 של האוסילוסקופ.
מחזיק חיישן ההול מסובב עד שהקצה העולה של חיישן האולם מיושר במלואו עם הנקודה שבה יש לבצע את שינוי הפאזה (ראה להלן).
עכשיו אני מבין שיש רק שני ערוצים לעשות את אותו כיול.
אם BEMF של שילוב פאזה B-
באמצעות C, הקצה העולה של H2 יהיה קשור לעקומת BC.
הסיבה שבגינה יש לבצע את שינוי הפאזה כאן היא תמיד לשמור על מומנט המנוע גבוה ככל האפשר.
הפוטנציאל האחורי הוא פרופורציונלי למומנט ותבחין שכל שינוי פאזה מתרחש כאשר הפוטנציאל האחורי עובר מתחת לעקומת השלב הבא.
לכן, המומנט בפועל מורכב מהחלק הגבוה ביותר של כל שילוב פאזה.
אם אינך יכול לגשת לטווח, הנה הרעיון שלי ליישור.
זהו למעשה תרגיל מעניין לכל מי שרוצה לדעת כיצד פועל המנוע BLDC.
אם המנוע שלב A מחובר (חיובי) ו-B (שלילי)
לאספקת החשמל ותפעיל את ספק הכוח, המנוע יסתובב מעט וייעצר.
לאחר מכן, אם כבל המתח השלילי מועבר לשלב C והמתח מופעל, המנוע יסתובב וייעצר.
החלק הבא של הרצף יהיה להעביר את ההובלה החיובי לשלב B וכו'.
כאשר אתה עושה זאת, המנוע תמיד עוצר במקום שבו המומנט הוא אפס, מה שמתאים למקום אחד בו התרשים עובר דרך ציר ה-x בתרשים.
שימו לב שנקודת האפס של שילוב השלב השלישי מתאימה למיקום שינוי הפאזה של שני השילובים הראשונים.
לכן, מיקום המומנט האפס של B-
השילוב C הוא המקום שבו אתה רוצה למקם את הקצה העולה של h2.
סמן את המיקום הזה בסימנים עדינים או להבים חדים, ולאחר מכן כוונן את מחזיק חיישן האולם באמצעות DMM עד שהפלט של H2 יהיה גבוה יותר בדיוק בסימון זה.
גם אם חורגים מעט מלוח הזמנים של בית הספר, המנוע אמור לעבוד היטב.
שלב שלושת המנועים יקבל כוח מנהג מנוע תלת פאזי L6234.
גיליתי שזה מוצר טוב שיכול לעמוד במבחן הזמן.
ישנן דרכים רבות לטגן בטעות את הרכיבים שלך בעת שימוש באלקטרוניקה כוח, אני לא מהנדס חשמל ואני לא תמיד יודע מה קורה.
בתוכנית בית הספר שלי, עשינו
פלט משלנו תלת פאזי חצי גשר של 6 טרנזיסטורים MOSFET ו-6 דיודות.
השתמשנו בזה ב-HIP4086 של הנהג השני Intersil, אבל יש לנו הרבה בעיות עם ההגדרה הזו.
שרפנו חבורה של טרנזיסטורים ושבבים.
אני מפעיל את L6234 (
אז המנוע) ב-12V.
ל-L6234 יש סט יוצא דופן של כניסות לשליטה על חצי גשר של 6 טרנזיסטורים.
לא לכל טרנזיסטור יש קלט, אלא
כניסת Enable (EN) לכל אחד משלושת השלבים, ולאחר מכן קלט נוסף (IN)
בחר איזה טרנזיסטור בשלב הפתוח (עליון או תחתון).
לדוגמה, הפעל טרנזיסטור 1 (עליון) ו-6 (תחתון)
גם EN1 וגם EN3 גבוהים (
EN2 נמוך כדי לשמור על הבמה סגורה)
IN1 High, IN3 נמוך.
זה הופך את שילוב השלב-C.
בעוד שההערה של היישום L6234 הציעה להחיל את ה-PWM המשמש לשליטה על מהירות המנוע על פין IN, החלטתי לעשות זאת על פין EN מכיוון שבאותו זמן, אני חושב שזה יהיה \'מוזר\' להפעיל את הטרנזיסטורים העליון והתחתון של הפאזה לסירוגין \'.
למעשה, נראה שאין שום דבר רע בהפעלת הפאזה באותו זמן, אז יש להם שום פסול בהפעלת הפאזה באותו זמן, אז יש להם פוטנציאל נמוך באותו זמן, אף אחד מהם לא עובר דרך הזרם.
עם השיטה שלי, הפאזה הגבוהה מופעלת ומושבתת לסירוגין בתדר PWM, בעוד שהפאזה הנמוכה נשארת דולקת במהלך כל שינוי הפאזה.
להלן סכימה של כונן המנוע, הוספתי את חיבור הפינים ללוח Arduino לחיבור של 2.
5 אמפר בין הספק החיובי של הסוללה ל-g0. האדוות בזרם ההתחדשות. הנתון
הוא קצת קטן, אז עבור גרסאות גדולות יותר, אנא עיין בתיעוד של L6234
, אשר (אני מאמין)
יחליף את המסלול הזה ויחסוך לך את העבודה של הרכבת
הזה
זה
מהנדס חשמל ואנו נשמח לכל תיקון להסבר שלי
בעת נהיגה, מערכת הבקרה שולחת את הזרם לשלושה שלבי מנוע באופן שממקסם את המומנט בבלימה
רגנרטיבית, מערכת הבקרה גם ממקסמת את המומנט, אבל הפעם זה מומנט שלילי שגורם למנוע להאט את קצב המהירות של הסוללה שבה השתמשתי בסוללה מעבדה
הברית.
בארצות
מאמר טוב שמסביר כיצד
ממיר החיזוק פועל).
אפשר שהזרם יזרום מ-B לבלימה רגנרטיבית.
אנרגיה זו משתחררת כאשר הטרנזיסטור הנמוך כבוי, אך במתח גבוה יותר, הזרם זורם מיידית דרך דיודה \'אנטי עירור\' שליד כל טרנזיסטור,
אתה יכול לראות שהבלם הרגנרטיבי עובד מצוין , אבל הוא
לסוללה מומנט שלילי שמאט את המנוע הטרנזיסטור הנמוך משתמש במתג PWM,
ומחזור העבודה של PWM שולט בכמות הבלימה בעת
ואז חוזר
נסיעה, העברת המנוע עוברת משילוב אחד למשנהו כדי לשמור על המומנט הגבוה ביותר האפשרי שלב ראשון,
לא עובד טוב. אני חושב שהסיבה העיקרית היא שמנוע הכונן הקשיח שבו אני משתמש הוא מנוע מומנט נמוך מאוד, כך שהוא
המערכת שלי פועלת במתח
לא מייצר הרבה BEMF למעט במהירות הגבוהה ביותר, יש מעט מאוד בלימה רגנרטיבית (
מפחית את המתח במספר וולט, זה גם מפחית
אם בכלל,
נמוך יחסית) .
שאשתמש בכמה דיודות מיוחדות עם ירידת מתח נמוך יותר. להלן
מאוד את היעילות. אני משתמש בדיודות מיישר רגילות ויכול להיות
רשימה של כניסות ויציאות ב-arduino. 3 כניסות דיגיטליות- התנגדות 120 K של Gnd 5 1 יציאה דיגיטלית בסדרה עם נגד 400 אוהם 6 2 יציאות דיגיטליות בסדרה עם נגד 400 אוהם 7 3 יציאות
דיגיטליות בסדרה עם נגד 400 אוהם 9- יציאה דיגיטלית של EN 1
בסדרה עם נגד 400 אוהם בסדרה עם נגד 400 אוהם עם נגד 400 אוהם 1002 11- היציאה
הדיגיטלית של EN 3 היא בסדרה עם נגד 400 אוהם, פוטנציומטר 100 k Ohm, עם 5
להפעלת חיישני הול (ראה
)
v ו-gnd מחוברים בשני הקצוות ופין אנלוגי 0 מחובר באמצע הפוטנציומטר הזה משמש לשליטה על מהירות המנוע ועוצמת הבלימה של 5 V משמש גם
פאזי מנוע דרייבר IC * הפעלת מנוע כונן דיסק בכיוון השעון * עם בלימה רגנרטיבית
היא
3-
3 מאת דייוויד גלזר סדרת ה-X
ST L6234
*
bldc_congroller 3. 1. 1*
שלב 5
חיישני
מהירות מנוע ובלימה שנשלטת על ידי פוטנציומטר בודד * מיקום מנוע על ידי שלושה Hall- Effect Sensor * Arduino מקבל פלט מ-3
פאזה
, 3
הפינים שלהם, וממירים 3 חיישנים שונים. צעדים על פינים 9, 10,
11 בתדר 32 קילו
-הרץ * פלט PWM ( מקביל ל-EN 1,2, 3*3 DO על פינים 5,6, 7, בהתאמה
את הסימולציה ב-0 לפוטנציומטר כדי לשנות את מחזור העבודה של PWM ושינוי
(IN 1,2,3) * חבר
500-
9 * 9 בלימה.
523: Taxi * 524- 1023 : מוטורי * הערות רבות עבור
* בין נהיגה רגטיבית-0 לבלימה *
חיישני הול (3,2,1) int HallState2
ניפוי ערכים על חיבור טורי */Int allstate1 משתנים של שלושה
/
= Int HallVal = 0; /Speed level int bSpeed = 0 for motor; /Brake level of throttle = 0 / משתנה זה משמש יחד עם האנלוגי כדי למדוד את מיקום הפער של פוטנציומטר המצערת (){pinMode
In
2
(2,
;
INPUT/Hall 1 pinMode (3,INPUT/Hall pin); motor driver (5,OUTPUT); /In 1 pinMode (6,OUTPUT)
,
pinMode (7,OUTPUT);
/In 3
pinMode
(9,OUTPUT); /EN 1 pinMode (10
OUTPUT);
/EN 2 pinMode (11,OUTPUT);
/EN 3/serial. begin(9600); If you will be using a serial connection
, please uncomment this line. The flush command בסוף
תדירות ה-PWM בפינים
9,
10 ו-11/
קבע את
10/10' 0
אותו כך שיהיה שווה למספר הבינארי של
התוכנית /* הגדר את
PWM ל-32 kHz עבור פינים 9, 10/תחילה נקה את כל שלושת הסיביות המקדימה: int prescalerVal = 0x07 והגדר
' Prescaler
/והערך ב-TCCR0B עם המספר הבינארי של \'11111000\'/הגדר עכשיו את סיבית הקוד הקודמת המתאים: int pre-encoding bit 2 = 1;
\'00000001
\'/הגדר את PWM ל-32 kHz עבור פין 3,11 (
תוכנית זו משתמשת רק בפין 11)
/נקה תחילה את כל שלושת הסיביות הקדם-caler: TCCR2B & = ~ Pre-calerval
/והערך ב-TCCR0B עם מספר בינארי של \'1111111111111111'/המתאים: TCCR2B |. = קוד קידוד 2;
/או הערך ב-TCCR0B עם מספר בינארי של \'00000001\'/תחילה נקה את כל שלושת הביטים המקודדים
של ה-/PRGROM void לולאה (){
/Time = millis (
' );
analogRead (0);
/ Throttle potentiometer MSPs (
Throttle, 512,1023, 0,255
/ Driving ממופה למחצית העליונה של הפוטנציומטר bSpeed = map (
Throttle, 0,511,255, 0
/ Half-part of the braking
/0); HallState1 = digitalRead (2);
/Read input from Hall 1 2 = Digital Read (3/
(
Read input from Hall 2 3 = Digital Read (4). HallVal = (HallState1)+ (4*HallState3);
print
\'H 3
: \');
Serial. println(HallState3); Serial. println(\' \'); */
//Serial. println(mSpeed); //Serial. println(HallVal); //Serial. print(\'\'); /Monitor transistor output/delay (1000); /* T1 = digitalRead (2);
; T2 = digitalRead (4); //T2
//T1 = ~T1
= ~T2; T3 = digitalRead (5); //T3 = ~
T3
; Serial. print(T1); Serial. print(\'\t\'); Serial. print(T2); Serial. print(\'\t\'); Serial. print(T3); Serial. print(\'\'); Serial. print(\'\'); Serial. print(digitalRead(3)); Serial. print(\'\t\'); Serial. print(digitalRead(9)); Serial. print(\'\t\'); Serial. println(digitalRead(10)); Serial. print(\'\'); Serial. print(
\'\'); //delay(500); */Driving phase change/each binary number יש מקרה המתאים לטרנזיסטורים השונים מופעלים/מתמטיקה ביט המשמשת
כדי לקבוע אם הטרנזיסטור העליון או
: /PORTD מכיל את הפלט של פין IN בדריבר ה-
המשמש
לשינוי הערך של הפלט arduino
L6234
/ הפלט
פין עבור כל פאזה נשלט על ידי
הטרנזיסטור התחתון
אנלוגיית הפקודות Arduino, הגדר את מחזור העבודה של PWMON = 5 Rotthle = 5 פוטנציומטר). אם (מצערת > 511)
/ EN
מקרה 3:/PORTD = 1111xxx00;
מתייחס לכניסת הול ו-
&
/ פלט צפי של
{ Switch
(
HallVal) {
High-end transistor)analogWrite(10,0 Phase B closure (Duty
= B00011111 פאזה / A001; (
0-7 xxx
PORTD
= 0)analogWrite(11,255)
// Phase C on -duty = 100% (Low -end transistor)break;
/
B00100000 ;
| =
Analowrite (9,mSpeed); PWM on A phase ( High-end transistor)analogWrite(10,255);
Phase
B
//
Case
on ( Low-end transistor)analogWrite(11,0); //Phase B off (duty = 0)break;
5:/PORTD = B101xxx00;
/Expected output of pin 0-
7 PORTD & =
B00011111
; PORTD |. bym000; (9,255); analogWrite(11,255); }}
/Regenerative brake change/PORTD (
של IN על L6234)
הם תמיד נמוכים, אז רק טרנזיסטורים נמוכים בשימוש ב-Regen else
פלט
הפינים
bym0000;
// switch (HallVal){
Case 3: analogy writing (9,bSpeed); //analogWrite(9,0)
; analogWrite(10,0); analogWrite(11,0); break;
Case 1: analogy writing (9,bSpeed); analogWrite(10,0)
; analogWrite(11,0); break;
Case 5: analogy writing (9,0); analogWrite(11,bSpeed כתיבה (9,0 analogWrite
(11,bSpeed כתיבה (10,0 כתיבה); analogWrite(10,bSpeed); analogWrite(11,0)
millis (); Time after the printing program starts.
; break; }} /
Time =
using a serial port, please uncomment} I think the operation that Arduino does in this project is
println(time); //Serial. print(\'\'); //Serial. flush(); /If you want to debug
seems like a waste to do משימה
זו עם
so simple that it
מיקרו-מעבד רצפים
לוגיים פשוטים יחסית שיכולים להניע את ה-L6234 IC מהפלט של שלושת חיישני האולם.
התרשים עבור שלב A מוצג להלן, וטבלת האמת עבור כל שלושת השלבים (
כדי לאפשר את המעגל הלוגי של שלבי B ו-C, הדלת \'לא\' חייבת לעבור לצד השני של \'או.
הבעיה עם זה דורשת כמעט חיבור של 2 בכל שלב. יחד
עדיף לתכנת אותו כשער לוגי הניתן לתכנות.