அர்டுயினோ குறியீடு, இரட்டை-அச்சு XY ஜாய்ஸ்டிக்கை Nokia 5110 LCD திரையுடன் பயன்படுத்துவதற்கு
இந்த டுடோரியல், Nokia 5110 LCD திரையில் காட்டப்படும் ஒரு புள்ளியைக் கட்டுப்படுத்த, இரட்டை-அச்சு XY ஜாய்ஸ்டிக்கைப் பயன்படுத்தும் செயல்முறையின் வழியாக உங்களை வழிநடத்தும். இந்தத் திட்டம் ஜாய்ஸ்டிக்கின் நிலையைப் படித்து, அதற்கேற்ப காட்சியைப் புதுப்பிப்பதை உள்ளடக்கியது. இந்த வழிகாட்டியின் முடிவில், ஜாய்ஸ்டிக்கை நகர்த்துவது திரையில் ஒரு புள்ளியின் நிலையை மாற்றும் (வீடியோவில் 00:00 மணிக்கு) ஒரு செயல்பாட்டு அமைப்பு உங்களுக்கு இருக்கும்.

இந்தத் திட்டத்தில், X மற்றும் Y அச்சுகளில் அதன் நிலையைத் தீர்மானிக்க ஜாய்ஸ்டிக்கின் அனலாக் வெளியீடுகளைப் பயன்படுத்துவீர்கள். ஜாய்ஸ்டிக்கிலிருந்து வரும் அளவீடுகள் LCD திரையின் பரிமாணங்களுக்கு வரைபடமாக்கப்படும், இது புள்ளியின் மென்மையான இயக்கத்தை அனுமதிக்கிறது. கூடுதலாக, ஜாய்ஸ்டிக்கின் சுவிட்ச் உள்ளீட்டை எவ்வாறு படிப்பது என்பதையும் நீங்கள் கற்றுக்கொள்வீர்கள், இது மேலும் தொடர்புகளுக்குப் பயன்படுத்தப்படலாம்.
வன்பொருள் விளக்கம்
இந்தத் திட்டத்திற்கான முதன்மை கூறுகளில் Arduino, இரட்டை-அச்சு XY ஜாய்ஸ்டிக் மற்றும் Nokia 5110 LCD திரை ஆகியவை அடங்கும். Arduino மைக்ரோகண்ட்ரோலராக செயல்படுகிறது, ஜாய்ஸ்டிக்கிலிருந்து உள்ளீடுகளை செயலாக்குகிறது மற்றும் LCD காட்சியைக் கட்டுப்படுத்துகிறது.
ஜாய்ஸ்டிக்கில் பொதுவாக இரண்டு பொட்டென்டியோமீட்டர்கள் உள்ளன - ஒன்று X-அச்சுக்கு மற்றும் ஒன்று Y-அச்சுக்கு. நீங்கள் ஜாய்ஸ்டிக்கை நகர்த்தும்போது, இந்த பொட்ட்கள் எதிர்ப்பை மாற்றி, Arduino இன் அனலாக் உள்ளீட்டு பின்களுக்கு மாறுபட்ட மின்னழுத்த அளவுகளை அனுப்புகின்றன. Nokia 5110 LCD திரை SPI தகவல்தொடர்பு மூலம் கட்டுப்படுத்தப்படுகிறது, இது திறமையான தரவு பரிமாற்றம் மற்றும் காட்சி புதுப்பிப்புகளை அனுமதிக்கிறது.
டேட்டாஷீட் விவரங்கள்
| உற்பத்தியாளர் | டெக்சாஸ் இன்ஸ்ட்ரூமென்ட்ஸ் |
|---|---|
| பகுதி எண் | L293D |
| லாஜிக்/IO மின்னழுத்தம் | 5 V |
| வழங்கல் மின்னழுத்தம் | 4.5–36 V |
| வெளியீட்டு மின்னோட்டம் (ஒரு சேனலுக்கு) | 600 mA |
| உச்ச மின்னோட்டம் (ஒரு சேனலுக்கு) | 1.2 A |
| PWM அதிர்வெண் வழிகாட்டுதல் | 20 kHz |
| உள்ளீட்டு லாஜிக் வரம்புகள் | TTL இணக்கமானது |
| மின்னழுத்த வீழ்ச்சி / RDS(on) / செறிவு | 1.5 V அதிகபட்சம் |
| வெப்ப வரம்புகள் | 150 °C |
| பேக்கேஜ் | DIP-16 |
| குறிப்புகள் / மாறுபாடுகள் | மோட்டார் டிரைவர் பயன்பாடுகளில் பரவலாகப் பயன்படுத்தப்படுகிறது |
- தொடர்ச்சியான செயல்பாட்டிற்கு சரியான வெப்ப மூழ்கடிப்பை உறுதிசெய்யவும்.
- நிலையான மின்சார விநியோகத்திற்கு டிகப்பிளிங் மின்தேக்கிகளைப் பயன்படுத்தவும்.
- கூறுகளை சேதப்படுத்துவதைத் தவிர்க்க மின்னழுத்த மதிப்பீடுகளைச் சரிபார்க்கவும்.
- PWM சிக்னல்களில் கவனமாக இருங்கள்; அவை குறிப்பிட்ட வரம்புகளுக்குள் இருப்பதை உறுதிசெய்யவும்.
- குறுகிய சுற்றுகளைத் தவிர்க்க வயரிங் இணைப்புகளைச் சரிபார்க்கவும்.
வயரிங் வழிமுறைகள்

ஜாய்ஸ்டிக் மற்றும் LCD திரையை Arduino உடன் இணைக்க, ஜாய்ஸ்டிக்கின் VCC பின்னை Arduino இன் 5V உடனும், GND பின்னை Arduino இன் GND உடனும் இணைப்பதன் மூலம் தொடங்கவும். ஜாய்ஸ்டிக்கின் X-அச்சு வெளியீட்டை அனலாக் பின் A0 உடனும், Y-அச்சு வெளியீட்டை அனலாக் பின் A1 உடனும் இணைக்கவும். ஜாய்ஸ்டிக்கின் சுவிட்ச் வெளியீடு டிஜிட்டல் பின் 2 உடன் இணைக்கப்பட வேண்டும்.
Nokia 5110 LCD க்கு, பின்வரும் பின்களை இணைக்கவும்: VCC ஐ 5V உடன், GND ஐ GND உடன், SCE ஐ பின் 7 உடன், RST ஐ பின் 6 உடன், D/C ஐ பின் 5 உடன், DN(MOSI) ஐ பின் 11 உடன், மற்றும் SCLK ஐ பின் 13 உடன் இணைக்கவும். இறுதியாக, பின்னொளி கட்டுப்பாட்டிற்காக LED பின்னை 330 ஓம் மின்தடை வழியாக பின் 9 உடன் இணைக்கவும்.
குறியீடு எடுத்துக்காட்டுகள் & விளக்கம்
செட்டப் செயல்பாட்டில், நாம் சீரியல் தகவல்தொடர்பு மற்றும் LCD ஐ துவக்குகிறோம். lcdBegin() கட்டளை பின்களை அமைத்து காட்சியை துவக்குகிறது. உகந்த தெரிவுநிலைக்காக மாறுபாடு அமைக்கப்படுகிறது.
void setup() {
Serial.begin(9600);
lcdBegin();
setContrast(40);
delay(1000);
clearDisplay(BLACK);
updateDisplay();
}
இது திட்டத்திற்கான தேவையான கூறுகளை துவக்குகிறது, LCD தகவலைக் காட்ட தயாராக இருப்பதை உறுதிசெய்கிறது.

லூப் செயல்பாட்டில், ஜாய்ஸ்டிக்கின் நிலையைப் படித்து அதை திரை பரிமாணங்களுக்கு வரைபடமாக்குகிறோம். ஜாய்ஸ்டிக்கின் X மற்றும் Y மதிப்புகளின் அடிப்படையில் புள்ளியின் நிலை புதுப்பிக்கப்படுகிறது.
void loop() {
int x = analogRead(A0); // ஜாய்ஸ்டிக்கின் x நிலையைப் படிக்கவும்
int y = analogRead(A1); // ஜாய்ஸ்டிக்கின் y நிலையைப் படிக்கவும்
int xPos = map(x, 0, 1023, 0, screenWidth); // x ஐ திரைக்கு வரைபடமாக்கவும்
int yPos = map(y, 0, 1023, 0, screenHeight); // y ஐ திரைக்கு வரைபடமாக்கவும்
setCircle(xPos, yPos, thickness, BLACK, 2); // புள்ளியைக் காட்டவும்
updateDisplay();
delay(10);
}
இந்த குறியீடு ஜாய்ஸ்டிக்கின் இயக்கத்தின் அடிப்படையில் LCD இல் புள்ளியின் நிலையை தொடர்ந்து புதுப்பிக்கிறது.
செயல்விளக்கம் / என்ன எதிர்பார்க்கலாம்
சுற்றுக்கு மின்சாரம் வழங்கும்போது, LCD ஒரு புள்ளியைக் காண்பிக்கும். ஜாய்ஸ்டிக்கை நகர்த்துவது ஜாய்ஸ்டிக்கின் X மற்றும் Y இயக்கங்களுக்கு ஏற்ப புள்ளியை நிகழ்நேரத்தில் மறுநிலைப்படுத்தும். ஜாய்ஸ்டிக் சுவிட்ச் அழுத்தப்பட்டால், நீங்கள் செயல்படுத்தக்கூடிய கூடுதல் செயல்பாடுகளை இது தூண்டலாம். ஜாய்ஸ்டிக் மையப்படுத்தப்படாவிட்டால் சாத்தியமான மிதக்கும் உள்ளீடுகள் குறித்து எச்சரிக்கையாக இருங்கள், இது எதிர்பாராத புள்ளி இயக்கங்களுக்கு வழிவகுக்கும் (வீடியோவில் 01:30 மணிக்கு).
வீடியோ நேர முத்திரைகள்
- 00:00 - திட்டத்திற்கான அறிமுகம்
- 01:30 - வயரிங் விளக்கம்
- 02:45 - குறியீடு விளக்கம்
- 04:10 - செயல்பாட்டின் செயல்விளக்கம்
/*
* This is Arduino code to use a dual-axis XY joystick with a Nokia 5110 screen to move a dot on the screen.
* It also reads the switch.
* Other Arduino libraries and videos: https://robojax.com
* Watch the video for this code to learn it fully.
* Watch the video here: https://youtu.be/zqDZybR5JSE
* This code is offered "as is" without any warranty.
* If you are sharing this code, you must keep this copyright note.
*/
/*
/* Nokia 5100 LCD Example Code with Added Joystick by Robojax
Graphics driver and PCD8544 interface code for SparkFun's
84x48 Graphic LCD.
https://www.sparkfun.com/products/10168
Original source code:
https://github.com/sparkfun/GraphicLCD_Nokia_5110
This stuff could all be put into a library, but we wanted to
leave it all in one sketch to keep it as transparent as possible.
Hardware: (Note most of these pins can be swapped)
Graphic LCD Pin ---------- Arduino Pin
1-VCC ---------------- 5V
2-GND ---------------- GND
3-SCE ---------------- 7
4-RST ---------------- 6
5-D/C ---------------- 5
6-DN(MOSI) ---------------- 11
7-SCLK ---------------- 13
8-LED - 330 Ohm res -- 9
The SCLK, DN(MOSI), must remain where they are, but the other
pins can be swapped. The LED pin should remain a PWM-capable
pin. Don't forget to stick a current-limiting resistor in line
between the LCD's LED pin and Arduino pin 9!
Modified by Ahmad S. for Robojax.com
on Mar 11, 2018 at 20:49 at Ajax, Ontario, Canada
*/
#include <SPI.h>
#include "LCD_Functions.h"
#define sw 2 // pint 2 is used for joystick switch input
#define screenWidth 83 // NOkia screen width
#define screenHeight 47 // Nokia screen height
int thickness =1;// the thickness of the dot
void setup()
{
// Robojax Dual Axis joystick with Nokia 5110 LCD screen project
Serial.begin(9600);
lcdBegin(); // This will setup our pins, and initialize the LCD
//updateDisplay(); // with displayMap untouched, SFE logo
setContrast(40); // Good values range from 40-60
delay(1000);
clearDisplay(BLACK);
updateDisplay();
}
void loop()
{
clearDisplay(WHITE);
// Robojax Dual Axis joystick with Nokia 5110 LCD screen project
int x = analogRead(A0);// read the x position of joystick
int y = analogRead(A1); // read the y position of joystick
int xPos = map(x, 0, 1023,0,screenWidth);// map or translate the x of joystick to x of screen
int yPos = map(y, 0, 1023,0,screenHeight); // map or translate the y of joystick to y of screen
int sStat = digitalRead(sw);//read the switch from pin 2
Serial.print("X: ");
Serial.print(xPos);
Serial.print(" Y: ");
Serial.println(yPos);// Robojax prints y
// Robojax Dual Axis joystick with Nokia 5110 LCD screen project
//setCircle(xPos, yPos, thicness, BLACK, 2);
// xPos is the position of x
// yPos is the position of y
// thickness
setCircle(xPos, yPos, thickness, BLACK, 2);// display the dot on the screen
updateDisplay();
delay(10);
}
நீங்கள் தேவைப்படும் எண்ணங்கள்
-
அமேசான்
-
அமேசான்Purchase XY Joystick from Amazonamzn.to
வளங்கள் மற்றும் மேற்கோள்கள்
இன்னும் எந்த வளங்களும் இல்லை.
கோப்புகள்📁
தேவையான கோப்பு (.h)
-
robojax-nokia5110.h header file for Arduino
robojax-nokia5110.zip0.01 MB -
LCD_Functions. file for Nokia
LCD_Functions.h0.02 MB
பிரிட்சிங் கோப்பு
-
Nokia 5110 LCD
Nokia_5110_LCD.fzpz0.03 MB -
Black Joystick KY-023
Black Joystick KY-023.fzpz0.02 MB