- רכיבים נדרשים:
- הסבר מעגל:
- מחולל אותות באמצעות IC 555 טיימר:
- שער הדק שמיט:
- הסבר קוד דלפק תדרים Arduino:
כמעט כל חובב אלקטרוני בוודאי עמד בפני תרחיש בו הוא או היא חייבים למדוד את תדירות האות שנוצר על ידי שעון או מונה או טיימר. אנו יכולים להשתמש באוסצילוסקופ כדי לבצע את העבודה, אך לא כולנו יכולים להרשות לעצמנו אוסצילוסקופ. אנו יכולים לקנות ציוד למדידת התדירות, אך כל המכשירים הללו יקרים ולא מיועדים לכולם. עם זאת בחשבון אנו הולכים לעצב דלפק תדרים פשוט אך יעיל באמצעות שער ההדק Arduino Uno ו- Schmitt.
מונה תדרים זה של ארדואינו הוא חסכוני וניתן להכין אותו בקלות, אנו הולכים להשתמש ב- ARDUINO UNO למדידת תדירות האות, UNO הוא לב הפרויקט כאן.
כדי לבדוק את מד התדרים, אנו נכין מחולל אותות דמה. מחולל אותות דמה זה ייוצר באמצעות שבב טיימר 555. מעגל הטיימר מייצר גל מרובע שיסופק ל- UNO לבדיקה.
עם הכל במקום יהיה לנו מד תדרים של ארדואינו ומחולל גלים מרובע. ניתן להשתמש ב- Arduino גם ליצירת צורות גל אחרות כמו גל סינוס, גל שן מסור וכו '.
רכיבים נדרשים:
- 555 טיימר IC ושער ההדק של שמיט 74LS14 או שער לא.
- נגד 1K Ω (2 חתיכות), נגד 100Ω
- קבלים 100nF (2 חתיכות), קבלים 1000µF
- 16 * 2 LCD,
- 47KΩ סיר,
- לוח לחם וכמה מחברים.
הסבר מעגל:
תרשים המעגל של מדידת התדרים באמצעות Arduino מוצג באיור להלן. המעגל פשוט, LCD מממשק עם Arduino כדי להציג את תדירות האות הנמדדת. 'קלט גל' עובר למעגל מחולל אותות, ממנו אנו מזינים אות לארדואינו. נעשה שימוש בשער ההדק של שמיט (IC 74LS14) כדי להבטיח כי רק ארבע מלבניות מוזנות לארדואינו. לסינון הרעש הוספנו כמה קבלים על פני הספק. מד תדרים זה יכול למדוד תדרים עד 1 מגה הרץ.
מעגל מחולל האותות והדק Schmitt הוסברו להלן.
מחולל אותות באמצעות IC 555 טיימר:
קודם כל נדבר על מחולל גלי מרובע מבוסס 555 IC, או שאני צריך לומר 555 Astable Multivibrator. מעגל זה הכרחי מכיוון שעם מד התדרים במקום עלינו לקבל אות שתדירותו ידועה לנו. ללא אות זה לעולם לא נוכל לספר את פעולתו של מד התדרים. אם יש לנו ריבוע בעל תדר ידוע נוכל להשתמש באות זה לבדיקת מד התדרים של Arduino Uno ונוכל לשנות אותו לצורך התאמות לדיוק, במקרה של חריגות. התמונה של מחולל האיתותים באמצעות 555 טיימר IC מוצגת להלן:
המעגל האופייני של 555 במצב Astable מובא להלן, ממנו נגזרנו המעגל המחולל של אותות הנ"ל.
תדר אות הפלט תלוי בנגדי RA, RB וקבל C. המשוואה ניתנת כ, תדר (F) = 1 / (פרק זמן) = 1.44 / ((RA + RB * 2) * C).
כאן RA ו- RB הם ערכי התנגדות ו- C הוא ערך קיבול. על ידי הצבת ערכי ההתנגדות והקיבול במשוואה לעיל אנו מקבלים את תדר גל הריבוע המוצא.
אפשר לראות ש- RB בתרשים שלמעלה מוחלף בסיר במעגל מחולל האותות; זה נעשה כדי שנוכל לקבל גל מרובע בתדרים משתנים בפלט לצורך בדיקה טובה יותר. לשם פשטות, אפשר להחליף את הסיר בנגד פשוט.
שער הדק שמיט:
אנו יודעים שכל אותות הבדיקה אינם גלים מרובעים או מלבניים. יש לנו גלים משולשים, גלי שיניים, גלי סינוס וכן הלאה. מכיוון שה- UNO יכול לזהות רק את הגלים המרובעים או המלבניים, אנו זקוקים למכשיר שיכול לשנות את כל האותות לגלים מלבניים, ולכן אנו משתמשים בשער הדק. שער ההדק של שמיט הוא שער לוגיקה דיגיטלי, המיועד לפעולות חשבון ולוגיות.
שער זה מספק OUTPUT בהתבסס על רמת מתח INPUT. טריגר של שמיט הוא בעל מתח מתח THERSHOLD, כאשר אות ה- INPUT המופעל על השער הוא בעל רמת מתח גבוהה יותר מה- THRESHOLD של השער הלוגי, ה- OUTPUT הולך גבוה. אם רמת אות הכניסה נמוכה מ- THRESHOLD, יציאת השער תהיה נמוכה. בדרך כלל איננו מקבלים את ההדק של שמיט בנפרד, תמיד יש לנו שער NOT בעקבות ההדק של שמיט. הסבר על עבודת שמיט טריגר מוסבר כאן: שער הדק שמיט
אנחנו הולכים להשתמש בשבב 74LS14, שבב זה כולל 6 שערי טריגר טריגר. שערי SIX אלה מחוברים באופן פנימי כפי שמוצג באיור להלן.
טבלת האמת של שער הפוך שמיט טריגר היא להראות להלן דמות, עם זה אנחנו צריכים לתכנת את UNO עבור היפוך תקופות זמן חיוביות ושליליות במסופים שלה.
כעת נזין כל סוג של אות לשער ST, יהיה לנו גל מלבני של פרקי זמן הפוכים ביציאה, אנו נזין את האות הזה ל- UNO.
הסבר קוד דלפק תדרים Arduino:
הקוד למדידת תדרים זו באמצעות ארדואינו הוא פשוט למדי וניתן להבנה. כאן אנו מסבירים את הפונקציה pulseIn האחראית בעיקר על מדידת התדר. ל- Uno יש pulseIn פונקציה מיוחדת , המאפשרת לנו לקבוע את משך המצב החיובי או משך המצב השלילי של גל מלבני מסוים:
זמן = pulseIn (8, HIGH); Ltime = pulseIn (8, LOW);
הפונקציה הנתונה מודדת את הזמן בו קיימת רמה גבוהה או נמוכה ב- PIN8 של Uno. אז במחזור אחד של גל, יהיה לנו את משך הרמות החיוביות והשליליות במיקרו שניות. PulseIn פונקציה מודד את הזמן בשניות מיקרו. באות נתון, יש לנו זמן גבוה = 10mS וזמן נמוך = 30ms (עם תדר 25 HZ). אז 30000 יאוחסנו במספר שלם של Ltime ו- 10000 ב- Htime. כאשר אנו מוסיפים אותם יחד נקבל את משך המחזור, ועל ידי היפוך זה נקבל את התדר.
הקוד והווידאו המלא עבור מד תדרים זה באמצעות Arduino מובאים להלן.