Onko jollakin Nintendo NES -ohjaimen pinout-kaavio? Haluaisin liittää NES-ohjaimen Arduinoon.
Onko jollakin Nintendo NES -ohjaimen pinout-kaavio? Haluaisin liittää NES-ohjaimen Arduinoon.
NES Pad -kirjastossa ei ole vain pinoutia, vaan se on loistava arduino-luokka NES-ohjaimen käyttöä varten.
Tässä on toinen sivu hyödyllisiä tietoja, mukaan lukien signaalikaavio.
+ ---- > Power (valkoinen) | 5 + ---- ----- + 7 | x x o \ | o o o o | 4 + ------------ + 1 | | | | | | | + -> Maa (ruskea) | | + ---- > Pulse (punainen) | + ------- > Salpa (oranssi) + ---------- > Data (keltainen)
Löysin upean artikkelin Hack-A-Daystä, jossa kerrotaan tehtäväsi. Tämä artikkeli koskee SNES-ohjaimen liittämistä Androidiin, joka käyttää Arduinoa. Säästääksesi artikkelin seulonnan ongelmat, löysin heidän mainitsemansa linkitetyn koodin:
Tämä koodi käyttää vanhan koulun 1980-luvun NES-ohjainta ohjaamaan servoa ja LEDiä Arduino. Tällä koodilla 'ylös' -tyyny kääntää servon 180 asteeseen, 'oikea' kääntää sen 90 ja 'alas' kääntää sen 0 asteeseen. Myös A- ja B-painikkeet kytkevät LEDin päälle ja pois päältä. Voit hankkia NES-ohjaimen ebaystä alle 10 dollaria. Tässä on karkea piirros ohjaimen pistokkeesta, neljä reikää toisella puolella, kolme reikää toisella.
0 - 0v (maa ) + 5V --- 0 0 --LUKITTU mitään --- 0 0 --SALKAA mitään --- 0 0 --SARJALÄHTÖ
Voit vain pistää johdot ohjaimen pistokkeen reikiin prototyyppien tekoon. +5 on kytketty Arduino +5 -maadoitukseen. Arduino-maasalpa menee nastalle 2 (tällä koodilla) Kello nastalle 3 Sarjaliitäntä nastalle 4. ja LED palaa nastassa 11.
Jos haluat nähdä ohjaimen tulon sarjamoduulissa, avaa vain sarjamittari. Se näyttää ohjaimesta tulevat binääriluvut. Jokaisella painikkeella on oma binäärinumero. 'Ylös' on esimerkiksi 11110111. Lisäsin // piilotetun Serial.println-koodin, joka näyttää "Painiketta on painettu", jos painat käynnistyspainiketta. Poista vain //, jos haluat käyttää sitä. SNES-pistoke on erilainen, olet kiinnostunut siitä, että joudut etsimään muualta kelloa, salpaa, sarjalähtöä.
Lainaus :
/ * ALUSTAMINEN * / # sisältää <ServoTimer1.h>ServoTimer1-servo1; int salpa = 2; // aseta salvan pinint-kello = 3; // aseta kellotappi int datin = 4; // aseta tiedot pinbyte controller_data = 0; int ledpin = 11; / * SETUP * / void setup () {Serial.begin (57600); pinMode (salpa, OUTPUT); pinMode (kello, OUTPUT) ); pinMode (datin, INPUT); pinMode (ledpin, OUTPUT); digitalWrite (salpa, HIGH); digitalWrite (kello, HIGH); servo1.attach (10);} / * LUE TÄMÄN OHJAIMEN TIEDOT * / void controllerLue () {controller_data = 0; digitalWrite (salpa, LOW); digitalWrite (kello, LOW); digitalWrite (salpa, HIGH); delayMikrosekunnit (2); digitalWrite (salpa, LOW); controller_data = digitalRead (datin); for (int) i = 1; i < = 7; i ++) {digitalWrite (kello, HIGH); delayMikrosekunnit (2); controller_data = controller_data << 1; controller_data = controller_data + digitalRead (datin); delayMicroseconds (4); digitalWrite LOW);}} / * LED-, SERVO- JA SARJANÄYTTÖOHJELMA * / void loop () {controllerRead (); Serial.println (controller_data, BIN); // if (controller_data == B11101111) {// Sarja. println ("Painiketta on painettu"); //} else {//Serial.println("Nappia ei paineta "); //} // viitteeksi: // UP = 11110111 // DOWN = 11111011 // VASEN = 11111101 // OIKEA = 11111110 // SELECT = 11011111 // START = 11101111 // A = 01111111 // B = 10111111if (controller_data) == B01111111) {digitalWrite (ledpin, HIGH); } if (controller_data == B10111111) {digitalWrite (ledpin, LOW);} if (controller_data == B11110111) {servo1.write (180);} if (controller_data == B11111011) {servo1.write (0);} jos (controller_data == B11111110) {servo1.write (90);} viive (100);}
PinoutsGuide sisältää sivun Nintendo NES- ja SNES-ohjaussauvan ohjaimen pinout.