הדבר הראשון שעולה במוחנו בהאזנה למילה ג'ויסטיק הוא בקר המשחק. כן, זה בדיוק אותו דבר וניתן להשתמש בו למטרת משחק. מלבד המשחקים, יש לו יישומים רבים אחרים באלקטרוניקה DIY. הג'ויסטיק הזה אינו אלא שילוב של שני פוטנציומטרים למישור X ו- Y בהתאמה. הוא קורא את המתח דרך הפוטנציומטר ונותן ערך אנלוגי לארדואינו, והערך האנלוגי משתנה כאשר אנו מזיזים את פיר הג'ויסטיק (שהוא פשוט מצביע הפוטנציומטר).
במעגל זה, אנו מתממשקים לג'ויסטיק עם ארדואינו פשוט על ידי שליטה בארבע נוריות לפי תנועת הג'ויסטיק. הצבנו 4 נוריות בצורה שתייצג את כיוון תנועת פיר הג'ויסטיק. לג'ויסטיק זה יש גם כפתור לחיצה בו ניתן להשתמש למטרות שונות אחרות או להשאיר סרק. מתג של הג'ויסטיק מחובר גם לד יחיד, מכיוון שלחצן הג'ויסטיק שנלחץ על אותו נורית בודדת יופעל.
חומר נדרש
- ארדואינו UNO
- מודול ג'ויסטיק
- נוריות -5
- נגד: 100ohm-3
- חוטי חיבור
- קרש לחם
תרשים מעגל
מודול ג'ויסטיק
ג'ויסטיקים זמינים בצורות ובגדלים שונים. מודול ג'ויסטיק טיפוסי מוצג באיור למטה. מודול ג'ויסטיק זה מספק בדרך כלל יציאות אנלוגיות ומתחי היציאה המסופקים על ידי מודול זה משתנים כל הזמן בהתאם לכיוון שאליו אנו מזיזים אותו. ונוכל לקבל את כיוון התנועה על ידי פירוש שינויי המתח הללו באמצעות מיקרו-בקר כלשהו. בעבר התממשקנו ג'ויסטיק עם AVR ו- Raspberry Pi.
למודול הג'ויסטיק הזה שני צירים כפי שאתה יכול לראות. הם ציר X וציר Y. כל ציר של JOYSTICK מותקן על פוטנציומטר או סיר. נקודות האמצע של הסירים הללו מונעות כ- Rx ו- Ry. אז Rx ו- Ry הם נקודות משתנות לסירים האלה. כאשר הג'ויסטיק במצב המתנה, Rx ו- Ry משמשים כמפריד מתח.
כאשר הג'ויסטיק מועבר לאורך הציר האופקי, המתח בסיכת Rx משתנה. באופן דומה, כאשר הוא נע לאורך הציר האנכי, המתח בסיכת Ry משתנה. אז יש לנו ארבעה כיוונים של ג'ויסטיק בשתי יציאות ADC. בעת הזזת המקל, המתח בכל סיכה הולך גבוה או נמוך, תלוי בכיוון.
כאן, אנו מחברים את מודול הג'ויסטיק הזה עם Arduino UNO שמגיע עם מנגנון ADC מובנה (אנלוגי לממיר דיגיטלי) כפי שמוצג בסרטון בסוף. למידע נוסף על השימוש ב- ADC של Arduino כאן.
קוד והסבר
קוד הארדואינו השלם מוזכר בסוף.
בקוד שלמטה הגדרנו את ציר ה- X ו- Y של מודול הג'ויסטיק עבור סיכה אנלוגית A0 ו- A1 בהתאמה.
#define joyX A0 #define joyY A1
כעת, בקוד שלמטה, אנו מאתחלים את קוד ה- PIN 2 של Arduino למתג (כפתור הלחיצה) של מודול הג'ויסטיק והערך של buttonstate ו- buttonstate1 יהיה 0 בהתחלה.
כפתור int = 2; כפתור int = 0; כפתור intState1 = 0;
בקוד שלהלן, אנו מגדירים את קצב השידור ל 9600 והגדרנו את פין 7 כסיכת פלט וסיכה כפתור כפין קלט. בתחילה, סיכת הכפתור תישאר גבוהה עד שהמתג ילחץ.
הגדרת חלל () {pinMode (7, OUTPUT); pinMode (כפתור, INPUT); digitalWrite (כפתור, HIGH); Serial.begin (9600); }
הנה, בקוד זה אנו קוראים את הערכים מהסיכה האנלוגית A0 ו- A1 ומדפיסים סדרתית.
int xValue = analogRead (joyX); int yValue = analogRead (joyY); Serial.print (xValue); Serial.print ("\ t"); Serial.println (yValue);
התנאים להפעלת וכיבוי LED בהתאם לתנועה של פיר הג'ויסטיק מוגדרים בקוד שלהלן. כאן אנחנו פשוט לוקחים ערכים אנלוגיים של מתח בסיכה A0 ו- A1 של Arduino. ערכים אנלוגיים אלה ישתנו כאשר אנו מזיזים את הג'ויסטיק והנורית זוהרת על פי תנועת הג'ויסטיק.
תנאי זה הוא לתנועה של פיר ג'ויסטיק בכיוון ציר -Y
אם (xValue> = 0 && yValue <= 10) {digitalWrite (10, HIGH); } אחר {digitalWrite (10, LOW);}
תנאי זה הוא לתנועה של פיר ג'ויסטיק בכיוון ציר -X
אם (xValue <= 10 && yValue> = 500) {digitalWrite (11, HIGH); } אחר {digitalWrite (11, LOW);}
תנאי זה הוא לתנועה של פיר ג'ויסטיק לכיוון ציר + X
אם (xValue> = 1020 && yValue> = 500) {digitalWrite (9, HIGH); } אחר {digitalWrite (9, LOW);}
תנאי זה הוא לתנועה של פיר ג'ויסטיק לכיוון ציר + Y
אם (xValue> = 500 && yValue> = 1020) {digitalWrite (8, HIGH); } אחר {digitalWrite (8, LOW);}
כאשר אנו מזיזים את מוט הג'ויסטיק באלכסון אז מיקום אחד מגיע כאשר הערך האנלוגי של X ו- Y יהיה 1023 ו- 1023 בהתאמה, גם פין 9 וגם פין 8 נורית זוהרים. מכיוון שהוא עומד בתנאי הנורית. לכן, להסרת חוסר ההתאמה נתנו תנאי שאם הערך של (X, Y) הוא (1023, 1023) אז גם נורית ה- LED תישאר במצב OFF.
אם (xValue> = 1020 && yValue> = 1020) {digitalWrite (9, LOW); digitalWrite (8, LOW); }
התנאי שלהלן משמש להפעלת הנורית המחוברת למתג הלחצן. כשאנחנו לוחצים על מתג הג'ויסטיק נורית ה- LED תידלק ותינעל עד לשחרור הכפתור. זה אופציונלי להשתמש במתג כפתור הלחיצה במודול הג'ויסטיק.
אם (buttonState == LOW) {Serial.println ("Switch = High"); digitalWrite (7, HIGH); } אחר {digitalWrite (7, LOW);}
שליטה על נוריות באמצעות ג'ויסטיק עם Arduino
לאחר העלאת הקוד לארדואינו וחיבור הרכיבים לפי דיאגרמת המעגל, כעת אנו יכולים לשלוט על נוריות ה- LED בעזרת ג'ויסטיק. אנו יכולים להדליק את ארבע הנוריות לכל כיוון בהתאם לתנועת פיר הג'ויסטיק. בג'ויסטיק יש שני פוטנציומטר, אחד מיועד לתנועה של ציר ה- X ואחר לתנועה של ציר ה- Y. כל פוטנציומטר מקבל 5 וולט מהארדואינו. אז כשאנחנו מזיזים את הג'ויסטיק, ערך המתח ישתנה והערך האנלוגי בסיכות אנלוגיות A0 ו- A1 ישתנה גם הוא.
לכן, מהארדואינו אנו קוראים את הערך האנלוגי לציר X ו- Y ומפעילים את נוריות ה- LED בהתאם לתנועת הציר של הג'ויסטיק. מתג לחיצת כפתור במודול ג'ויסטיק משמש לשליטה על הנורית היחידה במעגל כפי שמוצג בסרטון למטה.