במדריך זה אנו הולכים לממשק מודול ג'ויסטיק עם מיקרו-בקר atmega8. JOY STICK הוא מודול קלט המשמש לתקשורת. זה בעצם מקל על תקשורת המכונה של המשתמש. ג'ויסטיק מוצג באיור למטה.
למודול הג'ויסטיק שני צירים - האחד אופקי והשני אנכי. כל ציר של ג'ויסטיק מותקן על פוטנציומטר או סיר או התנגדות משתנה. נקודות האמצע מורידות כ- Rx ו- Ry. פינים אלה נושאים כסיכות אות פלט עבור JOYSTICK. כאשר המקל מועבר לאורך הציר האופקי, כאשר מתח האספקה קיים, המתח בסיכת Rx משתנה.
המתח ב- Rx עולה כאשר מועברים קדימה, המתח בסיכת Rx פוחת כאשר מועבר אחורה. באופן דומה, המתח ב- Ry עולה בעת העברה כלפי מעלה, המתח בסיכת Ry פוחת כאשר מועבר כלפי מטה.
אז יש לנו ארבעה כיוונים של JOYSTICK בשני ערוצי ADC. במקרים רגילים יש לנו 1 וולט על כל סיכה בנסיבות רגילות. בעת הזזת המקל המתח על כל סיכה הולך גבוה או נמוך תלוי בכיוון. אז ארבעה כיוונים כמו (0V, 5V בערוץ 0) לציר x; (0 וולט, 5 וולט בערוץ 1) לציר y.
אנו הולכים להשתמש בשני ערוצי ADC של ATMEGA8 כדי לבצע את העבודה. אנו הולכים להשתמש בערוץ 0 ובערוץ 1.
רכיבים נדרשים
חומרה: ATMEGA8, ספק כוח (5 וולט), מתכנת AVR-ISP, נורית (4 חלקים), קבל 1000uF, קבלים 100nF (5 יח '), נגד 1KΩ (6 יח').
תוכנה: Atmel studio 6.1, פרוגיספ או קסם פלאש.
תרשים מעגל והסבר עבודה
המתח על פני JOYSTICK אינו ליניארי לחלוטין; זה יהיה רעשני. כדי לסנן את הרעש ממוקמים קבלים על פני כל נגדים במעגל כפי שמוצג באיור.
כפי שמוצג באיור ישנם ארבעה נוריות LED במעגל. כל נורית LED מייצגת כל כיוון של JOYSTICK. כאשר המקל מועבר לכיוון, ואז נורית הנורית המתאימה זוהרת.
לפני שנמשיך הלאה עלינו לדבר על ADC של ATMEGA8, ב- ATMEGA8 אנו יכולים לתת קלט אנלוגי לכל אחד מארבע הערוצים של PORTC, זה לא משנה איזה ערוץ אנו בוחרים כיוון שכולם זהים, אנו נבחר בערוץ 0 או PIN0 של PORTC.
ב- ATMEGA8, ה- ADC הוא ברזולוציה של 10 סיביות, כך שהבקר יכול לזהות תחושה של שינוי מינימלי של Vref / 2 ^ 10, כך שאם מתח הייחוס הוא 5V נקבל תוספת יציאה דיגיטלית לכל 5/2 ^ 10 = 5mV. אז על כל תוספת של 5mV בכניסה תהיה לנו תוספת של אחת בפלט הדיגיטלי.
כעת עלינו לקבוע את רישום ה- ADC בהתבסס על התנאים הבאים, 1. קודם כל עלינו לאפשר את תכונת ה- ADC ב- ADC.
2. כאן הולכים לקבל מתח כניסה מרבי להמרת ADC הוא + 5V. כדי שנוכל להגדיר ערך מקסימלי או הפניה של ADC ל- 5V.
3. לבקר יש תכונת המרת טריגר שמשמעותה המרת ADC מתבצעת רק לאחר טריגר חיצוני, מכיוון שאיננו רוצים שנצטרך להגדיר את הרישומים לכך שה- ADC יפעל במצב ריצה חופשית רציפה.
4. עבור כל ADC, תדירות ההמרה (ערך אנלוגי לערך דיגיטלי) ודיוק הפלט הדיגיטלי הם פרופורציונאליים הפוכים. אז לדיוק טוב יותר של הפלט הדיגיטלי עלינו לבחור בתדר פחות. עבור שעון ADC רגיל אנו מגדירים את מכירה מוקדמת של ADC לערך מקסימלי (2). מכיוון שאנו משתמשים בשעון הפנימי של 1MHZ, השעון של ADC יהיה (1000000/2).
אלה ארבעת הדברים היחידים שאנחנו צריכים לדעת כדי להתחיל לעבוד עם ADC.
כל ארבעת התכונות שלעיל נקבעים על ידי שני רושמים:
אדום (ADEN): יש להגדיר סיבית זו להפעלת תכונת ה- ADC של ATMEGA.
כחול (REFS1, REFS0): שני ביטים אלה משמשים לקביעת מתח הייחוס (או מתח הקלט המרבי שאנחנו הולכים לתת). מכיוון שאנחנו רוצים שיהיה מתח התייחסות 5V, יש להגדיר את REFS0 לפי הטבלה.
צהוב (ADFR): יש להגדיר סיבית זו כדי שה- ADC יפעל ברציפות (מצב ריצה חופשית).
PINK (MUX0-MUX3): ארבעת הביטים הללו נועדו לספר את ערוץ הקלט. מכיוון שאנחנו הולכים להשתמש ב- ADC0 או PIN0, אנחנו לא צריכים להגדיר סיביות כמו על ידי הטבלה.
BROWN (ADPS0-ADPS2): שלוש סיביות אלה מיועדות לקביעת ה- prescalar עבור ADC. מכיוון שאנו משתמשים ב- prescalar של 2, עלינו להגדיר סיבית אחת.
ירוק כהה (ADSC): סיבית זו מוגדרת עבור ADC להתחיל בהמרה. ניתן להשבית ביט זה בתוכנית כשאנחנו צריכים לעצור את ההמרה.