
Përmbajtje:
2025 Autor: John Day | [email protected]. E modifikuara e fundit: 2025-01-23 15:10


Në këtë tutorial do t'ju tregoj se si mund të bëni një tastierë lojrash duke përdorur Arduino nano. Pra, nëse doni të shihni video të detajuar në të, atëherë shikojeni atë në kanalin tim në youtube
Furnizimet
Nëse blini nga këto lidhje do të më ndihmojë të ju jap më shumë projekte
1) ARDUINO NANO2) DISPLAY OLED 3) BUTONA PUSH 4) TELE
Hapi 1: Saldimi i të gjithë përbërësve

Pra, pasi të keni marrë të gjithë përbërësit, duhet të lidhni të gjithë përbërësit siç tregohet në këtë diagram qark
Hapi 2: Organizoni të gjitha gjërat në vende
Pas bashkimit, rregulloni të gjithë përbërësit si kjo për t'i dhënë asaj një pamje të bukur
Hapi 3: Programimi
Pra, më në fund pasi keni ndjekur të gjithë hapat siç duhet është koha për të ngarkuar kodin më poshtë në Arduino
#përfshi
#include #include #includ #include // #include #define OLED_RESET 4 Shfaqja Adafruit_SSD1306 (OLED_RESET); const int c = 261; const int d = 294; const int e = 329; const int f = 349; const int g = 391; const int gS = 415; const int a = 440; const int aS = 455; const int b = 466; const int cH = 523; const int cSH = 554; const int dH = 587; const int dSH = 622; const int eH = 659; const int fH = 698; const int fSH = 740; const int gH = 784; const int gSH = 830; const int aH = 880; const unsigned char PROGMEM dioda16 = {0x00, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x3F, 0xF0, 0x3C, 0x00, 0x3C, 0x00, 0xFF, 0x00, 0x7F, 0xFF, 0x7F, 0xFF, 0xFF, 0x00, 0x3C, 0x00, 0x3C, 0x00, 0x1F, 0xF0, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00}; const char unsigned PROGMEM stuhi = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F 0xFE, 0x00, 0x00, 0x00, 0x07, 0x80, 0x01, 0xE0, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x20, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00 0x04, 0x00, 0x00, 0x20, 0x00, 0x00, 0x04, 0x00, 0x00, 0x20, 0x00, 0x00, 0x04, 0x00, 0x00, 0x60, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 0 0, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xD7, 0xFF, 0xFF, 0xE1, 0x00, 0x01 0x0x, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xF1, 0xCF, 0xFA, 0x80, 0x01, 0x3F, 0xC2, 0x37, 0xF7, 0x80, 0x01, 0xEF, 0x9C, 0x01, 0xE7, 0xC0, 0x01, 0xE0, 0x70, 0x06, 0x06, 0x80, 0x01, 0xE0, 0xC0, 0x03, 0x06, 0x80, 0x01, 0xFF, 0x80, 0x01, 0xFF, 0x80, 0x01, 0xF8, 0x00, 0x00, 0x1D, 0xC0, 0x03, 0x70, 0x00, 0x80, 0x0C, 0x60, 0x05, 0xB0, 0x07, 0xF0, 0x08, 0x90, 0x09, 0x10, 0x1F, 0xF8, 0x09, 0xD0, 0x0B, 0x90, 0x1F, 0x7C, 0x03, 0xF0, 0x0F, 0xC0, 0xFC, 0x0F, 0x07, 0x90, 0x0D, 0x43, 0xC0, 0x03, 0x07, 0x90, 0x05, 0x64, 0x00, 0x00, 0xCF, 0x10, 0x07, 0x0, 0xFC, 0xFC, 0x01, 0x80, 0x00, 0x00, 0x10, 0x20, 0x01, 0x00, 0x00, 0x00, 0x0E, 0x40, 0x01, 0x80, 0x07, 0xF0, 0x01, 0x80, 0x00, 0x80, 0x07, 0x00, 0xC, 0x80, 0x0B, 0xE8, 0x00, 0x80, 0x00, 0x87, 0x97, 0xE9, 0xE0, 0x80, 0x00, 0x87, 0xDF, 0xEF, 0xA0, 0x80, 0x00, 0x4B, 0xFF, 0xFF, 0xA0, 0x80, 0x00, 0x6B, 0xDF, 0xFB, 0xA3, 0x00, 0x00, 0x24, 0x97, 0xE8, 0x24, 0x00, 0x00, 0x1E, 0x1F, 0xC0, 0x2C, 0x00, 0x00, 0x07, 0xF8, 0x1F, 0xF0, 0x00, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00}; void setup () {pinMode (3, INPUT_PULLUP); pinMode (12, INPUT_PULLUP); pinMode (11, INPUT_PULLUP); shfaqje.fillo (SSD1306_SWITCHCAPVCC, 0x3C); display.display (); display.clearDisplay (); display.setTextSize (0); display.drawBitmap (6, 11, stuhi, 48, 48, 1); display.setFont (& FreeSans9pt7b); display.setTextColor (E BARDH); display.setCursor (65, 14); display.println ("xWing"); display.setFont (); display.setCursor (65, 17); display.setTextSize (0); display.println ("vs"); display.setCursor (0, 0); float voltaza = lexoVcc ()/1000; ekran.println (voltaza);; display.setFont (& FreeSans9pt7b); display.setCursor (65, 39); display.println ("Vdekja"); display.setFont (); display.setCursor (65, 42); display.println ("yll"); display.setTextSize (0); display.setCursor (65, 55); display.println ("nga VRAJ"); display.setCursor (65, 20); display.display (); display.setFont (); biep (a, 500); biep (a, 500); biep (a, 500); biip (f, 350); biep (cH, 150); biep (a, 500); biip (f, 350); biep (cH, 150); biep (a, 650); vonesë (500); vonesë (500); } int metx = 0; int mety = 0; int postoji = 0; int nep = 8; int smjer = 0; int go = 0; int rx = 95; int ry = 0; int rx2 = 95; int ry2 = 0; int rx3 = 95; int ry3 = 0; int bodovi = 0; int brzina = 3; // shpejtësia e plumbit int bkugle = 1; int najmanja = 600; int najveca = 1200; int promjer = 10; int rx4 = 95; int ry4 = 0; int zivoti = 5; int poc = 0; int ispaljeno = 0; int nivo = 1; int centar = 95; pocetno e gjatë e panënshkruar = 0; odabrano e gjatë e panënshkruar = 0; trenutno e gjatë e panënshkruar = 0; nivovrije e gjatë e panënshkruar = 0; int poz = 30; lak void () {if (shko == 0) {display.clearDisplay (); display.drawPixel (50, 30, 1); display.drawPixel (30, 17, 1); display.drawPixel (60, 18, 1); display.drawPixel (55, 16, 1); display.drawPixel (25, 43, 1); display.drawPixel (100, 43, 1); display.drawPixel (117, 52, 1); display.drawPixel (14, 49, 1); display.drawPixel (24, 24, 1); display.drawPixel (78, 36, 1); display.drawPixel (80, 57, 1); display.drawPixel (107, 11, 1); display.drawPixel (150, 11, 1); display.drawPixel (5, 5, 1); display.drawPixel (8, 7, 1); display.drawPixel (70, 12, 1); display.drawPixel (10, 56, 1); display.drawPixel (70, 25, 1); nëse (poc == 0) {pocetno = millis (); odabrano = rastësore (400, 1200); poc = 1; } trenutno = millis (); // nivoi if ((trenutno-nivovrije)> 50000) {nivovrije = trenutno; nivo = nivo+1; brzina = brzina+1; // brizna neprijateljevog metka if (nivo % 2 == 0) {bkugle = bkugle+1; promjer = promjer-1; } najmanja = najmanja-50; najveca = najveca-50; } if ((odabrano+pocetno) 0) {display.drawCircle (rx, ry, 2, 1); rx = rx-brzina;} if (ispaljeno> 1) {display.drawCircle (rx2, ry2, 1, 1); rx2 = rx2-brzina;} if (ispaljeno> 2) {display.drawCircle (rx3, ry3, 4, 1); rx3 = rx3-brzina;} if (ispaljeno> 3) {display.drawCircle (rx4, ry4, 2, 1); rx4 = rx4-brzina;} if (digitalRead (12) == 0 && poz> = 2) {poz = poz-2;} if (digitalRead (11) == 0 && poz128) postoji = 0; nëse (smjer == 0) {nep = nep+bkugle;} tjetër {nep = nep-bkugle;} nëse (nep> = (64-promjer)) smjer = 1; if (nep = nep-promjer && mety (centar-promjer) && metx = pozicija-8 && ry <= pozicija+8) if (rx4) {rx = 95; ry = -50; toni (9, 100, 100); zivoti = zivoti-1; } if (ry2> = pozicija-8 && ry2 <= pozicija+8) if (rx24) {rx2 = -50; ry2 = -50; toni (9, 100, 100); zivoti = zivoti-1; } if (ry3> = pozicija-8 && ry3 <= pozicija+8) if (rx34) {rx3 = -50; ry3 = -50; toni (9, 100, 100); zivoti = zivoti-1; } if (ry4> = pozicija-8 && ry4 <= pozicija+8) if (rx44) {rx4 = 200; ry4 = -50; ispaljeno = 0; toni (9, 100, 100); zivoti = zivoti-1; } if (rx4 <1) {ispaljeno = 0; rx4 = 200;} nëse (zivoti == 0) shko = 1; } nëse (shko == 1) {nëse (zivoti == 0) {toni (9, 200, 300); vonesë (300); toni (9, 250, 200); vonesë (200); toni (9, 300, 300); vonesë (300); zivoti = 5; } display.clearDisplay (); display.setFont (); display.setTextSize (2); display.setTextColor (E BARDH); display.setCursor (7, 10); display.println ("LODA PVERRFUNDIM!"); display.setTextSize (1); display.setCursor (7, 30); display.println ("rezultati:"); display.setCursor (44, 30); ekran.println (bodovi); display.setCursor (7, 40); display.println ("niveli:"); display.setCursor (44, 40); ekran.println (nivo); display.setCursor (7, 50); display.println ("koha (s):"); display.setCursor (60, 50); ekran.println (trenutno/1000); display.display (); if (digitalRead (3) == 0) {ton (9, 280, 300); vonesë (300); toni (9, 250, 200); vonesë (200); toni (9, 370, 300); vonesë (300); ponovo (); }}} void ponovo () {metx = 0; mety = 0; postoji = 0; nep = 8; smjer = 0; shko = 0; rx = 95; ry = 0; rx2 = 95; ry2 = 0; rx3 = 95; ry3 = 0; bodovi = 0; brzina = 3; // brizna neprijateljevog metka bkugle = 1; najmanja = 600; najveca = 1200; promjer = 12; rx4 = 95; ry4 = 0; zivoti = 5; poc = 0; ispaljeno = 0; nivo = 1; pocetno = 0; odabrano = 0; trenutno = 0; nivovrije = 0; } long readVcc () {// Lexoni referencën 1.1V kundër AVcc // vendosni referencën në Vcc dhe matjen në referencën e brendshme 1.1V #nëse është përcaktuar (_ AVR_ATmega32U4_) || përcaktuar (_ AVR_ATmega1280_) || e përcaktuar (_ AVR_ATmega2560_) ADMUX = _BV (REFS0) | _BV (MUX4) | _BV (MUX3) | _BV (MUX2) | _BV (MUX1); #elif përcaktohet (_AVR_ATtiny24_) || përcaktuar (_ AVR_ATtiny44_) || e përcaktuar (_ AVR_ATtiny84_) ADMUX = _BV (MUX5) | _BV (MUX0); #elif përcaktohet (_AVR_ATtiny25_) || përcaktuar (_ AVR_ATtiny45_) || e përcaktuar (_ AVR_ATtiny85_) ADMUX = _BV (MUX3) | _BV (MUX2); #tjetër ADMUX = _BV (REFS0) | _BV (MUX3) | _BV (MUX2) | _BV (MUX1); #endif vonesë (2); // Prisni që Vref të zgjidhë ADCSRA | = _BV (ADSC); // Filloni konvertimin ndërsa (bit_is_set (ADCSRA, ADSC)); // matja uint8_t e ulët = ADCL; // duhet të lexojë së pari ADCL - më pas kyç ADCH uint8_t lartë = ADCH; // zhbllokon të dy rezultatet e gjata = (të larta << 8) | i ulët; rezultat = 1125300L / rezultat; // Llogarit Vcc (në mV); 1125300 = 1.1*1023*1000 rezultati i kthimit; // Vcc në milivolt} bip i pavlefshëm (int shënim, kohëzgjatje int) {// Luani tonin në zilen e tonit Pin (9, shënim, kohëzgjatje); vonesa (kohëzgjatja); noTone (9); vonesë (50); }
Hapi 4: Shijoni !!
Urime? më në fund e bëtë kështu nëse ju pëlqeu atëherë regjistrohuni në kanalin tim në youtube
Recommended:
Kontrolluesi automatik i lojërave Google T Rex duke përdorur Arduino: 7 hapa

Kontrolluesi automatik i lojërave Google T Rex duke përdorur Arduino: lejon ta ndërtojmë atë
Lojtari i lojërave Pickcraft duke përdorur Arduino me burim të jashtëm: 6 hapa

Lojtari i lojërave Pickcraft duke përdorur Arduino me një burim të jashtëm: Ky është një mësim shumë i thjeshtë për të mësuar se si të bëni një lojtar lojërash Pickcraft duke përdorur ArduinoPickCrafter është një lojë shtesë e klikimit të artizanatit boshe që ju lejon të merrni kontrollin e një kazmë dhe të gërmoni thellë në biomet? Edhe kur jeni boshe ose jashtë linje! Thjesht qëndro
Kontrolluesi i lojërave të bazuara në Arduino - Kontrolluesi i lojërave Arduino PS2 - Duke luajtur Tekken Me DIY Arduino Gamepad: 7 hapa

Kontrolluesi i lojërave të bazuara në Arduino | Kontrolluesi i lojërave Arduino PS2 | Luajtja e Tekken Me DIY Arduino Gamepad: Përshëndetje djema, të luani lojëra është gjithmonë argëtuese, por të luani me Kontrolluesin tuaj të personalizuar të lojës DIY është më argëtuese. Pra, ne do të bëjmë një Kontrollues të lojës duke përdorur arduino pro micro në këtë udhëzues
Simuluesi i Lojërave SmartPhone- Luaj Lojëra Windows duke përdorur Kontrollin e Gjesteve IMU, Përshpejtuesin, Xhiroskopin, Magnetometrin: 5 Hapa

Simuluesi i Lojërave SmartPhone- Luaj Lojëra Windows duke përdorur Kontrollin e gjesteve IMU, Përshpejtuesin, Xhiroskopin, Magnetometrin: Mbështetni këtë projekt: https://www.paypal.me/vslcreations duke dhuruar kode me burim të hapur & mbështetje për zhvillimin e mëtejshëm
Gëzuar Ditëlindjen Tune Duke përdorur Sheshin e Lojërave të Qarkut: 3 hapa

Gëzuar Ditëlindjen Tune Duke përdorur Sheshin e Lojërave: Ja se si të luani Melodinë e Gëzuar Ditëlindjes në Bordin e Qarkut të Arduino Compatible të Adafruit. Kisha nevojë për diçka të vogël për të futur në një kuti për një surprizë të kutisë së ditëlindjes