Met dit Blog willen we u tonen hoe te maken van je Arduino met de Joystick, Gamepad Schild en de Nokia Display van toepassing kan. Wij, op de Display, wat is de Positie van de Joystick heeft, en welke toetsen zijn ingedrukt.
Hebben We nodig:
- een compatibele microcontroller met Arduino Uno R3
- Joystick Gamepad Schild
- Nokia 5880 Display
Aan de basisvoorwaarde is natuurlijk altijd een PC met de Arduino-software en een aantal tools (soldeerbout...)
Voor het Scherm, de eerste is voorzien van een pin-bar met 8 Pennen worden gesoldeerd:
en Dan kunnen we alle 3 de onderdelen samen:
Nu we met het programma los.
Zoals gebruikelijk hebben we een paar nieuwe bibliotheken:
om dit Te doen, beginnen we in de Arduino-IDE "Schets > bibliotheek insluiten > bibliotheken beheren..."
In de bibliotheek management zijn wij op zoek naar Adafruit PCD8544 en installeren van het pakket:
Kort, wordt het pakket GEÏNSTALLEERD is:
Dit herhalen we met de Adafruit GFX:
Nu kunnen we de Code aan te maken (Hier gaat het om de Download)
#include <Adafruit_GFX.h> #include <Adafruit_PCD8544.h> #include <Draad.h> #include <SPI.h> #define EERSTE 12 #define CE 13 #define DC 11 #define DIN 10 #define CLK 9 #het definiëren van LED - 8 const byte PIN_BUTTON_A = 2; const byte PIN_BUTTON_B = 3; const byte PIN_BUTTON_C = 4; const byte PIN_BUTTON_D = 5; const byte PIN_BUTTON_E = 6; const byte PIN_BUTTON_F = 7; const byte PIN_ANALOG_X = 0; const byte PIN_ANALOG_Y = 1; Adafruit_PCD8544 display = Adafruit_PCD8544(CLK,, DIN,, DC,, CE,, EERSTE,); int valX = 0; , int valy is een andere = 0; void setup() { Seriële.beginnen met het(9600); display.begint(); display.setContrast(64); display.clear screen(); display.setText grootte(1); display.setText kleur(ZWART); scherm.drawRoundRect(0, 0, 44, 24, 3, 2); display.setCursor(6, 3); display.println("- X -"); display.setCursor(5, 14); display.println(" "); display.setCursor(29, 14); display.drawRoundRect(45, 0, 39, 24, 3, 2); display.setCursor(50,3); display.println("- Y" -"); display.setCursor(50,14); display.println(" "); display.drawRoundRect(0, 25, 84, 23, 3, 2); display.setCursor(6, 28); display.println("- KNOPPEN -"); display.setCursor(10, 38); display.println(" "); display.display(); vertraging(1000); pinMode(LED, OUTPUT); digitalWrite(LED, LAGE); pinMode(PIN_BUTTON_A, INGANG); digitalWrite(PIN_BUTTON_A, HOGE); pinMode(PIN_BUTTON_B, INGANG); digitalWrite(PIN_BUTTON_B, HOGE); pinMode(PIN_BUTTON_C, INGANG); digitalWrite(PIN_BUTTON_C, HOGE); pinMode(PIN_BUTTON_D, INGANG); digitalWrite(PIN_BUTTON_D, HOGE); pinMode(PIN_BUTTON_E, INGANG); digitalWrite(PIN_BUTTON_E, HOGE); pinMode(PIN_BUTTON_F, INGANG); digitalWrite(PIN_BUTTON_F, HOGE); } void loop() { display.fillRect(4, 37, 72, 10, 0); display.setCursor(8, 38); Serieel.afdrukken("- knop:"Een); Serieel.afdrukken van(digitale lezen(PIN_BUTTON_A)); Seriële.print(" "); als (digitaal lezen(PIN_BUTTON_A)==LAGE) { display.print("A "); } anders display.print("- "); Serieel.afdrukken("B:"); Serieel.afdrukken van(digitale lezen(PIN_BUTTON_B)); Seriële.print(" "); als (digitaal lezen(PIN_BUTTON_B)==LAGE) { display.print("B "); } anders display.print("- "); Serieel.afdrukken("C:"); Serieel.afdrukken van(digitale lezen(PIN_BUTTON_C)); Seriële.print(" "); als (digitaal lezen(PIN_BUTTON_C)==LAGE) { display.print("C "); } anders display.print("- "); Serieel.afdrukken("D:"); Serieel.afdrukken van(digitale lezen(PIN_BUTTON_D)); Seriële.print(" "); als (digitaal lezen(PIN_BUTTON_D)==LAGE) { display.print("D "); } anders display.print("- "); Serieel.afdrukken("E:"); Serieel.afdrukken van(digitale lezen(PIN_BUTTON_E)); Seriële.print(" "); als (digitaal lezen(PIN_BUTTON_E)==LAGE) { display.print("E "); } anders display.print("- "); Serieel.afdrukken("F:"); Serieel.afdrukken van(digitale lezen(PIN_BUTTON_F)); Seriële.afdrukken(" -- "); als (digitaal lezen(PIN_BUTTON_F)==LAAG) { weer te geven.afdrukken("F"); } anders weer te geven.afdrukken("- "); weer te geven.println(); valX = analoog(PIN_ANALOG_X); valY = analoog(PIN_ANALOG_Y); weer te geven.fillRect(4, 13, 25 , 10, 0); weer te geven.setCursor(4, 14); weer te geven.println(valX, 1); weer te geven.fillRect(50, 13, 23 , 10, 0); weer te geven.setCursor(50, 14); weer te geven.println(valY, 1); Serie.afdrukken("Positie X:"); Serie.afdrukken(valX); Serie.afdrukken(", "); Serie.afdrukken("Y:"); Serie.afdrukken(valY); Serie.afdrukken(" "); Serie.println(); weer te geven.weer te geven(); vertraging(200); }
We hebben het gehaald, onze "gameconsole" is actief. We kunnen nu de knoppen en de positie van de joystick weergeven:
BELANGRIJKE MEDEDELING:
Er zijn verschillende versies van het Nokia 5110-display met verschillende pintoewijzingen. Als u een onjuiste pintoewijzing heeft, werkt het display niet, kan uw achtergrondverlichting flikkeren.
Als uw pinout niet werkt op het gamepadscherm van de joystick, controleer dan uw pinout en gebruik jumperlijnen om uw display te verbinden:
De pinout is als volgt:
Schild | Weer te geven |
3V3 | VCC |
GND | GND |
D13 | CE |
D12 | RST |
D11 | DC |
D10 | DIN |
D9 | CLK |
3V3 | niet verbonden |
SLEUTEL | LICHT |
We wensen je veel plezier met het joystickscherm en het display en schrijf in de reacties wat je ermee hebt ontwikkeld.