תוכן עניינים:
וִידֵאוֹ: מפענח סיבובי פשוט: 4 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:15
מדריך זה מתאר שיטה פשוטה לפענוח מקודד סיבובי רציף באמצעות Arduino Uno R3.
שגרות תוכנה קומפקטיות משמשות לספירת מספר המעברים, ביטול הקפצת מגע וקביעת כיוון הסיבוב. אין צורך ברכיבים נוספים וטבלאות חיפוש.
מסופקים גרסאות קטע ופריעות של הקוד.
גרסת ה- interrupt של הקוד דורשת סיכת הפסקה אחת בלבד.
תמונות:
- תמונת הפתיחה מציגה את המקודד המורכב.
- צילום המסך מציג את הקוד לגירסת הפסיקה והספירה כאשר ציר המקודד מסתובב בכיוון השעון ונגד כיוון השעון.
- הסרטון מציג את הספירה במהלך סיבוב מהיר.
שלב 1: תרשים מעגלים
תרשים החיווט של המקודד מוצג באיור 1.
חוטי המגשר מולחמים ישירות לסיכות המקודד.
החלף את שני החוטים הכחולים אם כיוון הספירה הפוך.
שלב 2: רשימת חלקים
החלקים הבאים התקבלו מ-
- 1 רק Arduino UNO R3 עם כבל USB.
- מקודד סיבוב רציף אחד בלבד (EC11 או שווה ערך) עם מתג.
- ידית אחת בלבד המתאימה לפיר.
- 3 רק חוטי מגשר זכר לגבר מארדואינו.
שלב 3: תיאוריה
מקודדים סיבוביים רציפים יוצרים שני גלי ריבוע שכל אחד מהם נעקר ב 90 מעלות כפי שמוצג באיור 1.
דפוסי ההיגיון במגע A ובמגע B שונים כאשר הפיר מסתובב בכיוון השעון (CW) ונגד כיוון השעון (CCW) דרך העמדות 1 עד 6.
השיטות הנפוצות לקביעת כיוון הסיבוב כוללות:
- חוּמרָה
- קטע תאומים
- טבלאות בדיקת דוגמאות
פרויקט זה משתמש בשיטת תוכנה שאינה דורשת טבלאות חיפוש. [1]
כיוון
במקום להסתכל על דפוסי הפלט מאנשי קשר א 'ומגע ב' נתמקד בקשר א '.
אם נדגום איש קשר B לאחר כל מעבר איש קשר A נציין כי:
- לאיש קשר ואיש קשר B יש מצבי לוגיות מנוגדים כאשר המקודד מסובב CW
- לאיש קשר ואיש קשר B יש אותו מצב לוגי כאשר המקודד מסובב CCW
קוד בפועל:
// ----- ספירת מעברים
CurrentStateA = stateContactA (); if (CurrentStateA! = LastStateA) {CurrentStateB = digitalRead (ContactB); if (CurrentStateA == CurrentStateB) ספירה ++; אם (CurrentStateA! = CurrentStateB) ספירה--; LastStateA = CurrentStateA; }
שיטה זו מציעה את היתרונות הבאים:
- אין צורך בלוחות חיפוש
- נדרש רק קו הפרעה יחיד
לדחות
כל המקודדים המכניים סובלים מ"הקפצת מגע ".
אם איש קשר של מתג לא יוצר/נשבר בצורה נקייה, מצב ההיגיון שלו יסתתף במהירות מ- HIGH ל- LOW עד שהקשר של המתג יתייצב. התוצאה היא ספירות שווא.
אחת השיטות לדיכוי קפיצת מגע היא הוספת קבל קטן על פני כל מגע מתג. הקבל ונגד המשיכה הנלווה יוצרים אינטגרטור שמקצר ביעילות תדרים גבוהים ומאפשר למתח המתג לעלות/לרדת בחינניות.
החיסרון בגישה זו הוא שעלולים להחמיץ מעברים אם ציר המקודד מסתובב במהירות.
ניפוי תוכנה
שיטה זו משתמשת בשני מונים (פתוחים, סגורים) שהוגדרו לאפס. [2]
לאחר שמזהה מעבר באיש קשר א ':
- סקר רציף צור קשר עם א.
- הגדל את המונה הפתוח ואפס את הדלפק הסגור, בכל פעם שמגע A גבוה.
- הגדילו את המונה הסגור ואפסו את הדלפק הפתוח, בכל פעם שאיש הקשר A נמוך.
- צא מהלולאה כאשר אחד המונים מגיע לספירה שנקבעה מראש. אנו מחפשים למעשה את תקופת המצב היציב לאחר כל הקפצת מגע.
קוד בפועל:
// ----- ניפוי איש קשר א
בעוד (1) {if (digitalRead (ContactA)) {// ----- ContactA פתוח סגור = 0; // ריק מול אינטגרטור פתוח ++; // שלבו אם (Open> MaxCount) החזרה HIGH; } אחר {// ----- ContactA נסגר פתוח = 0; // אינטגרציה ריקה נגדית סגורה ++; // שלב אם (סגור> MaxCount) החזרה LOW; }}
אין צורך להפחית את איש הקשר B מכיוון שמעברי איש הקשר א 'ואיש הקשר B אינם חופפים.
סְפִירָה
"מעצר" מכני למעשה מכפיל את הספירה שלך כאשר שתי ספירות נרשמות בין קליקים (ראה איור 1).
ניתן לקבוע את מספר "המעצרים" באמצעות חשבון מודולו 2 כפי שמוצג להלן.
קוד בפועל:
// ----- ספירת "מעצרים"
if (ספירה % 2 == 0) {Serial.print ("ספירה:"); Serial.println (ספירה / 2); }
הפניות
מידע נוסף ניתן למצוא בכתובת:
[1]
howtomechatronics.com/tutorials/arduino/ro…
[2]
newbiehack.com/ButtonorSwitchDebounceinSof…
שלב 4: תוכנה
פרויקט זה דורש גרסה עדכנית של Ardino Uno R3 IDE (סביבת פיתוח משולבת) הזמינה מ-
הורד כל אחת משתי המערכונים הבאים של Arduino (מצורף)
- rotary_encoder_1.ino (גרסת סקר)
- rotary_encoder_2.no (גירסת הפסקה)
לחץ פעמיים על הגרסה המועדפת עליך ופעל לפי ההוראות שעל המסך.
תהנה …
לחץ כאן לצפייה במדריכים האחרים שלי.
מוּמלָץ:
LabDroid: מקודד/מפענח קוד מורס: 4 שלבים
LabDroid: מקודד/מפענח קוד מורס: הערה: לא ניתן לממש הוראה זו 1: 1 בגרסה החדשה ביותר של LabDroid. אעדכן אותו בקרוב. פרויקט זה יראה לך מה אתה יכול לעשות עם LabDroid. מכיוון שעולם עולם עשוי בדרך כלל על סמך טקסט, אור או צליל, חשבתי על LabDr
מפענח מורס עץ בינארי: 7 שלבים (עם תמונות)
מפענח מורס עץ בינארי: a.articles {גודל הגופן: 110.0%; מודגש; סגנון גופן: נטוי; טקסט-קישוט: אין; רקע-צבע: אדום;} א. articles: רחף {רקע-צבע: שחור;} מדריך זה מסביר כיצד לפענח את קוד מורס באמצעות Arduino Uno R3.T
כיצד להכין מפענח קו טלפון DTMF פשוט (צליל): 3 שלבים
כיצד להכין מפענח קו טלפון DTMF פשוט (צליל): זהו פרויקט פשוט המאפשר לך לפענח אותות DTMF על כל קו טלפון בעצם. במדריך זה אנו משתמשים במפענח MT8870D. אנו משתמשים במפענח צליל בנוי מראש, כי תאמין לי שזה כאב מאחור לנסות לעשות את זה עם
מפענח פרוטוקול שלט רחוק RC5 ללא ספרייה: 4 שלבים
מפענח פרוטוקול שלט רחוק RC5 ללא ספרייה: לפני פענוח rc5 תחילה אנו דנים בפקודה rc5 ומהו מבנהה. אז בעצם הפקודה rc5 המשמשת בשלט רחוק המשמשים לטלוויזיות, נגני תקליטורים, d2h, מערכות קולנוע ביתיות וכו '. יש לה 13 או 14 סיביות מסודרות ב
מאמן Taranis X9D+ פשוט פשוט באמצעות קלט מקלט SBUS: 9 שלבים
פשוט Taranis X9D+ מאמן אלחוטי באמצעות קלט מקלט SBUS: מטרת הפרויקט היא לחבר משדר FrSky X-Lite למשדר FrSky X9D+ בתצורת TRAINER באמצעות מקלט SBUS זול (12 $). על ידי חיבור השניים בצורה זו, אפשר לטייס מדריך באמצעות