אינציקלופדיה של רדיו אלקטרוניקה והנדסת חשמל ארדואינו. פעולות של קלט-פלט אנלוגי, עבודה עם צליל. אנציקלופדיה של רדיו אלקטרוניקה והנדסת חשמל אנציקלופדיה של רדיו אלקטרוניקה והנדסת חשמל / מעצב חובב רדיו למרות שפעולות קלט-פלט דיגיטליות מאפשרות פתרון מגוון רחב של בעיות, נוכחות של ממיר אנלוגי-דיגיטלי (ADC) מובנה במיקרו-בקר של לוח Arduino ויכולת להוציא אותות אנלוגיים באמצעות אפנון רוחב פולס ( PWM) מבטיחים עבודה עם חיישנים אנלוגיים וכל מיני מפעילים, תוך השפעה על האובייקט ביחס לאות הבקרה. באופן קפדני, במצב פלט, כל קווי יציאת Arduino יכולים לשדר רק אותות נפרדים שיש להם רק שני מצבים. אבל המיקרו-בקר מסוגל לשנות את המצבים האלה מהר מאוד, וליצור פולסים מלבניים. אם פולסים אלו יופעלו על כל מכשיר בעל תכונות אינרציאליות, אז הוא יתחיל להתנהג כאילו המתח המסופק לו קבוע, שווה לערך הממוצע של הפולס, ומשתנה בצורה חלקה, ולא בקפיצות בין גבוה לנמוך רמות לוגיות. במצב PWM, היציאה מייצרת אות דופק בתדירות קבועה ומחזור עבודה משתנה (זהו היחס בין תקופת החזרה על הדופק למשך הזמן שלהם). לעתים קרובות, במקום מחזור עבודה, הם פועלים עם הערך ההפוך שלו - מחזור העבודה, אותו ניתן לשנות מ-0 (ללא פולסים) ל-100% (פולסים עוקבים, מתמזגים, ללא הפסקות). לכן, למרות שבכל רגע נתון מתח המוצא מתאים לרמה לוגית גבוהה או נמוכה, ערכו הממוצע הוא פרופורציונלי למחזור העבודה. אם תחבר מולטימטר רגיל לפלט זה, הוא יציג את הערך הזה (כמובן, אם תדר הדופק גבוה מספיק). ב-Arduino UNO, יציאות D3, D5, D6, D9, D10 ו-D11 יכולות לפעול במצב PWM. הם בדרך כלל מסומנים על הלוח עם סימני "~" או הקיצורים "PWM". יש לציין שללוחות Arduino של שינויים אחרים עשויים להיות פלטים כאלה פחות או יותר. במקרה הפשוט ביותר, ניתן להשתמש ב-PWM כדי לשלוט בבהירות של LED. מכשיר זה הוא כמעט ללא אינרציה, אך לראייה האנושית יש אינרציה מספקת כך שרצף של הבזקי LED מהירים נתפס כזוהר מתמשך עם בהירות בהתאם לגורם המילוי. יציאות בדידות המסוגלות לייצר PWM מוגדרות לשימוש במצב זה כברירת מחדל, כך שאין צורך לקרוא לפונקציה pinMode() כדי להפעיל אותן במצב זה. כדי להגדיר את מחזור העבודה של אות PWM, יש פונקציה סטנדרטית analogWrite(N, M), כאשר N הוא מספר הפין, M הוא מספר פרופורציונלי למחזור העבודה הנדרש. זה צריך להיות בטווח שבין 0 ל-255, כאשר 0 מתאים לאפס מחזור עבודה (רמה נמוכה קבועה במוצא), 255 עד 100% מחזור עבודה (רמה גבוהה קבועה במוצא). דיאגרמות תזמון של מתח המוצא בערכים מסוימים של M ובהתאם, מחזור העבודה הקצר מוצגים באיור. 1.
לדוגמה, שקול את זה המופיע בטבלה. תוכנית 1 שמגדילה בהדרגה את בהירות הנורית המחוברת ליציאה דיגיטלית D9, ולאחר מכן מקטינה אותה בהדרגה. הוא מבוסס על הדוגמה הסטנדרטית 3. AnalogFading שמגיעה עם ה- Arduino IDE. הספירה של ערכי מחזור העבודה של הדופק מיושמת כאן באמצעות אופרטורי לולאת for שכבר דנו ב-[1]. טבלה 1. כדי לקבל אותות אנלוגיים ממכשירים חיצוניים ב- Arduino, מיועדות כניסות A0-A5, אשר כברירת מחדל מוגדרות למצב הנדרש לכך, כך שאין צורך באתחול נוסף. ה-ADC המובנה ב-Arduino UNO מייצר קודים בינאריים של 10 סיביות וממיר את מתח הכניסה, שנמצא בטווח שבין 0 ל-+5 וולט, למספר שלם מ-0 ל-1023 (210-1). כדי לקרוא את תוצאת ההמרה, השתמש בפונקציה analogRead(N), כאשר N הוא המספר של הקלט האנלוגי. ניתן לחבר מגוון חיישנים לכניסות האנלוגיות של Arduino, שמתח המוצא שלהן פרופורציונלי לערך הנמדד (נגדים משתנים, תרמיסטורים, פוטו-נגדים וכו'). עם זאת, יש לזכור שניתן לספק רק מתח מ-0 עד +5 V לכניסה האנלוגית. אם מתח המוצא של החיישן נמצא בטווח שונה או בעל קוטביות שלילית, יש למקם את האות תחילה בתוך הגדר שצוין הַפסָקָה. הקלט האנלוגי נשאלת בקצב של פחות מ-10 קילו-הרץ [2], אשר עשוי שלא להספיק לניתוח כמה אותות המשתנים במהירות. הנוכחות של כניסות אנלוגיות מאפשרת להפוך את ארדואינו למד מתח דיגיטלי פשוט שמודד מתח DC מ-0 ל-+5 וולט ומעביר את תוצאת המדידה למחשב. כדי לעשות זאת, פשוט טען את התוכנית המפורטת בטבלה לתוך Arduino. 2. לוח 2 שימו לב שבתוכנה מציינים כקבועים מתח ה-ADC הייחוס Uref (במיליוולט) ומקדם ההמרה של קוד המוצא של ה-ADC למתח Ku. ערך המקדם מחושב על ידי חלוקת מתח הייחוס הנתון ב-1023. המקדם הוא בדרך כלל חלקי, ולכן קבוע Ki הוא מסוג צף (מספר נקודה צפה). לקבוע Uref יש אותו סוג כדי לחשב נכון את המקדם. מכיוון שהצד הימני של הנוסחה מכיל רק קבועים, המקדם אינו מחושב על ידי המיקרו-בקר בעת ביצוע התוכנית, אלא על ידי המהדר עצמו בשלב התרגום שלה. כל זה מאפשר לך להגביר את הדיוק של מד המתח על ידי מדידת מולטימטר את הערך המדויק של מתח הייחוס בפין Uref של לוח Arduino וכתיבתו לתוכנית, הקצאת אותו לקבוע Uref. תוכל לקרוא על דרכים אחרות לשיפור הדיוק של המרה אנלוגית לדיגיטלית ב-[3, 4]. כאשר התוכנית המדוברת פועלת, נורית ה-TX על הלוח מהבהבת, ומסמנת את העברת המידע דרך היציאה הטורית. נורית ה-RX לא דולקת מכיוון שהמחשב לא שולח שום דבר בחזרה. מסוף Arduino IDE המובנה מציג את המידע שהתקבל (איור 2) - תוצאות מדידת המתח של סוללה גלוונית 3332.
Arduino יכול לספק לא רק אור, אלא גם אותות קול. לשם כך, עליך לחבר פולט צליל piezo, למשל ZP-1, לאחת היציאות שלו (איור 3).
כדי לעבוד עם צליל, ניתנת פונקציה מיוחדת: טון (N, F, T), כאשר N הוא מספר הסיכה שעליו יופקו פולסים מלבניים; F - תדר קול, הרץ; T - משך צליל, MS. הפרמטר האחרון הוא אופציונלי. בהיעדרו, הצליל יהיה רציף. כדי לכבות אותו, הפונקציה noTone(N) מסופקת. כמובן, בקושי ניתן לכנות את פולט הצליל ה-piezoceramic התקן השמעה באיכות גבוהה, ולאות שנוצר על ידי המיקרו-בקר יש צורה מלבנית, עם זאת, השימוש בפונקציות אלה מאפשר לך לנגן מנגינות פשוטות. דוגמה מובאת בטבלה. 3. זוהי תוכנית ששונתה מעט לדוגמה 02.Digital oneMelody, הכלולה ב-IDE של Arduino. מכיוון שלא נוח להגדיר באופן ידני את התדירות של כל תו של מנגינה, הקובץ pitchs.h מצורף לתוכנית בכותרת שלו באמצעות ההנחיה #include. פעולה זו מקבילה להכללת הטקסט המלא של קובץ זה בתוכנית. במקרה זה, הוא מכיל רשימה של שמות התווים שניתן לנגן והתדרים שלהם. לוח 3 יש לחבר את פולט הקול לפלט D8. עבור תוכנית, מנגינה היא רצף של קבועים מאותו סוג (ערכי תדר), המשולבים בצורה נוחה למערך - רשימה ממוספרת של אלמנטים מאותו סוג. בעת הכרזה על מערך, עליך לרשום את כל הרכיבים שלו או לציין את מספרם הכולל. שימו לב שהמספור של רכיבי המערך מתחיל תמיד מאפס. בדוגמה הנבדקת, נעשה שימוש בשני מערכים: int melody[] מכיל את שמות תווי המנגינה, int note Durations[] - משך הזמן שלהם באלפיות שניות. כדי להתייחס לרכיב מערך, ציין את שמו במספר סידורי מוקף בסוגריים מרובעים. כדי להיות מסוגל לשנות בקלות את מספר התווים במנגינה, הוא מחושב באמצעות פונקציות sizeof(V), אשר מחזירות את מספר הבתים שתפוסים על ידי הארגומנט שלה (משתנה או מערך שלהם) בזיכרון המיקרו-בקר. במקרה זה, מערך המנגינות תופס 16 בתים, ואורך רכיבי ה-int שלו הוא שני בתים. לכן, המשתנה Note מקבל את הערך 8 וזה כמה פעמים יחזור גוף לולאת ה-for, אחד אחד מנגן את התווים. אם תוסיף יותר מתו אחד למערך המנגינה[], ערך התו ישתנה בהתאם. אתה רק צריך לזכור להוסיף את מערך noteDurations[] עם משך הזמן של הערות אלה. מכיוון שהמנגינה מבוצעת פעם אחת בלבד, כל הפעולות הדרושות ממוקמות בתוך הפונקציה setup() . כדי לבצע מחדש, עליך לאפס את המיקרו-בקר למצבו המקורי על ידי לחיצה על כפתור ה-RESET הממוקם בלוח Arduino ניתן להוריד את התוכניות עבור Arduino הנדונות במאמר מ-ftp://ftp.radio.ru/pub/2016/09/aninout.zip. ספרות
מחבר: D. Lekomtsev ראה מאמרים אחרים סעיף מעצב חובב רדיו. תקרא ותכתוב שימושי הערות על מאמר זה. חדשות אחרונות של מדע וטכנולוגיה, אלקטרוניקה חדשה: עור מלאכותי לחיקוי מגע
15.04.2024 פסולת חתולים של Petgugu Global
15.04.2024 האטרקטיביות של גברים אכפתיים
14.04.2024
עוד חדשות מעניינות: ▪ ערכת זיכרון DDR4-3200 128 GB ▪ ייצור חדשני של ננו-שבבים תלת מימדיים ▪ מקלדת חיצונית למכשירים ניידים עדכון חדשות של מדע וטכנולוגיה, אלקטרוניקה חדשה
חומרים מעניינים של הספרייה הטכנית החופשית: ▪ קטע אתר הגנת ברקים. בחירת מאמרים ▪ מאמר Dubina stoerosovaya. ביטוי עממי ▪ מאמר כמה גדולים חלזונות? תשובה מפורטת ▪ מאמר עריכת כלי החיתוך. סדנה ביתית ▪ מאמר עיצוב valcoder. אנציקלופדיה של רדיו אלקטרוניקה והנדסת חשמל ▪ מטען 5...10000 mAh. אנציקלופדיה של רדיו אלקטרוניקה והנדסת חשמל כל השפות של דף זה בית | הספרייה | מאמרים | <font><font>מפת אתר</font></font> | ביקורות על האתר www.diagram.com.ua |