ویژگی های شیلد جویاستیک آردوینو دو محوره
شیلد جویاستیک آردوینو دو محوره عموما در رباتیک و کنسولهای بازی استفاده میشود. این ماژول شامل یک جویاستیک، 4 کلید در 4 جهت مختلف، 2 سوئیچ مجزا و تعدادی پین جهت اتصال به دیگر قطعات میباشد.
مهمترین ویژگیهای این شیلد عبارتند از:
- یک جویاستیک در دو جهت X و Y
- 4 کلید با پوشش پلاستیکی در 4 جهت مختلف
- 2 کلید کوچک مجزا
- پینهای اتصال سریال و بلوتوث
- پینهای ارتباط I2C
- پینهای ارتباط به ماژول nRF24L01
- پینهای ارتباط به ماژول nRF24L01
- پینهای ارتباط به Nokia 5110 LCD
- سوئیچ ولتاژ 5 و 3 ولت
معرفی پایه های (Pinout) شیلد جویاستیک آردوینو دو محوره
این شیلد دارای بخشهای گوناگون جهت اتصال به قطعات مختلف میباشد. هر کدام به شرح زیر است:
اتصالات جویاستیک:
- JOY-X: محور x جویاستیک – متصل به A0
- JOY-Y: محور y جویاستیک – متصل به A1
- JOY-K: سوئیچ جویاستیک – متصل به D8
اتصالات تغذیه:
- V: برای اتصال به برد آردوینو Uno روی حالت 5 ولت و برای اتصال به آردوینوهایی مانند Due برروی 3 ولت قرار میدهیم.
اتصالات دکمهها:
- BT-A: دکمه A – متصل به D2
- BT-B: دکمه A – متصل به D3
- BT-C: دکمه A – متصل به D4
- BT-D: دکمه A – متصل به D5
- BT-E: دکمه A – متصل به D6
- BT-F: دکمه A – متصل به D7
اتصالات پین بلوتوث:
- BLT: شامل چهار پین جهت اتصال برای بلوتوث
اتصالات پین I2C:
- I2C: شامل پینهای SDA و SCL – متصل به A4 و A5
اتصالات پین nRF24L01:
- NRF: اتصال این پایههای این ماژول مانند زیر است:
CE: متصل به D9
CSN: متصل به D10
SCK: متصل به D13
MOSI: متصل به D11
MISO: متصل به D12
IRQ: پایه بدون اتصال
GND: متصل به زمین
VCC: متصل به 3 ولت
اتصالات پین Nokia 5110 LCD:
- LCD: متصل به پایههای D9 تا D13
تذکر
به علت تداخلات در پایه ها، شما نمیتوانید همزمان از هر دو ماژول nRF24L01 و Nokia 5110 LCD استفاده کنید.
دیگر اتصالات شیلد:
- GND: زمین
- 5V: ولتاژ 5 ولت
- 3.3V: ولتاژ 3.3 ولت
لوازمی که به آن احتیاج دارید
قطعات مورد نیاز
نرم افزارهای مورد نیاز
راه اندازی شیلد جویاستیک دو محوره با آردوینو
گام اول: سیم بندی
مطابق مدار زیر، شیلد را بر روی آردوینو قرار دهید.
گام دوم: کد
کد زیر را روی برد آردوینو آپلود کنید.
/*
Dual-Axis-Joystick-Shield
made on 16 Nov 2020
by Amir Mohammad Shojaee @ Electropeak
Home
*/
# define UP 2
# define RIGHT 3
# define DOWN 4
# define LEFT 5
# define E 6
# define F 7
# define Joy_BT 8
# define Joy_X A0
# define Joy_Y A1
int bottons[]={UP,RIGHT,DOWN,LEFT,E,F,Joy_BT};
void setup(){
for(int i=0;i<7;i++) pinMode(bottons[i],INPUT);
Serial.begin(9600);
}
void loop(){
Serial.print("UP:");Serial.print(digitalRead(UP));
Serial.print(" RIGHT:");Serial.print(digitalRead(RIGHT));
Serial.print(" DOWN:");Serial.print(digitalRead(DOWN));
Serial.print(" LEFT:");Serial.print(digitalRead(LEFT));
Serial.print(" E:");Serial.print(digitalRead(E));
Serial.print(" F:");Serial.print(digitalRead(F));
Serial.print(" Joy_BT:");Serial.print(digitalRead(Joy_BT));
Serial.print(" Joy_X:");Serial.print(analogRead(Joy_X));
Serial.print(" Joy_Y:");Serial.println(analogRead(Joy_Y));
delay(500);
}
از طریق این برنامه میتوانید عملکرد این ماژول را مشاهده کنید. تغییر در وضعیت کلیدها و جهت های X و Y، در قسمت Serial Monitor قابل مشاهده است.
نکته
دقت کنید که کلیدها در وضعیت Pull-Up هستند و زمان فشردن صفر میشوند.
خروجی کد به شکل زیر است. همانطور که مشاهده میکنید به صورت تصادفی کلیدها و جویاستیک زده شدهاند.