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

אספקת חשמל דיגיטלית: 7 שלבים (עם תמונות)
אספקת חשמל דיגיטלית: 7 שלבים (עם תמונות)

וִידֵאוֹ: אספקת חשמל דיגיטלית: 7 שלבים (עם תמונות)

וִידֵאוֹ: אספקת חשמל דיגיטלית: 7 שלבים (עם תמונות)
וִידֵאוֹ: אני רוצה שווארמה 🌯 2024, נוֹבֶמבֶּר
Anonim
אספקת חשמל דיגיטלית מופעלת
אספקת חשמל דיגיטלית מופעלת
אספקת חשמל דיגיטלית מופעלת
אספקת חשמל דיגיטלית מופעלת
אספקת חשמל דיגיטלית מופעלת
אספקת חשמל דיגיטלית מופעלת
אספקת חשמל דיגיטלית מופעלת
אספקת חשמל דיגיטלית מופעלת

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

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

לפני זמן מה בניתי ספק כוח מ- ATX PSU ישן, ובעוד שהוא עובד מצוין, רציתי להגביר את המשחק שלי עם ספק כוח דיגיטלי. כפי שכבר נאמר, הוא מופעל באמצעות סוללות (2 ליתיום ליתר דיוק), והוא יכול לספק מקסימום של 20 וולט ב -1 A; וזה מספיק עבור רוב הפרויקטים שלי הדורשים ספק כוח מדויק.

אני אראה את כל תהליך העיצוב, ואת כל קבצי הפרויקטים ניתן למצוא בדף GitHub שלי:

בואו נתחיל!

שלב 1: תכונות ועלות

תכונות ועלות
תכונות ועלות

מאפיינים

  • מתח קבוע ומצבי זרם קבוע
  • משתמש בווסת ליניארי בעל רעש נמוך, לפניו קדם מעקב קדם מעקב כדי למזער את פיזור הכוח
  • שימוש ברכיבים הניתנים ללחמה ביד כדי להשאיר את הפרויקט נגיש
  • מופעל על ידי ATMEGA328P, מתוכנת עם Arduino IDE
  • תקשורת מחשבים באמצעות יישום ג'אווה באמצעות מיקרו USB
  • מופעל על ידי 2 תאי ליתיום יונים מוגנים
  • תקעי בננה מרווחים של 18 מ"מ לתאימות עם מתאמי BNC

מפרטים

  • 0 - 1A, שלבים של 1 mA (10 סיביות DAC)
  • 0 - 20V, שלבים של 20 mV (10 סיביות DAC) (פעולה אמיתית של 0V)
  • מדידת מתח: רזולוציה של 20 mV (10 סיביות ADC)
  • מדידת זרם:

    • <40mA: רזולוציה של 10uA (ina219)
    • <80mA: רזולוציה של 20uA (ina219)
    • <160mA: רזולוציה של 40uA (ina219)
    • <320mA: רזולוציית 80uA (ina219)
    • > 320mA: רזולוציה של 1mA (10 סיביות ADC)

עֲלוּת

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

אם לא אכפת לך להזמין את הרכיבים שלך מ- ebay או aliexpress, המחיר עם סוללות יירד ל -100 $ ו -70 $ בלי. לוקח יותר זמן עד שהחלקים נכנסים, אבל זו אפשרות כדאית.

שלב 2: סכמטי ותורת הפעולה

סכמטי ותורת הפעולה
סכמטי ותורת הפעולה

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

בלוק ראשי

הפעולה מבוססת סביב שבב LT3080: זהו ווסת מתח ליניארי, שיכול להוריד את המתחים, המבוסס על אות בקרה. אות בקרה זה ייווצר על ידי מיקרו -בקר; כיצד הדבר נעשה, יוסבר בפירוט בהמשך.

הגדרת מתח

המעגלים סביב ה- LT3080 מייצרים את אותות הבקרה המתאימים. ראשית, נבחן כיצד נקבע המתח. הגדרת המתח מהמיקרו -בקר היא אות PWM (PWM_Vset), אשר מסונן על ידי מסנן מעבר נמוך (C9 & R26). זה מייצר מתח אנלוגי - בין 0 ל -5 V - ביחס למתח היציאה המבוקש. מכיוון שטווח הפלט שלנו הוא 0 - 20 וולט, נצטרך להגביר את האות הזה עם גורם 4. הדבר נעשה על ידי תצורת אופמפ לא הופכת של U3C. הרווח לסיכה המוגדרת נקבע על ידי R23 // R24 // R25 ו- R34. נגדים אלה הם 0.1% סובלניים, כדי למזער טעויות. R39 ו- R36 אינם חשובים כאן, מכיוון שהם חלק מלולאת המשוב.

ההגדרה הנוכחית

סיכה זו יכולה לשמש גם להגדרה השנייה: מצב נוכחי. אנו רוצים למדוד את השיווי הנוכחי ולכבות את הפלט כאשר זה חורג מהזרם המבוקש. לכן, אנו מתחילים מחדש באות PWM (PWM_Iset), שנוצר על ידי המיקרו -בקר, אשר מסונן כעת ונחלש לעבור ממגוון 0 - 5 V לטווח של 0 - 2 V. מתח זה מושווה כעת לירידת המתח על פני הנגד החוש הנוכחי (ADC_Iout, ראה להלן) על ידי תצורת המשווה של opamp U3D. אם הזרם גבוה מדי, זה יפעיל לד, וגם ימשוך את הקו המוגדר של ה- LT3080 לקרקע (דרך Q2), ובכך יכבה את הפלט. מדידת הזרם וייצור האות ADC_Iout נעשים כדלקמן. זרם הפלט זורם דרך נגדים R7 - R16. סה"כ 1 אוהם; הסיבה לאי שימוש ב- 1R מלכתחילה היא כפולה: נגד אחד יהיה צורך בדירוג הספק גבוה יותר (הוא צריך להתפזר לפחות 1 וואט), ועל ידי שימוש במקביל ב -10% נגדים נקבל דיוק גבוה יותר עם נגד בודד של 1 %. סרטון טוב שמסביר מדוע זה עובד ניתן למצוא כאן: https://www.youtube.com/embed/1WAhTdWErrU&t=1s כאשר הזרם זורם דרך נגדים אלה, הוא יוצר ירידת מתח, אותה אנו יכולים למדוד והיא ממוקם לפני LT3080, מכיוון שירידת המתח על פניו לא אמורה להשפיע על מתח היציאה. ירידת המתח נמדדת עם מגבר דיפרנציאלי (U3B) בעל רווח של 2. זה גורם לטווח מתח של 0 - 2 V (עוד על כך בהמשך), ומכאן מחלק המתח באות PWM של הזרם. המאגר (U3A) נמצא שם כדי לוודא שהזרם הזורם לנגדים R21, R32 ו- R33 אינו עובר בנגד החושים הנוכחי, מה שישפיע על קריאתו. שים לב גם שזה אמור להיות מסלול של מסילה למסילה, מכיוון שמתח הכניסה בכניסה החיובית שווה למתח האספקה. המגבר הלא הפוך מיועד רק למדידת הקורס, אם כי למדידות מדויקות מאוד יש לנו שבב INA219 על הסיפון. שבב זה מאפשר לנו למדוד זרמים קטנים מאוד, ומטופל באמצעות I2C.

דברים נוספים

בתפוקת ה- LT3080, יש לנו עוד כמה דברים. קודם כל, יש כיור נוכחי (LM334). זה שואב זרם קבוע של 677 uA (נקבע על ידי הנגד R41), כדי לייצב את LT3080. אולם הוא אינו מחובר לקרקע, אלא ל- VEE, מתח שלילי. זה נחוץ כדי לאפשר ל- LT3080 לפעול עד 0 V. כאשר הוא מחובר לאדמה, המתח הנמוך ביותר יהיה בערך 0.7 V. זה נראה מספיק נמוך, אך זכור כי הדבר מונע מאיתנו לכבות את ספק הכוח לחלוטין. דיודת הזנר D3 משמשת להדק את מתח היציאה אם היא עולה על 22 וולט, ומחלק הנגדים מוריד את טווח מתח היציאה מ 0 - 20 V ל 0 - 2 V (ADC_Vout). למרבה הצער, מעגלים אלה נמצאים ביציאה מה- LT3080, מה שאומר שהזרם שלהם יתרום לזרם הפלט אותו אנו רוצים למדוד. למרבה המזל, זרמים אלה הם קבועים אם המתח נשאר קבוע; כך שנוכל לכייל את הזרם כאשר העומס מנותק תחילה.

משאבת טעינה

המתח השלילי שהזכרנו קודם נוצר על ידי מעגל קטן ומוזר: משאבת הטעינה. לתפעולו, הייתי מתייחס לכאן: https://www.youtube.com/embed/1WAhTdWErrU&t=1s הוא מוזן על ידי PWM של 50% מהמיקרו -בקר (PWM)

ממיר Boost

בואו נסתכל כעת על מתח הכניסה של הבלוק הראשי שלנו: Vboost. אנחנו רואים שזה 8 - 24V, אבל רגע, 2 תאי ליתיום בסדרה נותנים מקסימום של 8.4 V? אכן, ובגלל זה עלינו להגביר את המתח, עם מה שמכונה ממיר בוסט. תמיד נוכל להגביר את המתח ל -24 וולט, לא משנה איזה פלט נרצה; עם זאת, הדבר יבזבז הרבה כוח ב- LT3080 והדברים יתחממו! אז במקום לעשות זאת, נעלה את המתח לקצת יותר ממתח המוצא. כ -2.5 V גבוה יותר מתאים, כדי להסביר את ירידת המתח בנגד החוש הנוכחי ואת מתח הנשירה של LT3080. המתח נקבע על ידי נגדים באות הפלט של ממיר ההגברה. כדי לשנות את המתח הזה תוך כדי תנועה, אנו משתמשים בפוטנציומטר דיגיטלי, MCP41010, הנשלט באמצעות SPI.

טעינת סוללה

זה מוביל אותנו למתח הכניסה האמיתי: הסוללות! מכיוון שאנו משתמשים בתאים מוגנים, עלינו פשוט להכניס אותם לסדרה וסיימנו! חשוב להשתמש כאן בתאים מוגנים, כדי להימנע מזרם יתר או פריקה יתר של התאים, ובכך לפגוע בהם. שוב, אנו משתמשים במפריד מתח למדידת מתח הסוללה והורדתו לטווח שמיש. עכשיו לחלק המעניין: מעגלי הטעינה. אנו משתמשים בשבב BQ2057WSN למטרה זו: בשילוב עם TIP32CG, הוא בעצם יוצר ספק כוח ליניארי בעצמו. שבב זה טוען את התאים באמצעות מסלול CV CC מתאים. מכיוון שלסוללות שלי אין בדיקת טמפרטורה, קלט זה צריך להיות קשור למחצית מתח הסוללה. זה מסכם את חלק ויסות המתח של ספק הכוח.

רגולטור 5V

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

התייחסות מתח 2.048 וולט

שבב קטן זה מספק התייחסות מתח מדויקת מאוד של 2.048 וולט. זה משמש כהפניה לאותות האנלוגיים ADC_Vout, ADC_Iout, ADC_Vbatt. לכן היינו צריכים מחלקי מתח כדי להוריד את האותות האלה ל -2 מיקרו -בקר המוח של הפרויקט הזה הוא ATMEGA328P, זהו אותו שבב המשמש ב- Arduino Uno. כבר עברנו על רוב אותות הבקרה, אבל יש כמה תוספות מעניינות בכל זאת. המקודדים הסיבוביים מחוברים ל -2 סיכות ההפרעה החיצוניות היחידות של הארדואינו: PD2 ו- PD3. זה נחוץ לצורך יישום תוכנה אמין. המתגים מתחת משתמשים בנגד פנימי של זרימה. אז יש את מחלק המתח המוזר הזה בקו בחירת השבבים של הפוטנציומטר (סיר). מחלק מתח ביציאה, בשביל מה זה טוב; אתה יכול לומר. כפי שצוין קודם לכן, אספקת ה -5 V אינה מדויקת באופן קיצוני. לפיכך יהיה טוב למדוד זאת במדויק ולהתאים את מחזור הפעולה של אות ה- PWM בהתאם. אבל מכיוון שלא היו לי יותר תשומות פנויות, הייתי צריך לעשות סיכה למשוך כפולה. כאשר אספקת החשמל מתחילה, סיכה זו מוגדרת לראשונה כקלט: היא מודדת את מסילת האספקה ומכיילת את עצמה. לאחר מכן, הוא מוגדר כפלט והוא יכול להניע את קו בחירת השבבים.

מנהל התקן תצוגה

לתצוגה, רציתי מסך LCD מסוג Hitachi זמין - וזול. הם מונעים על ידי 6 סיכות, אך מכיוון שלא נשארו לי סיכות, הייתי צריך פתרון אחר. פנקס משמרות להצלה! 74HC595 מאפשר לי להשתמש בקו SPI לשליטה על התצוגה, ולכן צריך רק קו בחירה נוסף של שבב.

FTDI

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

וזה כל מה שיש!

שלב 3: PCB ואלקטרוניקה

PCB ואלקטרוניקה
PCB ואלקטרוניקה
PCB ואלקטרוניקה
PCB ואלקטרוניקה
PCB ואלקטרוניקה
PCB ואלקטרוניקה
PCB ואלקטרוניקה
PCB ואלקטרוניקה

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

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

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

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

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

שלב 4: מארז והרכבה

מארז והרכבה
מארז והרכבה
מארז והרכבה
מארז והרכבה
מארז והרכבה
מארז והרכבה

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

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

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

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

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

בשלב זה החומרה הסתיימה, ועכשיו כל שנותר הוא להכניס קצת חיים לתוכנה!

שלב 5: קוד ארדואינו

קוד ארדואינו
קוד ארדואינו

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

הקוד בעצם עובר את השלבים הבאים:

  1. קרא נתונים סדרתיים מ- java
  2. לחצני סקרים
  3. למדוד מתח
  4. למדוד זרם
  5. מדוד זרם עם INA219
  6. שלח נתונים טוריים לג'אווה
  7. הגדר את boostconvertor
  8. קבל טעינת סוללה
  9. עדכון מסך

המקודדים הסיבוביים מטופלים על ידי שגרת שירות מפסיקה על מנת שהם יגיבו כמה שיותר.

כעת ניתן להעלות את הקוד ללוח דרך יציאת המיקרו USB (אם לשבב יש מטעין אתחול). לוח: Arduino pro או pro mini מתכנת: AVR ISP / AVRISP MKII

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

שלב 6: קוד ג'אווה

קוד ג'אווה
קוד ג'אווה

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

אנו מתחילים ביצירת חלון עם כפתורים, שדות טקסט וכו '; דברים בסיסיים ב- GUI.

עכשיו מגיע החלק המהנה: הוספת יציאות ה- USB, שלשמן השתמשתי בספריית jSerialComm. לאחר בחירת יציאה, java יקשיב לכל הנתונים הנכנסים. אנו יכולים גם לשלוח נתונים למכשיר.

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

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

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

שלב 7: הצלחה

הַצלָחָה!
הַצלָחָה!
הַצלָחָה!
הַצלָחָה!
הַצלָחָה!
הַצלָחָה!

אחרי כל העבודה הזו, יש לנו כעת ספק כוח תפקודי לחלוטין!

אני חייב גם להודות לכמה אנשים על תמיכתם:

  • הפרויקט התבסס על פרויקט uSupply של EEVBLOG ועל סכמטי ה- Rev C שלו. אז תודה מיוחדת לדייויד ל'ג'ונס ששיחרר את התרשימים שלו תחת רישיון קוד פתוח ושיתף את כל הידע שלו.
  • תודה ענקית ליוהאן פאטין על ייצור אב הטיפוס של הפרויקט הזה.
  • גם לסדריק בושצ'וט והנס אינגלברט מגיע קרדיט על העזרה בפתרון בעיות.

כעת אנו יכולים ליהנות מאספקת החשמל הביתית שלנו, אשר תועיל בעת עבודה על פרויקטים מדהימים אחרים! והכי חשוב: למדנו הרבה דברים בדרך.

אם אהבתם את הפרויקט הזה, אנא הצביעו לי בתחרות אספקת החשמל, אעריך אותו מאוד! Https: //www.instructables.com/contest/powersupply/

תחרות אספקת חשמל
תחרות אספקת חשמל
תחרות אספקת חשמל
תחרות אספקת חשמל

פרס שני בתחרות אספקת החשמל

מוּמלָץ: