אינציקלופדיה של רדיו אלקטרוניקה והנדסת חשמל פעולת ADC עם יציאת COM, מערכת רכישת נתונים פשוטה. אנציקלופדיה של רדיו אלקטרוניקה והנדסת חשמל אנציקלופדיה של רדיו אלקטרוניקה והנדסת חשמל / מחשבים מאמר זה מיועד בעיקר למתחילים. למי שהחליט לנסות את עצמו ביצירת מערכת רכישת נתונים, הזנת אותות אנלוגיים למחשב, עיבודם וכו'. זה יידון במאמר זה, וננסה לעשות הכל בעצמנו. באופן כללי, יש לא מעט מידע בנושא זה באינטרנט ובספרות... במיוחד אם אתה משתמש בשפת Visual Basic. לכן אנסה למלא, לפחות חלקית, את החסר הזה. אז בואו נתחיל… לא משנה מה המטרה שלך, ראשית עליך לרכוש את הממיר האנלוגי לדיגיטלי (ADC) בפועל. כמו כן, התקן את סביבת הפיתוח של Visual Basic 6.0 במחשב שלך. אתה גם צריך להיות מסוגל פשוט לנווט בסביבת הפיתוח הזו... כי... המאמר נועד להבטיח שלקורא יהיה לפחות ידע בסיסי בתכנות ב-Visual Basic. אני ממליץ גם לקרוא את הספרות [1], [3]. אני ממליץ לרכוש את ה-TLC549IP כ-ADC. זהו ADC טורי של 8 סיביות עם פרוטוקול תקשורת פשוט. על כך נדון במאמר. כמובן, אתה יכול להשתמש ב-ADCs אחרים עם שינויים מתאימים במעגל ובקוד. אתה יכול לקרוא עוד על זה ב [1]. לאחר שמצאת את ה-ADC, עליך להרכיב את החומרה של מערכת רכישת הנתונים שלנו, כלומר המעגל המוצג באיור. 1. התוכנית הושאלה מ-[1] בשינויים קלים. דיודות VD1, VD2, VD6 - KD521, כל דיודות זנר למתח ייצוב 3...5 V. במקום 78L05, אתה יכול להשתמש ב-KREN5A. נגדים R1, R2 עם סובלנות של 1%, או בחירה מכמה עם ערך ההתנגדות הקרוב ביותר. דיוק המדידות יהיה תלוי בהם. הנגד R3 הוא רצוי מרובה פניות. התאמה: על ידי הפעלת כוח על הלוח, אנו מודדים את המתח בפין ה-Out של מייצב DA1. נכתוב את ערך המתח המתקבל עם 3 מקומות עשרוניים, נזדקק לו מאוחר יותר. בפין 1 של המיקרו-מעגל DD1, באמצעות הנגד R3, הגדרנו את המתח שווה בדיוק למחצית מהמייצב שנמדד בפין ה-Out. כעת נעבור לחלק התוכנה בפועל. באופן כללי, בהתחלה, השתמש בממשקי תקשורת כגון RS-232, I2C, Micro Ware וכו'. אני רואה בזה לא הולם, כי עם סיבוך קל של קוד התוכנית, החומרה עלולה להסתבך ברצינות. לכן, נשתמש בפרוטוקול ההחלפה הפשוט ביותר שנלקח מ"גיליון הנתונים" ל-ADC. כלומר, היישום הפשוט שלו. כמובן, עם פרוטוקול כזה לא ניתן להשיג מהירות גבוהה; במקרה זה, המגבלות מוטלות על ידי Visual Basic עצמה, אך להשגת התוצאות הראשונות במינימום זמן ומאמץ, כמו גם למדידת תהליכים המשתנים לאט יחסית, זה די מתאים. פרוטוקול התקשורת של TLC549IP ADC מוצג באיור. 2. במהלך המצב הבודד, ההמרה בפועל מתרחשת בפין CS (בחירת שבב) של ממיר A/D. פלט הנתונים מתחיל ברמת CS נמוכה עם הופעת דופק שעון, ביט אחד לכל פולס. כדי להפיק קוד של 8 סיביות, נדרשים 8 פולסי שעון. לאחר מכן ניתן להעביר CS למצב בודד ולבצע את הטרנספורמציה הבאה. פרטים נוספים על פעולת ה-ADC ניתן למצוא ב-[1]. מכל זה נוכל להסיק שיש צורך לכתוב תוכנית דרייבר שתפיק את רצפי הפולסים הדרושים בזמנים הנכונים, ולאחר מכן נוכל לקבל רק את הנתונים. הפעל את סביבת הפיתוח של Visual Basic וצור פרויקט EXE סטנדרטי. הוסף את פקד MSComm. אתה יכול להוסיף אותו ללוח הרכיבים באופן הבא: פרויקט-->רכיבים-->בחר מהרשימהמיקרוסופט פקודה שליטה 6.0. הנח אותו על הטופס, יחד עם 2 תוויות ו-2 טיימרים. השאר את השמות כברירת מחדל. עכשיו אתה יכול להתחיל לכתוב קוד עבור מד מתח פשוט. בואו נגדיר משתנים: Dim b1, b2, b3, b4, b5, b6, b7, b8, sum, Ud As Single הכנס את הקוד הבא בהליך טעינת הטופס: פרטי תת Form_Load() MSComm1.DTREnable = ערך התחלתי אמיתי - רמת CS גבוהה Timer1.Interval = 100 ' מרווח טיימר 1ms Timer2.Interval = 1 ' מרווח טיימר 100ms MSComm1.Settings = "1200,N,8,1" ' הגדרות העברת נתונים MSComm1.CommPort = 1 ' מספר יציאת COM MSComm1.PortOpen = True ' יציאת com פתוחה End Sub בהליך טיימר1 שם את הקוד: Private Sub Timer1_Timer() MSComm1.DTREnable = False 'צור CS נמוך Label2.Caption = "" 'זבל עבור עיכוב ראשוני MSComm1.RTSEnable = שעון הדופק של השעון הראשון נכון אם MSComm1.CDHolding = True אז b1 = 1 אחרת b1 = 0 'סקר ערך אחד או אפס בכניסת התקליטור (פלט ADC) MSComm1.RTSEnable = False 'שעון דופק שעון ראשון נמוך MSComm1.RTSEnable = נכון אם MSComm1.CDHolding = True אז b2 = 1 אחרת b2 = 0 MSComm1.RTSEnable = False MSComm1.RTSEnable = נכון אם MSComm1.CDHolding = True אז b3 = 1 אחרת b3 = 0 MSComm1.RTSEnable = False MSComm1.RTSEnable = נכון אם MSComm1.CDHolding = True אז b4 = 1 אחרת b4 = 0 MSComm1.RTSEnable = False MSComm1.RTSEnable = נכון אם MSComm1.CDHolding = True אז b5 = 1 אחרת b5 = 0 MSComm1.RTSEnable = False MSComm1.RTSEnable = נכון אם MSComm1.CDHolding = True אז b6 = 1 אחרת b6 = 0 MSComm1.RTSEnable = False MSComm1.RTSEnable = נכון אם MSComm1.CDHolding = True אז b7 = 1 אחרת b7 = 0 MSComm1.RTSEnable = False MSComm1.RTSEnable = נכון אם MSComm1.CDHolding = True אז b8 = 1 אחרת b8 = 0 MSComm1.DTREnable = נכון 'צור CS גבוה MSComm1.RTSEnable = False 'שעון דופק שעון ראשון נמוך המר את הביטים לפורמט עשרוני באמצעות נוסחת ההרחבה sum = (b1 * 2^7) + (b2 * 2^6) + (b3 * 2^5) + (b4 * 2^4) + (b5 * 2^3) + (b6 * 2^2) + (b7 * 2^1) + (b8 * 2^0) Ud = Format(sum * 5.083 / 255, "##0.000") 'חשב את הערך היחסי Label1.Caption = CStr(Ud) & "Volt" 'מציגים את הערך המתקבל End Sub הקוד ב-Timer1 הוא הדרייבר האמיתי. מה שחוזר על עצמו מעת לעת יוצר פעימות שעון ומקבל סיביות נתונים. Ud הוא המתח בכניסת ADC; אם אתה משתמש ב-10, 12-bit ADCs, המספר 225 יוחלף ב-1024, 4096, בהתאמה. עבור 10, 12-bit ADCs, עליך להוסיף את הביטים החסרים לקוד , בהנחיית "גליונות הנתונים" שלהם. הערך 5.083 הוא ערך המתח שקיבלתי במוצא ה-Out של המייצב. הזן את הערך שלך כאן. כדי להפעיל את הלוח, אתה יכול להשתמש במקור נפרד או להפעיל אותו ישירות מיציאת ה-COM. לשם כך, אנו שמים את הקוד הבא בהליך Timer2: Private Sub Timer2_Timer() MSComm1.Output = Chr(0) & Chr(0) 'יוצרים פולסים על פין ה-TX (3) כדי להפעיל את לוח ה-ADC End Sub יש לזכור שלא ניתן להעמיס על יציאת ה-COM בכבדות... המקסימום שניתן לסמוך עליו הוא 20 mA. במצב הפעלה, המעגל צורך זרם של לא יותר מ-5 mA. כעת חבר את הלוח ליציאת COM והפעל את הפרויקט. מדוד את המתח בפין IN של מייצב DA1, הוא לא צריך להיות נמוך מ-6.5 V. אם זה לא המקרה, השתמש במקור מתח נפרד. על ידי שינוי המתח בכניסת ה-ADC, ודא שהתוכנית פועלת ומציגה את המתח על המסך. דיוק קריאת המתח בעת שימוש ב-ADC של 8 סיביות הוא 20 mV, עם 10-bit ADC - 5 mV, 12-1.2 mV קצת על העבודה ב-Visual Basic והאפליקציה שנוצרה עם יציאת com כפי שבטח כבר הבנתם, כדי לעבוד עם יציאת com צריך רכיבמיקרוסופט פקודה שליטה כלומר, הקובץ MSCOMM32.ocx אשר, לאחר התקנת Visual Basic, ממוקם בספריית C:\Windows\system32. מה שאני מתכוון בזה הוא שאם אתה מעתיק את התוכנית שלך, מבלי ליצור תוכנית התקנה, למחשב אחר שאין לו Visual Basic, זה לא יעבוד. אתה גם צריך להעתיק את הקובץ הזה לאותה ספרייה כמו במחשב שלך, כלומר. במערכת 32. או ליצור מתקין. עכשיו לכמה פקודות: פקודה קביעת שער החלפת הנתונים: MSComm1.Settings = "1200,N,8,1" פקודה המציינת את מספר יציאת ה-com MSComm1.CommPort = 1 פקודות לפתיחה וסגירה של יציאת ה-com MSComm1.PortOpen = נכון MSComm1.PortOpen = False פקודות המוציאות +12V לפין המתאים של מחבר ה-com: MSComm1.RTSEnable = True RTS (7) - שם סיכה ומספר סיכה MSComm1.DTREnable = True DTR(4) פקודות המוציאות -12V MSComm1.RTSEnable = False MSComm1.DTREnable = False אתה יכול לסקור את הפינים CD (1), CTS (8), DSR (6) עבור נוכחות של מצב יחיד או אפס. אם MSComm1.CDHolding = נכון אז (אם אחד אז...) אם MSComm1.CDHolding = False אז (אם אפס אז...) העברת קוד ASCII של תו או מחרוזת לפלט Tx (3): MSComm1.Output = "A" ספר במדבר מספר MSComm1.Output = Chr(10) יכול להשתנות בין 0...255 על ידי כתיבת פקודה כזו בטיימר ושינוי המספר או הסמל, ניתן ליצור אפנון PWM. פרטים נוספים על הפקודות ניתן למצוא על ידי הורדת תיאור הבקרה מיקרוסופט פקודה שליטה. כעת, עם הקוד הזה, אתה יכול לכתוב מספר תוכניות לאיסוף נתונים. לדוגמא: מד מתח, מד זרם, מד טמפרטורה, אוסילוסקופ פשוט, שמירת נתונים לקובץ. ניתן לבצע מדידות אחת לשנייה אחת או פעם בשעה ויום, ובכך לנטר תהליכים ארוכי טווח. כדי לעבוד עם מתחים חילופיים (עוברים דרך 0), כמו גם להרחיב את גבולות המדידה, נדרש מגבר קלט, שניתן לקחת את המעגל שלו מ- [1]. כדי לעבוד עם מתח רשת או עם מכשירים שאינם מבודדים באופן גלווני מהרשת, יש צורך לבודד אופטו את המעגל מהמחשב. הורד קודי מקור של תוכניות לדוגמה (8 קילובייט) ספרות
מחבר: =ShooRooP=, evei [dog] mail.ru; פרסום: cxem.net ראה מאמרים אחרים סעיף מחשבים. תקרא ותכתוב שימושי הערות על מאמר זה. חדשות אחרונות של מדע וטכנולוגיה, אלקטרוניקה חדשה: עור מלאכותי לחיקוי מגע
15.04.2024 פסולת חתולים של Petgugu Global
15.04.2024 האטרקטיביות של גברים אכפתיים
14.04.2024
עוד חדשות מעניינות: ▪ TPS65023 - בקר כוח חדש עבור DaVinci ▪ מקרן נייד לפלייסטיישן 4 למשחק ללא טלוויזיה ▪ סמארטפון Highscreen Alpha R Full HD עם שבוע של חיי סוללה עדכון חדשות של מדע וטכנולוגיה, אלקטרוניקה חדשה
חומרים מעניינים של הספרייה הטכנית החופשית: ▪ נוריות של סעיף האתר. בחירת מאמרים ▪ כתבה אנחנו לא יכולים לחכות לטובה מהטבע, המשימה שלנו היא לקחת אותן ממנה. ביטוי עממי ▪ מאמר למה יתושים לא מתים בגשם? תשובה מפורטת ▪ מאמר מכשיר בקרת מנוע חממה. אנציקלופדיה של רדיו אלקטרוניקה והנדסת חשמל ▪ מאמר Scheme, pinout (pinout) כבל Samsung M100. אנציקלופדיה של רדיו אלקטרוניקה והנדסת חשמל כל השפות של דף זה בית | הספרייה | מאמרים | <font><font>מפת אתר</font></font> | ביקורות על האתר www.diagram.com.ua |