במדריך זה נפתח מקור מתח משתנה 5V מבית Arduino Uno. לשם כך אנו משתמשים בתכונות ADC (אנלוגיות להמרה דיגיטלית) ו- PWM (אפנון רוחב הדופק).
יש מודולים אלקטרוניים דיגיטליים כמו מד תאוצה שעובדים על מתח 3.3V וחלקם עובדים על 2.2V. חלקם אפילו עובדים על מתח נמוך יותר. בכך איננו יכולים להשיג רגולטור לכל אחד מהם. אז כאן נכין מעגל פשוט שיספק פלט מתח בין 0-5 וולט ברזולוציה של 0.05 וולט. אז עם זה אנו עשויים לספק מתח במדויק עבור המודולים האחרים.
מעגל זה יכול לספק זרמים של עד 100mA, כך שנוכל להשתמש ביחידת הכוח הזו ברוב מודולי החיישנים ללא שום בעיה. ניתן להשתמש בפלט מעגל זה גם לטעינת סוללות נטענות AA או AAA. עם התצוגה במקום אנו יכולים לראות בקלות את תנודות הכוח במערכת. יחידת אספקת חשמל משתנה זו מכילה ממשק כפתורים לתכנות המתח. העבודה והמעגל מוסברים להלן.
חומרה: Arduino Uno, ספק כוח (5V), קבל 100uF (2 חתיכות), כפתור (2 חתיכות), נגד 1KΩ (3 חתיכות), 16 * 2 תווים LCD, טרנזיסטור 2N2222.
תוכנה: Atmel studio 6.2 או AURDINO מדי לילה.
תרשים מעגל והסבר עבודה
המעגל עבור יחידה משתנה מתח באמצעות Arduino מוצג להלן בתרשים.
המתח על פני התפוקה אינו ליניארי לחלוטין; זה יהיה רעשני. כדי לסנן את קבלים הרעש ממוקמים על גבי מסופי הפלט כפי שמוצג באיור. שני הכפתורים כאן מיועדים להגדלת מתח ולהורדתם. יחידת התצוגה מציגה את המתח במסופי ה- OUTPUT.
לפני שנלך לעבודה עלינו לבדוק תכונות ADC ו- PWM של Arduino UNO.
כאן אנחנו הולכים לקחת את המתח המסופק במסוף OUTPUT ולהאכיל אותו לאחד מערוצי ADC של ארדואינו. לאחר ההמרה אנו ניקח את הערך הדיגיטלי הזה ונייחס אותו למתח ונציג את התוצאה בתצוגה 16 * 2. ערך זה בתצוגה מייצג את ערך המתח המשתנה.
ל- ARDUINO שישה ערוצי ADC, כפי שמוצג באיור. באלה כל אחד מהם או כולם יכולים לשמש ככניסות למתח אנלוגי. ה- UNO ADC הוא ברזולוציה של 10 סיביות (כך שערכי המספר השלם מ- (0- (2 ^ 10) 1023)). פירוש הדבר שהוא ימפה את מתח הכניסה בין 0 ל -5 וולט לערכים שלמים בין 0 ל 1023. אז לכל (5/1024 = 4.9mV) ליחידה.
כאן נשתמש ב- A0 של UNO.
|
ראשית לערוצי UNO ADC יש ערך הפניה ברירת מחדל של 5V. זה אומר שאנחנו יכולים לתת מתח כניסה מרבי של 5V להמרת ADC בכל ערוץ קלט. מכיוון שחיישנים מסוימים מספקים מתח מ -0-2.5 וולט, עם הפניה של 5 וולט אנו מקבלים דיוק נמוך יותר, כך שיש לנו הוראות המאפשרות לנו לשנות את ערך הייחוס הזה. אז לשינוי ערך הייחוס שיש לנו ("AnalogReference ();") לעת עתה אנו משאירים את זה כ-.
כברירת מחדל אנו מקבלים את רזולוציית ה- ADC המקסימלית בלוח שהיא 10 ביט, ניתן לשנות את הרזולוציה הזו באמצעות הוראות ("analogReadResolution (bits);"). שינוי ברזולוציה זה יכול להיות שימושי במקרים מסוימים. לעת עתה אנו משאירים את זה כ.
כעת אם התנאים שלמעלה מוגדרים כברירת מחדל, אנו יכולים לקרוא את הערך מ- ADC של הערוץ '0' על ידי קריאה ישירה לפונקציה "analogRead (pin);", כאן "pin" מייצג את הפין שבו חיברנו אות אנלוגי, במקרה זה זה יהיה "A0".
ניתן לקחת את הערך מ- ADC למספר שלם כ- "float VOLTAGEVALUE = analogRead (A0); ", לפי הוראה זו הערך לאחר ADC נשמר במספר השלם" VOLTAGEVALUE ".
ה- PWM של UNO יכול להשיג בכל אחד מהסיכות המסומנות כ- ~ על לוח ה- PCB. ישנם שישה ערוצי PWM ב- UNO. אנו הולכים להשתמש ב- PIN3 למטרתנו.
analogWrite (3, VALUE); |
ממצב לעיל אנו יכולים לקבל ישירות את אות ה- PWM בסיכה המתאימה. הפרמטר הראשון בסוגריים הוא לבחירת מספר הסיכה של אות ה- PWM. הפרמטר השני הוא לכתיבת יחס חובה.
ניתן לשנות את ערך ה- PWM של UNO מ- 0 ל- 255. כאשר "0" הוא הנמוך ביותר ל- "255" כגבוה ביותר. עם 255 כיחס חובה נקבל 5 וולט ב- PIN3. אם יחס החובה נקבע כ 125 נקבל 2.5 וולט ב- PIN3
כאמור קודם ישנם שני כפתורים המחוברים ל- PIN4 ו- PIN5 של UNO. בלחיצה ערך יחס החובה של PWM יגדל. כשלוחצים על כפתור אחר ערך יחס החובה של PWM פוחת. אז אנחנו משתנים את יחס החובה של אות PWM ב- PIN3.
אות PWM זה ב- PIN3 מוזן לבסיס הטרנזיסטור NPN. טרנזיסטור זה מספק מתח משתנה בפולט שלו, תוך שהוא פועל כמכשיר מיתוג.
עם יחס החובה המשתנה PWM בבסיס יהיה מתח משתנה ביציאת הפולט. עם זאת יש לנו מקור מתח משתנה בהישג יד.
יציאת המתח מוזנת ל- UNO ADC, כדי שהמשתמש יראה את יציאת המתח.