Peliohjaimen Modaus

Terve kaikki!

Olen koittanut hieman modailla vanhaa Xboxin ohjaintani, joka on PC-käytössä. Kaikki toimii hienosti, mutta ongelmana on eräs kytkentä. Olen nimittäin yrittänyt kytkeä ON/ON vipukytkintä ohjaimeen. Tällöin ohjain tietysti olettaa vipu käännettäessä, että näppäin on pohjassa. Haluaisin, kuitenkin, että pelit olettavat että tapahtui vain nopea painallus.

Kokeilin ensin tehdä 555-ajastin piirillä kytkentää, sainkin sen toimimaan yhteen suuntaan. Mutta kun tarkoituksena olisi, että kun vivun painaa takaisin alas, se toistaa saman painalluksen. Tällä 555-ajastin piirillä en saanut kytkentää toimimaan molempiin suuntiin.

Kokeilin siis tätä One-Shot kytkentää:
http://koti.mbnet.fi/~huhtama/ele/index.php?si=ml10.sis

Aikani Googleteltua, löysin kytkennän Optoerottimen avulla. Tässä kytkennässä en ole juuri päässy eteenpäin, mitään pulssia ei tapahdu vaan ohjain oletta näppäimen olevan kokoajan pohjassa.

Ennenkuin joku ehtii huomauttaa, että tämä olisi myös mahdollista toteuttaa releellä. Niin en halua käyttää releitä tässä kytkennässä.

Toivottavasti joku osaisi auttaa tässä ongelmassa!

Tee pulssin reunasta liipaistava ( edge triggered ) versio 555-kytkennästä
Esim kpsec.freeuk.com/555timer.htm

Nyt kokeilin tarkemmin tuota One-shot ajastin piiriä, sekä edge-triggered kytkentää. Sellainen ongelma, että tuota ON/ON vipukytkintä joutuu veivaamaan tuossa edes takaisin, että saa ajastuksen toimimaan. Testailin kytkentää, jos vipukytkimen jättää yläasentoon jää ledi palamaan. Kun taas jos räpäyttää nopeasti edes takas ajastus toimii oikein. Mikähän menee väärin??

Entä osaisiko kukaan neuvoa tuossa optoerottimella toteutettavassa kytkennässä?

ILmeisesti käytät sellaista vipukytkintä, joka on ns. vaihtokytkin. Entä jos yhdistät sen reunimmaiset nastat ja viet ne tuossa kytkiksessä olevan kytkimen alapuolella olevaan pisteeseen ja kytket kytkimen keskinastan siihen kytkiksen ylempään pisteeseen. :open_mouth:

Noniin. Nyt sain toimimaan Ledin kanssa tuon vipukytkimen molempiin suuntiin juurikin tuolla edgetrigger kytkennällä tähän tyyliin:

http://tinypic.com/view.php?pic=fnql52&s=6

Noh eipäs ongelmat vielä tähän lopu. Meni hieman sormi suuhun, että mitenkäs nyt ohjaimen kytken tähän, että tämä liipaisu toimii. Ohjaimesta tulee siis +/- , ja kun ne lyö yhteen niin ohjelma olettaa, että nappia painetaan. Koitin kytkeä miinuksen maahan, ja plussan 3 nastaan, mutta olettaa kuitenkin että näppäintä painetaan kokoajan? :confused:

Edit: Kun tutkaileen tuota ohjaimen ohjelmaa. Kun kytken 3. nastaan ohjaimen plussan, ja kun tällöin kääntää vipua niin ohjain luulee ettei näppiä paineta eli toimi tällä hetkellä juuri päin vastoin :laughing: Mikähän on pielessä?

3-nasta on jatkuvssti maissa ja käväisee lyhyen aikaa ylhäällä, kun vipua käännetään.
Laita 3-nastasta n. 10kohmin vastus NPN-transistorin kannalle, transistorin emitteri
maihin ja kollektori ohjaimen plusssaan, ohjaimen miinus maihin.
Transistori esim. BC547 tai mikä tahansa piensignaalitransistori.

Ja taas olen koittanut erillaisia kytkentöjä ongelman parissa. Tuo 555-piirillä toteutettava kytkentä kasvaa komponentimäärältä kohtuu suureksi. Tälläisiä vipuja täytyisi väsätä 5 kpl, joten olen palannut taas Optokytkennän pariin. Tarkoituksena olisi pitää kytkentä simppelinä ja pienenä.

Olen taas saanut kytkennä toimimaan yhteen suuntaan. Mutta taas sama ongelma, kun katkaisimen palauttaa takaisin, ei tätä sykäystä tapahdu. Tämän hetkinen kytkentä:

http://i48.tinypic.com/2pzedeg.jpg

Millähän tässä pääsisi eteenpäin? Tarviiko vaihtaa optokytkin AC-tyyppiseen? Taas kerran hukassa tämän ongelman parissa.

Edit: Ilmeisesti Diodi sillalla saisi toimimaan tuollaisen DC-optoerottimen kanssa. Mutta miten se pitäisi kytkeä tuohon, ja mistä tiedän mitä diodisiltaa käyttää?

Kytke kytkimen 1-nasta plussaan, 2-nastasta vastus R3 maihin, konkan oikean puoleisesta päästä diodi nurinpäin maihin ( anodi maihin, katodi konkkaan ).
R3:n arvo siten, että aikavakio R3xC paljon pienempi kuin kytkimen asennon
vaihtoon kuluva aika.

Koitin laitta 1 nastan plussaan ja tuosta kytkimen 2 navasta joka menee konkalle vedin maihin vastuksen. 3 nastan annoin olla ennallaan. Diodin kytkin myös. Mutta eipä toiminut?

Tein varmaa jotain väärin? Olisiko tuolle konkan vastukselle pitänyt tehdä jotain, entä tuolle optoerottimen 1 ja 2 navan välillä olevalle vastukselle, olisiko sille pitänyt tehdä jotain?

Minkä kokoisia vastukset ja konkka ovat?

Opton rinnalla oleva vastus on turha.
Sarjavastuksen mitoittamiseksi pitäisi tietää paljonko virtaa transistorin läpi pitää mennä, jotta
painallus tunnistetaan. Opton ledi kestää n. 50mA., joten sarjavastus pitää olla vähintään
( 5-1 )/0.05 = 80 ohmia.
Pitäisi tietää myös kuinka pitkä pulssin pitää olla konkan mitoittamiseksi.
Helpoin ratkaisu voisi olla alkuperäien kytkentä AC -optolla, jossa on inputissa kaksi lediä vastakkain.

Pulssin pit√§isi olla n. 1/4 sekunttia. Jos tuosta optoerottimesta poistaa tuon 1 ja 2 nastan tuon vastuksen (k√§ytt√§nyt 150ohm) ei pulssia tapahdu. 1 nastaan tuleva konkka on 220uf ja vastus 330ohm. Piirt√§m√§ni kytkent√§ kaavion avulla olen siis saanut yhteen suuntaan toimimaan kytkenn√§n mainiosti. Ohjelmat tunnistaa vivun k√§√§nn√∂n ‚Äúpainallukseksi‚ÄĚ. Kuitenkin toiseen suuntan se ei toimi.

Lueskelin tosiaan netistä, että olisi ehkä pitänyt alun perin juuri käyttää Ac-optoerotinta, mutta tuon DC-optonkin pitäisi saada toimimaan diodisillan avulla. Mutta minulla ei ole aavistustakaan miten sellainen pitäisi tähän kytkeä.

Tässä tämä minun kytkentä, jolla toimii hienosti yhteen suuntaan!

EDIT:
Elikkäs eikös tällähetkellä minun kytkentä toimi niin, että vain tuo konkan purkausvirta saa aikaan tuon pulssin, koska se purkausvirta kulkee opton kautta. Mutta miten saisin myös latausvirran kulkemaan opton kautta, jolloin myös saisin toiseen suuntaan tälläisen liipaisun? Pitäisikö tässä kohtaa jotenkin käyttää hyödyksi sitä Diodi-siltaa?

Ja täältä löysin tämän:
simprojects.nl/using_opto-couplers.htm