- העולם האנלוגי עם אלקטרוניקה דיגיטלית
- מה זה ADC וכיצד להשתמש בו?
- רזולוציה (ביטים) וערוצים ב- ADC
- מתח התייחסות ל- ADC
- דוגמא
- סוגי ADC ועבודה
- כמה שאלות נפוצות בנושא ADC
העולם האנלוגי עם אלקטרוניקה דיגיטלית
לפני כמה שנים כל מכשירי האלקטרוניקה בהם אנו משתמשים כיום כמו טלפונים, מחשבים, טלוויזיות וכו 'היו אנלוגיים. ואז לאט לאט הטלפונים הקווים הוחלפו בטלפונים ניידים מודרניים, טלוויזיות CRT וצגים הוחלפו בתצוגות LED, מחשבים עם צינורות ואקום התפתחו להיות חזקים יותר עם מיקרו-מעבדים ומיקרו-בקרים בתוכם וכן הלאה..
בעידן הדיגיטלי של ימינו כולנו מוקפים במכשירים האלקטרוניים הדיגיטליים המתקדמים, זה עלול להטעות אותנו לחשוב שהכל סביבנו הוא דיגיטלי במהותו, וזה לא נכון. העולם תמיד היה אנלוגי באופיו, למשל כל מה שאנו בני האדם חשים וחווים כמו מהירות, טמפרטורה, מהירות אוויר, אור שמש, צליל וכו 'הם אנלוגיים באופיים. אך המכשירים האלקטרוניים שלנו הפועלים על מיקרו-בקרים ומיקרו-מעבדים אינם יכולים לקרוא / לפרש את הערכים האנלוגיים הללו ישירות מכיוון שהם פועלים רק על 0 ו -1. לכן אנו זקוקים למשהו אשר ימיר את כל הערכים האנלוגיים הללו ל- 0 ו- 1 כדי שהמיקרו-בקרים והמיקרו-מעבדים שלנו יוכלו להבין אותם. משהו זה נקרא ממיר אנלוגי לדיגיטלי או בקיצור ADC. במאמר זה נלמדהכל על ADC וכיצד להשתמש בהם.
מה זה ADC וכיצד להשתמש בו?
כאמור קודם ADC מייצג המרה אנלוגית לדיגיטלית והוא משמש להמרת ערכים אנלוגיים מהעולם האמיתי לערכים דיגיטליים כמו 1 ו 0. אז מהם הערכים האנלוגיים האלה? אלה אלה שאנו רואים בחיי היום יום שלנו כמו טמפרטורה, מהירות, בהירות וכו 'אבל המתן !! האם ADC יכול להמיר טמפרטורה ומהירות ישירות לערכים דיגיטליים כמו 0 ו- 1?
לא בהתרסה לא. ADC יכול להמיר ערכי מתח אנלוגיים רק לערכים דיגיטליים. אז איזה פרמטר אי פעם שנרצה למדוד, צריך להמיר אותו קודם למתח, המרה זו יכולה להיעשות בעזרת חיישנים. לדוגמא כדי להמיר ערכי טמפרטורה למתח נוכל להשתמש בתרמיסטור באופן דומה כדי להמיר בהירות למתח שנוכל להשתמש ב- LDR. ברגע שהוא מומר למתח נוכל לקרוא אותו בעזרת ADC.
על מנת לדעת כיצד להשתמש ב- ADC עלינו להכיר תחילה כמה מונחים בסיסיים כמו רזולוציית ערוצים, טווח, מתח ייחוס וכו '.
רזולוציה (ביטים) וערוצים ב- ADC
כאשר אתה קורא את המפרט של כל מיקרו-בקר או IC של ADC, הפרטים של ה- ADC יינתנו באמצעות המונחים ערוצים ורזולוציה (ביטים). למשל ל- ATmega328 של Arduino UNO יש 8 ערוצים 10 סיביות ADC. לא כל סיכה במיקרו-בקר יכולה לקרוא מתח אנלוגי, המונח 8-ערוצים אומר שיש 8 פינים במיקרו-בקרה ATmega328 שיכולים לקרוא מתח אנלוגי וכל סיכה יכולה לקרוא את המתח ברזולוציה של 10 סיביות. זה ישתנה בסוגים שונים של מיקרו-בקרים.
נניח כי טווח ה- ADC שלנו הוא בין 0 וולט ל -5 וולט ויש לנו ADC של 10 סיביות פירוש הדבר שמתח הכניסה שלנו 0-5 וולט יתחלק ל -1024 רמות של ערכים אנלוגיים נפרדים (2 10 = 1024). המשמעות 1024 היא הרזולוציה עבור ADC של 10 סיביות, בדומה לרזולוציית ADC של 8 סיביות תהיה 512 (2 8) ולרזולוציית ADC של 16 סיביות תהיה 65,536 (2 16).
עם זאת, אם מתח הכניסה בפועל הוא 0V אז ה- ADC של ה- MCU יקרא אותו כ- 0 ואם הוא 5V ה- MCU יקרא 1024 ואם הוא נמצא איפשהו כמו 2.5V אז ה- MCU יקרא 512. נוכל להשתמש בנוסחאות שלהלן. לחישוב הערך הדיגיטלי שיקרא ה- MCU בהתבסס על רזולוציית ה- ADC ומתח ההפעלה.
(רזולוציית ADC / מתח הפעלה) = (ערך דיגיטלי של ADC / ערך מתח בפועל)
מתח התייחסות ל- ADC
מונח חשוב נוסף שכדאי להכיר הוא מתח הייחוס. במהלך המרת ADC נמצא ערך המתח הלא ידוע על ידי השוואתו למתח ידוע, זה ידוע שנקרא מתח התייחסות. בדרך כלל לכל MCU יש אפשרות להגדיר מתח ייחוס פנימי, כלומר ניתן להגדיר מתח זה באופן פנימי לערך זמין כלשהו באמצעות תוכנה (תוכנית). בלוח UNO של Arduino מתח הייחוס מוגדר ל 5 V כברירת מחדל פנימית, אם נדרש המשתמש יכול להגדיר את מתח הייחוס הזה באופן חיצוני דרך סיכת Vref גם לאחר ביצוע השינויים הנדרשים בתוכנה.
זכרו תמיד שערך המתח האנלוגי הנמדד תמיד צריך להיות פחות מערך מתח הייחוס וערך מתח הייחוס תמיד צריך להיות פחות מערך מתח ההפעלה של המיקרו-בקר.
דוגמא
כאן אנו לוקחים דוגמה ל- ADC בעל רזולוציה של 3 סיביות ומתח התייחסות של 2 וולט. אז זה יכול למפות את המתח האנלוגי 0-2v עם 8 (2 3) רמות שונות, כמו שמוצג בתמונה למטה:
אז אם המתח האנלוגי הוא 0.25 אז הערך הדיגיטלי יהיה 1 בעשרוני ו- 001 בבינארי. כמו כן, אם מתח אנלוגי הוא 0.5, הערך הדיגיטלי יהיה 2 בעשרוני ו- 010 בינארי.
למיקרו-בקר כלשהו יש ADC מובנה כמו Arduino, MSP430, PIC16F877A אך למיקרו-בקר כלשהו אין את זה כמו 8051, Raspberry Pi וכו 'ועלינו להשתמש בכמה ICs ממיר אנלוגי לדיגיטלי חיצוני כמו ADC0804, ADC0808.
להלן תוכל למצוא דוגמאות שונות של ADC עם מיקרו-בקרים שונים:
- כיצד להשתמש ב- ADC ב- Arduino Uno?
- מדריך ADC לפטל פטל
- ממשק ADC0808 עם מיקרו-בקר 8051
- מד מתח דיגיטלי 0-25V באמצעות מיקרו בקר AVR
- כיצד להשתמש ב- ADC ב- STM32F103C8
- כיצד להשתמש ב- ADC ב- MSP430G2
סוגי ADC ועבודה
ישנם סוגים רבים של ADC, הנפוצים ביותר הם ADC פלאש, ADC מדרון כפול, קירוב עוקב ו ADC מדרון כפול. כדי להסביר כיצד כל אחת מהעבודות של ADC אלה וההבדל ביניהן לא יגיעו לתחום המאמר, מכיוון שהן מורכבות למדי. אבל כדי לתת מושג גס ל- ADC יש קבלים פנימיים אשר יטענו באמצעות המתח האנלוגי הנמדד. לאחר מכן אנו מודדים את ערך המתח על ידי פריקת הקבל לאורך זמן.
כמה שאלות נפוצות בנושא ADC
כיצד למדוד יותר מ -5 וולט באמצעות ה- ADC שלי?
כפי שנדון קודם, מודול ADC אינו יכול למדוד את ערך המתח יותר ממתח ההפעלה של המיקרו-בקר. כלומר מיקרו-בקר 5V יכול למדוד רק מקסימום 5V בעזרת פין ה- ADC שלו. אם אתה רוצה למדוד משהו יותר מזה, אתה רוצה למדוד 0-12V ואז אתה יכול למפות את 0-12V לתוך 0-5V באמצעות מחלק פוטנציאלי או מחלק מתח. מעגל זה ישתמש בזוג נגדים למיפוי הערכים עבור MCU, תוכלו לדעת יותר על מעגל מחלק המתח באמצעות הקישור. לדוגמא לעיל עלינו להשתמש בנגד 1K ובנגד 720 אוהם בסדרה למקור המתח ולמדוד את המתח בין הנגדים כפי שנדון בקישור לעיל.
כיצד להמיר ערכים דיגיטליים מ- ADC לערכי מתח בפועל?
כאשר משתמשים בממיר ADC למדידת מתח אנלוגי התוצאה המתקבלת על ידי ה- MCU תהיה דיגיטלית. לדוגמא במיקרו-בקר 5V של 10 סיביות כאשר המתח האמיתי שאמור להיות מדוד הוא 4V, ה- MCU יקרא אותו כ- 820, אנו יכולים להשתמש שוב בנוסחאות שנדונו לעיל כדי להמיר את 820 ל- 4V כך שנוכל להשתמש בו חישובים. מאפשר לבדוק את אותו הדבר.
(רזולוציית ADC / מתח הפעלה) = (ערך דיגיטלי של ADC / ערך מתח בפועל) ערך מתח אמיתי = ערך דיגיטלי של ADC * (מתח פעולה / רזולוציית ADC) = 820 * (5/1023) = 4.007 = ~ 4V
מקווה שקיבלתם מושג הוגן לגבי ADC וכיצד להשתמש בהם ליישומים שלכם. אם הייתה לך בעיה בהבנת המושגים אל תהסס לפרסם את הערותיך למטה או לכתוב אותן בפורומים שלנו.