- பொருள் தேவை
- சுற்று வரைபடம்
- ஜாய்ஸ்டிக் தொகுதி
- குறியீடு மற்றும் விளக்கம்
- Arduino உடன் ஜாய்ஸ்டிக் பயன்படுத்தி LED களைக் கட்டுப்படுத்துதல்
ஜாய்ஸ்டிக் என்ற வார்த்தையைக் கேட்பது நம் மனதில் தோன்றும் முதல் விஷயம் விளையாட்டுக் கட்டுப்பாட்டாளர். ஆம், இது சரியாகவே உள்ளது மற்றும் கேமிங் நோக்கத்திற்காக பயன்படுத்தப்படலாம். கேமிங்கைத் தவிர, DIY மின்னணுவியலில் இது பல பயன்பாடுகளைக் கொண்டுள்ளது. இந்த ஜாய்ஸ்டிக் முறையே எக்ஸ் மற்றும் ஒய் விமானத்திற்கான இரண்டு பொட்டென்டோமீட்டர்களின் கலவையாகும். இது பொட்டென்டோமீட்டர் வழியாக மின்னழுத்தத்தைப் படித்து அர்டுயினோவுக்கு அனலாக் மதிப்பைக் கொடுக்கிறது, மேலும் நாம் ஜாய்ஸ்டிக் தண்டு நகர்த்தும்போது அனலாக் மதிப்பு மாறுகிறது (இது வெறுமனே பொட்டென்டோமீட்டர் சுட்டிக்காட்டி).
இந்த சர்க்யூட்டில், ஜாய்ஸ்டிக் இயக்கத்தின் படி நான்கு எல்.ஈ.டிகளைக் கட்டுப்படுத்துவதன் மூலம் ஜாய்ஸ்டிக்கை அர்டுயினோவுடன் இணைக்கிறோம். ஜாய்ஸ்டிக் தண்டு இயக்கத்தின் திசையை குறிக்கும் வகையில் 4 எல்.ஈ.டிகளை வைத்திருக்கிறோம். இந்த ஜாய்ஸ்டிக் ஒரு புஷ் பொத்தானைக் கொண்டுள்ளது, இது வேறு பல நோக்கங்களுக்காக பயன்படுத்தப்படலாம் அல்லது சும்மா விடப்படலாம். ஜாய்ஸ்டிக் சுவிட்சுடன் ஒற்றை எல்.ஈ.டி இணைக்கப்பட்டுள்ளது, ஏனெனில் ஜாய்ஸ்டிக் பொத்தானை அழுத்தினால் ஒற்றை எல்.ஈ.
பொருள் தேவை
- Arduino UNO
- ஜாய்ஸ்டிக் தொகுதி
- எல்.ஈ.டி -5
- மின்தடை: 100ohm-3
- கம்பிகளை இணைக்கிறது
- ப்ரெட்போர்டு
சுற்று வரைபடம்

ஜாய்ஸ்டிக் தொகுதி
ஜாய்ஸ்டிக்ஸ் வெவ்வேறு வடிவங்கள் மற்றும் அளவுகளில் கிடைக்கின்றன. ஒரு பொதுவான ஜாய்ஸ்டிக் தொகுதி கீழே உள்ள படத்தில் காட்டப்பட்டுள்ளது. இந்த ஜாய்ஸ்டிக் தொகுதி பொதுவாக அனலாக் வெளியீடுகளை வழங்குகிறது மற்றும் இந்த தொகுதி வழங்கிய வெளியீட்டு மின்னழுத்தங்கள் நாம் அதை நகர்த்தும் திசைக்கு ஏற்ப மாறிக்கொண்டே இருக்கும். இந்த மின்னழுத்த மாற்றங்களை சில மைக்ரோகண்ட்ரோலரைப் பயன்படுத்தி விளக்குவதன் மூலம் இயக்கத்தின் திசையைப் பெறலாம். முன்னதாக நாங்கள் ஜாய்ஸ்டிக்கை ஏ.வி.ஆர் மற்றும் ராஸ்பெர்ரி பை உடன் இணைத்தோம்.

இந்த ஜாய்ஸ்டிக் தொகுதிக்கு நீங்கள் பார்க்க முடியும் என இரண்டு அச்சுகள் உள்ளன. அவை எக்ஸ்-அச்சு மற்றும் ஒய்-அச்சு. JOYSTICK இன் ஒவ்வொரு அச்சும் ஒரு பொட்டென்டோமீட்டர் அல்லது பானையில் ஏற்றப்பட்டுள்ளது. இந்த தொட்டிகளின் நடுப்பகுதிகள் Rx மற்றும் Ry என வெளியேற்றப்படுகின்றன. எனவே Rx மற்றும் Ry ஆகியவை இந்த பானைகளுக்கு மாறக்கூடிய புள்ளிகள். ஜாய்ஸ்டிக் காத்திருப்பு நிலையில் இருக்கும்போது, Rx மற்றும் Ry ஆகியவை மின்னழுத்த வகுப்பியாக செயல்படுகின்றன.
ஜாய்ஸ்டிக் கிடைமட்ட அச்சில் நகர்த்தப்படும்போது, Rx முள் மின்னழுத்தம் மாறுகிறது. இதேபோல், இது செங்குத்து அச்சில் நகர்த்தப்படும்போது, Ry முள் மின்னழுத்தம் மாறுகிறது. எனவே நாங்கள் நான்கு வேண்டும் இரண்டு ஏடிசி வெளியீடுகளில் கவனம் ஜாய்ஸ்டிக் பல திசைகளிலும். குச்சி நகர்த்தப்படும்போது, ஒவ்வொரு முள் மின்னழுத்தமும் திசையைப் பொறுத்து அதிகமாகவோ அல்லது குறைவாகவோ செல்லும்.
இங்கே, இந்த ஜாய்ஸ்டிக் தொகுதியை Arduino UNO உடன் இணைக்கிறோம், இது முடிவில் உள்ள வீடியோவில் காட்டப்பட்டுள்ளபடி உள்ளடிக்கிய ADC (அனலாக் டு டிஜிட்டல் மாற்றி) பொறிமுறையுடன் வருகிறது. Arduino இன் ADC ஐப் பயன்படுத்துவது பற்றி மேலும் அறிக.
குறியீடு மற்றும் விளக்கம்
முழுமையான Arduino குறியீடு இறுதியில் குறிப்பிடப்பட்டுள்ளது.
கீழேயுள்ள குறியீட்டில், முறையே அனலாக் முள் A0 மற்றும் A1 க்கான ஜாய்ஸ்டிக் தொகுதியின் எக்ஸ் மற்றும் ஒய் அச்சை வரையறுத்துள்ளோம்.
# joyX A0 ஐ வரையறுக்கவும் # மகிழ்ச்சி Y1 ஐ வரையறுக்கவும்
இப்போது, கீழேயுள்ள குறியீட்டில், ஜாய்ஸ்டிக் தொகுதியின் சுவிட்ச் (புஷ் பொத்தான்) க்கான Arduino இன் PIN 2 ஐ துவக்குகிறோம், பட்டன்ஸ்டேட் மற்றும் பட்டன்ஸ்டேட் 1 இன் மதிப்பு தொடக்கத்தில் 0 ஆக இருக்கும்.
int பொத்தான் = 2; int buttonState = 0; int buttonState1 = 0;
கீழேயுள்ள குறியீட்டில், நாங்கள் பாட் வீதத்தை 9600 ஆக அமைத்து, பின் 7 ஐ ஒரு வெளியீட்டு முள் மற்றும் பொத்தான் முள் உள்ளீட்டு முள் என வரையறுத்துள்ளோம். ஆரம்பத்தில், சுவிட்ச் அழுத்தும் வரை பொத்தான் முள் அதிகமாக இருக்கும்.
void setup () {pinMode (7, OUTPUT); pinMode (பொத்தான், INPUT); டிஜிட்டல்ரைட் (பொத்தான், உயர்); சீரியல்.பெஜின் (9600); }
இங்கே, இந்த குறியீட்டில் நாம் அனலாக் முள் A0 மற்றும் A1 இலிருந்து மதிப்புகளைப் படித்து தொடர்ச்சியாக அச்சிடுகிறோம்.
int xValue = அனலாக் ரீட் (ஜாய்எக்ஸ்); int yValue = அனலாக் ரீட் (மகிழ்ச்சி); சீரியல்.பிரண்ட் (xValue); சீரியல்.பிரண்ட் ("\ t"); Serial.println (yValue);
சூழலை ஏற்படுத்தும், மற்றும் ஜாய்ஸ்டிக் இயக்கம் படி ஆஃப் LED திரும்பிய தண்டு, கீழே உள்ள குறியீட்டை வரையறுக்கப்பட்டிருக்கிறது. இங்கே நாம் Arduino இன் முள் A0 மற்றும் A1 இல் மின்னழுத்தத்தின் அனலாக் மதிப்புகளை எடுத்துக்கொள்கிறோம். நாம் ஜாய்ஸ்டிக்கை நகர்த்தும்போது இந்த அனலாக் மதிப்புகள் மாறும் மற்றும் ஜாய்ஸ்டிக்கின் இயக்கத்திற்கு ஏற்ப எல்.ஈ.டி ஒளிரும்.

இந்த நிலை -Y அச்சு திசையில் ஜாய்ஸ்டிக் தண்டு இயக்கத்திற்கானது
if (xValue> = 0 && yValue <= 10) {DigitalWrite (10, HIGH); } else {டிஜிட்டல்ரைட் (10, குறைந்த);}
இந்த நிலை -X அச்சு திசையில் ஜாய்ஸ்டிக் தண்டு இயக்கத்திற்கானது
if (xValue <= 10 && yValue> = 500) {DigitalWrite (11, HIGH); } else {டிஜிட்டல்ரைட் (11, குறைந்த);}
இந்த நிலை + எக்ஸ் அச்சு திசையில் ஜாய்ஸ்டிக் தண்டு இயக்கத்திற்கானது
if (xValue> = 1020 && yValue> = 500) {DigitalWrite (9, HIGH); } else {டிஜிட்டல்ரைட் (9, குறைந்த);}
இந்த நிலை + Y அச்சு திசையில் ஜாய்ஸ்டிக் தண்டு இயக்கத்திற்கானது
if (xValue> = 500 && yValue> = 1020) {DigitalWrite (8, HIGH); } else {டிஜிட்டல்ரைட் (8, குறைந்த);}
நாம் ஜாய்ஸ்டிக் தண்டு குறுக்காக நகர்த்தும்போது, எக்ஸ் மற்றும் ஒய் ஆகியவற்றின் அனலாக் மதிப்பு முறையே 1023 மற்றும் 1023 ஆக இருக்கும்போது ஒரு நிலை வரும், பின் 9 மற்றும் பின் 8 எல்இடி இரண்டும் ஒளிரும். ஏனெனில் இது எல்.ஈ.டி யின் நிலையை பூர்த்தி செய்கிறது. எனவே, அந்த பொருத்தமின்மையை அகற்றுவதற்காக (எக்ஸ், ஒய்) மதிப்பு (1023, 1023) என்றால், எல்.ஈ.டி இரண்டுமே ஆஃப் நிலையில் இருக்கும்
if (xValue> = 1020 && yValue> = 1020) {DigitalWrite (9, LOW); டிஜிட்டல்ரைட் (8, குறைந்த); }
புஷ்பட்டன் சுவிட்சுடன் இணைக்கப்பட்ட எல்.ஈ.டி இயக்க கீழே உள்ள நிபந்தனை பயன்படுத்தப்படுகிறது. நாம் ஜாய்ஸ்டிக் சுவிட்சை அழுத்தும்போது, எல்.ஈ.டி இயக்கப்பட்டு பொத்தானை வெளியிடும் வரை தாழ்ப்பாள் செய்யும். ஜாய்ஸ்டிக் தொகுதியில் புஷ் பொத்தான் சுவிட்சைப் பயன்படுத்துவது அதன் விருப்பமாகும்.
if (buttonState == LOW) {Serial.println ("Switch = High"); டிஜிட்டல்ரைட் (7, உயர்); } else {டிஜிட்டல்ரைட் (7, குறைந்த);}
Arduino உடன் ஜாய்ஸ்டிக் பயன்படுத்தி LED களைக் கட்டுப்படுத்துதல்

ஆர்டுயினோவில் குறியீட்டைப் பதிவேற்றிய பின், சுற்று வரைபடத்தின்படி கூறுகளை இணைத்த பிறகு, இப்போது எல்.ஈ.டிகளை ஜாய்ஸ்டிக் மூலம் கட்டுப்படுத்தலாம். ஜாய்ஸ்டிக் தண்டு இயக்கத்தின் படி ஒவ்வொரு திசையிலும் நான்கு எல்.ஈ.டிகளை இயக்கலாம். ஜாய்ஸ்டிக் அதற்குள் இரண்டு பொட்டென்டோமீட்டரைக் கொண்டுள்ளது, ஒன்று எக்ஸ்-அச்சு இயக்கத்திற்கும் மற்றொன்று ஒய்-அச்சு இயக்கத்திற்கும். ஒவ்வொரு பொட்டென்டோமீட்டரும் Arduino இலிருந்து 5v ஐப் பெறுகிறது. எனவே நாம் ஜாய்ஸ்டிக்கை நகர்த்தும்போது, மின்னழுத்த மதிப்பு மாறும் மற்றும் அனலாக் பின்ஸ் A0 மற்றும் A1 இல் உள்ள அனலாக் மதிப்பும் மாறும்.
எனவே, அர்டுயினோவிலிருந்து, எக்ஸ் மற்றும் ஒய் அச்சிற்கான அனலாக் மதிப்பைப் படித்து, ஜாய்ஸ்டிக்கின் அச்சு இயக்கத்தின் படி எல்.ஈ.டிகளை இயக்குகிறோம். ஜாய்ஸ்டிக் தொகுதியில் ஒரு புஷ் பொத்தான் சுவிட்ச் கீழேயுள்ள வீடியோவில் காட்டப்பட்டுள்ளபடி சுற்றுகளில் ஒற்றை எல்.ஈ.டி கட்டுப்படுத்த பயன்படுத்தப்படுகிறது.
