תוכן עניינים:

ממשק PIC של חייגן רוטרי: 7 שלבים
ממשק PIC של חייגן רוטרי: 7 שלבים

וִידֵאוֹ: ממשק PIC של חייגן רוטרי: 7 שלבים

וִידֵאוֹ: ממשק PIC של חייגן רוטרי: 7 שלבים
וִידֵאוֹ: קורס וורדפרס השלם - בניית אתר וורדפרס למתחילים 2021 (תמיכה בתגובות) 2024, יולי
Anonim
ממשק PIC של חייגן רוטרי
ממשק PIC של חייגן רוטרי

מצאתי את עצמי עם שפע של טלפונים סיבוביים. למעשה, הם נמצאים בכל מקום בו אני מסתכל. בתקווה שיום אחד אראה פחות מהם, התחלתי לפרק אותם ולהשתמש מחדש בחלקים למטרות אחרות.

מסיבה כלשהי הכנסתי את זה למוח שליטוב של הבקרה הסיבובית עם שבב PIC יהיה רעיון טוב. אני יכול לחשוב רק על כמה שימושים לא ברורים כרגע ואף אחד מהם לא שימושי במיוחד, אבל אני מקווה לעשות משהו מגניב עם זה בעתיד.

שלב 1: לך קנה דברים

לך קנה דברים
לך קנה דברים

תצטרך: 1 - טלפון סיבובי 3 - 220 נגני אוהם 2 - 0.1 קבלים 0.1uF 2 - 20K נגד (יכול להחליף כל דבר בין 10K ל 47K) 2 - נוריות LED1 - לוח פיתוח PIC (השתמשתי בסביבת הפיתוח הבסיסית של מיקרו) 1 - 20 מהונדס MHZ או קריסטל 1 - לוח לחם 1 - מקור כוח 5V 1 - כף רגל בערך חוט חיבור 1 - מברג 1 - חשפן חוט

שלב 2: לנתח את הטלפון

לנתח את הטלפון
לנתח את הטלפון
לנתח את הטלפון
לנתח את הטלפון
לנתח את הטלפון
לנתח את הטלפון

פתח את הטלפון הסיבובי שלך. מבפנים תבחין בכמה חלקים בסיסיים; החוגה הסיבובית, הצלצול, שני שקעים, מתג הקרס והמעגל הבסיסי אשר בדרך כלל עטוף בדומה לדמוי מתכת.

יהיו ארבעה חוטים שיעברו מהחייגן הסיבובי לדבר הזה כמו תיבת צומת. החוטים צריכים להיות מוחזקים במקומם מעט יותר מאשר ברגים מהודקים. שחרר את הברגים ונתק את החוטים. לאחר מכן, נתק את החייג הסיבובי מהטלפון עצמו.

שלב 3: קבע מה החוטים עושים

קבע מה החוטים עושים
קבע מה החוטים עושים
קבע מה החוטים עושים
קבע מה החוטים עושים

חברו שני נוריות LED כפי שמוצג בתרשים שלהלן.

שני החוטים הלבנים צריכים להיות הצמד שסוגר את המתג שמאפשר לך לדעת כאשר החוגה מסתובבת. החוט הכחול והירוק צריך להיות הצמד המאפשר לך לדעת לאיזה מספר חויג. ככזה, כאשר אתה מסובב את החוגה, נורית ה- LED המחוברת לחוטים הלבנים אמורה להידלק, וכאשר אתה משחרר את החוגה, הנורית המחוברת לחוטים הכחולים והירוקים אמורה להבהב ולכבות פעמים רבות ככל שהמספר שאתה חייג (ראה סרטון). לדוגמה, אם תחייג 8, הנורית המחוברת לחוט הירוק והכחול תיכבה ותדלק 8 פעמים. זה קורה מכיוון שאחת הדרכים לחיוג מספר טלפון היא ניתוק מהיר של החיבור מספר הפעמים של הספרה שאליה אתה מנסה לחייג. אז שוב, כדי לחייג למספר 8 תצטרך לנתק במהירות את החיבור 8 פעמים.

שלב 4: חבר את החייג לשבב ה- PIC

חבר את החייגן לשבב ה- PIC
חבר את החייגן לשבב ה- PIC
חבר את החייגן לשבב ה- PIC
חבר את החייגן לשבב ה- PIC

חבר את החייג הסיבובי לשבב ה- PIC כפי שניתן לראות בתרשים. שימו לב שאני קורא במצב של חייגן סיבובי באמצעות תזמון RC. במילים אחרות, שבב ה- PIC סופר את מספר הפעמים שנדרש לקבל לפרוק (שמשתנה כאשר מתווספת התנגדות).

זה המקום שבו נכנס הנגד 20K. הוספת זה לכניסה מאפשרת הבחנה ברורה בין האות מחיבור מתג סיבוב סגור ופתוח.

שלב 5: הרכיב את הקוד

הרכיבו את הקוד
הרכיבו את הקוד

כדי לתכנת את השבב, השתמשתי בסביבת הפיתוח MBasic הזמינה מ- Basic Micro. MBasic, בפשטות, היא וריאציה של Basic המיועדת לשימוש עם שבבי PIC. ניתן להמיר אותו בקלות לשפה אוניברסלית (שימושית) יותר. הקוד בעצם קובע מתי מישהו סובב את החוגה ולאחר מכן מבצע זיהוי קצה על האות (קביעת מעברים נמוכים-גבוהים) עד שהחיוג חוזר למצב ההתחלתי שלו. לאחר חישוב מספר הפעמים שהוא מודד מעבר אות, הוא מהבהב את הנורית בהתאם. לדוגמה, אם תחייג 3, ה- PIC יספור שלושה מעברים נמוכים-גבוהים ואז ימצמץ נורית 3 פעמים. הנורית, כפי שאולי הסקת, מיותרת לפעול והיא רק שם כדי לתת לך משוב גלוי. אתה יכול להחליף כל התקן פלט שנראה לך נחוץ. ********************* הנה כמה קוד: ********************* מעבד = 16F877MHZ = 20CONFIG 16254clicker var wordstartcountin var wordcountclicks var wordrepvar var wordclacker var wordlargefig var wordmain: countclicks = 0repvar = 0 הגדרות/איפוס ערכים גבוה B2rctime B2, 1, startcountincountclicks = 0if startcountin> 10 ואז ללכת לספקי בדיקה ולבדוק אם הופעל החיוג והופך אם הופעל החיוג עובר לשגרה אם יש לו ללכת main '================ countmeup: B1rctime B1, 1, ערכות clacker להשוות valueegoto countmeuploop' ============ ===== countmeuploop: B1rctime B1, 1, clicker'checks counting valuelargefig = clacker + 100 מגדיר ערך עבור הסף שיהיה גדול יותר מ- 0 אך פחות מהערכים הגבוהים לפין אם largefig <clicker thencountclicks = countclicks + 1if מוסיף ערך 1 בכל פעם שנרשם מעבר נמוך לגבוה B2, זמן גבוה 1, 1, startcountinif startcountin <10 ואז אם countclicks> 0 thengoto blinkelsegoto mainendifendif' לבדוק אם החוגה נרתעה חזרה ל- i שלה מצב חיובי אם יש לו מספר שחייג הוא עובר לשגרת הלדים אחרת, אם לא חייג מספר הוא עובר למיינקלאקר = קליקים מגדיר את ערך ההשוואה לערך הסיכה הנוכחי עברו לספירה ללא הפסקה בכלל בשגרה זו ! '================ מהבהב: repvar = repvar + 1'סופר כל חזרה על שגרה זו גבוהה B3 הפסקה 1000 נמוכה B3 הפסקה 1000'מצמץ את LEDif repvar = countclicks thenrepvar = 0 עבור mainendif'if את החזרות שוות את מספר הפעמים שה- LED אמור למצמץ ואז הוא חוזר אל מהבהב הראו השגרתי הראשי

שלב 6: בדיקה

בדיקה
בדיקה

אם עשית הכל כמוני, זה אמור לעבוד (ראה סרטון).

אם זה לא עובד, ודא שחיברת הכל כהלכה ושהקוד מועתק כהלכה. כמו כן, ודא שהתהודה (או הגביש) שלך היא 20 מגה -הרץ. אם כתבת קוד משלך וודא שאין הפסקות בשגרה הבודקת אם יש מעברים נמוכים-גבוהים.

שלב 7: קדימה

ללכת מעבר
ללכת מעבר

בדוק סוג אחר של שימוש בחוגה הסיבובית מלבד מהבהב נורית.

מוּמלָץ: