Mpiko ya Arduino ya kosalela joystick ya ba-axes mibale (XY) elongo na ekran ya LCD Nokia 5110.
Lithu oyo ekotondimbola yo na nzela ya kosalela joystick ya ba-axes mibale (dual-axis XY) mpo na kokamba moto oyo ezali komonana na ekran ya Nokia 5110 LCD. Projɛ́ oyo ezali kosangisa kotanga esika joystick ezali mpe kobongola ekran kolanda yango. Na suka ya lithu oyo, okozala na ebongiseli oyo esali malamu epai wapi kotambwisa joystick ekobongola esika ya moto na ekran (na vidéo na 00:00).

Na projɛ́ oyo, okosalela ba sorties analogiques ya joystick mpo na koyeba esika na yango na ba axes X mpe Y. Ba lectures oyo ewuti na joystick ekokende na bamɛtrɛ ya ekran ya LCD, mpo na kotinda moto na yango na nzela ya malamu. Na libanda ya yango, okoyekola mpe kotanga entrée ya commutateur ya joystick, oyo ekoki kosalelama mpo na ba interactions mosusu.
Biloko oyo ezali na Hardware
Ba composants ya liboso mpo na projɛ́ oyo ezali Arduino, joystick ya ba-axes mibale (dual-axis XY), mpe ekran ya Nokia 5110 LCD. Arduino ezali mosala ya contrôleur, oyo ezali kosala ba entrées oyo ewuti na joystick mpe kokamba ekran ya LCD.
Joystick yango ezali na ba potentiomètres mibale—moko mpo na axe X mpe mosusu mpo na axe Y. Ntango okotambwisa joystick, ba pots oyo babongolaka résistance, batindaka ba niveaux ya voltage oyo ebongwanaka na ba pins ya entrée analogique ya Arduino. Ekran ya Nokia 5110 LCD ekambamaka na nzela ya communication SPI, oyo epesaka possibilité ya kopesa ba données mpe kobongola ekran na nzela ya malamu.
Ba Détails ya Datasheet
| Fabricant | Texas Instruments |
|---|---|
| Numéro ya pièce | L293D |
| Voltage ya logique/IO | 5 V |
| Voltage ya alimentation | 4.5–36 V |
| Courant de sortie (na canal) | 600 mA |
| Courant de pointe (na canal) | 1.2 A |
| Guidance ya fréquence PWM | 20 kHz |
| Seuils ya logique d'entrée | Compatible na TTL |
| Chute ya voltage / RDS(on) / saturation | 1.5 V max |
| Limites thermiques | 150 °C |
| Paquet | DIP-16 |
| Notes / variantes | Esalelamaka mingi na ba applications ya moteur driver |
- Kokanisa ete okosala refroidissement malamu mpo na fonctionnement ya libela.
- Salela ba condensateurs de découplage mpo na alimentation ya nguya oyo ezali ngala.
- Vérifier ba ratings ya voltage mpo na kokitisa likama ya kobebisa ba composants.
- Kokanisa na ba signaux PWM; kotala ete bazali na kati ya ba limites oyo esengeli.
- Vérifier ba connexions ya ba fils mpo na kokitisa likama ya ba courts-circuits.
Ba Instructions ya Câblage

Mpo na kokangisa joystick mpe ekran ya LCD na Arduino, banda na kokangisa pin ya VCC ya joystick na 5V ya Arduino mpe pin ya GND na GND ya Arduino. Kokangisa sortie ya axe X ya joystick na pin analogique A0 mpe sortie ya axe Y na pin analogique A1. Sortie ya commutateur ya joystick esengeli kokangama na pin digitale 2.
Mpo na Nokia 5110 LCD, kokangisa ba pins oyo: VCC na 5V, GND na GND, SCE na pin 7, RST na pin 6, D/C na pin 5, DN(MOSI) na pin 11, mpe SCLK na pin 13. Na suka, kokangisa pin ya LED na nzela ya résistor ya 330 Ohm na pin 9 mpo na contrôle ya backlight.
Ba Exemples ya Code & Explication
Na fonction ya setup, tokomence communication série mpe LCD. Commande lcdBegin() esaleli ba pins mpe ebandisi ekran. Contraste esalemi mpo na visibility ya malamu.
void setup() {
Serial.begin(9600);
lcdBegin();
setContrast(40);
delay(1000);
clearDisplay(BLACK);
updateDisplay();
}
Oyo ebandisi ba composants ya nécessaires mpo na projɛ́, mpo na kotala ete ekran ya LCD ezali prêt na kopesa information.

Na fonction ya loop, tokomba kotanga esika ya joystick mpe tokopesa yango na bamɛtrɛ ya ekran. Esika ya moto ebongwanaka kolanda ba valeurs ya X mpe Y ya joystick.
void loop() {
int x = analogRead(A0); // tanga esika ya x ya joystick
int y = analogRead(A1); // tanga esika ya y ya joystick
int xPos = map(x, 0, 1023, 0, screenWidth); // pesa x na ekran
int yPos = map(y, 0, 1023, 0, screenHeight); // pesa y na ekran
setCircle(xPos, yPos, thickness, BLACK, 2); // monisa moto
updateDisplay();
delay(10);
}
Code oyo ebongolaka esika ya moto na ekran ya LCD kolanda mouvement ya joystick.
Démonstration / Nini Okomona
Ntango okofungola circuit, ekran ya LCD ekomonisa moto. Kotambwisa joystick ekobongola esika ya moto na temps réel kolanda ba mouvements ya X mpe Y ya joystick. Soki commutateur ya joystick epresé, ekoki kotinda ba fonctionnalités mosusu oyo okoki kosala. Keba na ba entrées oyo ezali na flottement soki joystick ezali na centre te, oyo ekoki kotinda ba mouvements ya moto oyo esengeli te (na vidéo na 01:30).
Ba Timestamps ya Vidéo
- 00:00 - Introduction na projɛ́
- 01:30 - Explication ya câblage
- 02:45 - Explication ya code
- 04:10 - Démonstration ya fonctionnement
/*
* 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);
}
Nko o na nki.
-
Amazon
-
AmazonPurchase XY joystick from Amazonamzn.to
Mokili na bisika
Pas encore de ressources.
Fichiers📁
Fichye ki nesesè (.h)
-
robojax-nokia5110.h header file for Arduino
robojax-nokia5110.zip0.01 MB -
LCD_Functions. file for Nokia
LCD_Functions.h0.02 MB
Fritzing File
-
Nokia 5110 LCD
Nokia_5110_LCD.fzpz0.03 MB -
Black Joystick KY-023
Black Joystick KY-023.fzpz0.02 MB