Avatar billede madsmpedersen Nybegynder
15. december 2002 - 12:59 Der er 1 løsning

Aflæse trykknapper via com port

Jeg har lavet Jeapordy, men mangler at kunne tilkoble og aflæse deltagernes trykknapper.

1) Kan jeg uden videre sætte kontakter på comporten.
2) Hvilke ben skal de sidde på
3) Hvordan aflæser jeg dem i VB6

Spørgsmålet er måske let nok, men jeg har aldrig arbejdet med com port før.
Håber på et godt svar
Mads
Avatar billede jespernaur Nybegynder
15. december 2002 - 15:02 #1
Det du nok i virkeligheden ønsker, er at dit program skal kunne reagere på 3 digitale indgange (jeg går her ud fra, at dit Jeopardy har 3 deltagere). COM-porten er sådan set mest tænkt anvendt til seriel kommunikation, hvor man sender/modtager byte-struktureret data 1 bit ad gangen. Det er ikke noget man uden videre laver med en kontakt!

Nu er det dog sådan, at COM-porten trods alt har 3 digitale indgange, der egentlig er tænkt anvendt til modem-kommunikation. Det drejer sig om signalerne CTS (Clear To Send), DSR (Data Set Ready) og CD (Carrier Detect). Med lidt kreativ tænkning kan det måske lade sig gøre at anvende disse til dit projekt. Det kommer dog til at knibe meget stærkt, hvis du skal have mere end 3 deltagere!

For at anvende COM-porten fra VB6 skal du benytte MsComm:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/comm98/html/vbobjcomm.asp

Det mest velegnede er nok, hvis du registrerer en event handler til OnComm eventet, som giver dig mulighed for at få et event, når et af de ovennævnte signaler ændrer sig. Det er lidt mere detaljeret beskrevet i:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/comm98/html/vbprocomvbevt_comm.asp

Så kommer spørgsmålet om, hvordan det hele skal forbindes (jeg går her ud fra, at du har et i det mindste rudimentært kendskab til elektronik, og du skal helst også have adgang til et multimeter, for at kunne måle spændinger). Mit forslag er, at du benytter COM-port output-signalet RTS (Request To Send) som spændingskilde, det må du sørge for at få sat højt under programmets initialisering. Ledningerne skal så forbindes således:

RTS --- deltager 1's afbryder --- CTS
RTS --- deltager 2's afbryder --- DSR
RTS --- deltager 3's afbryder --- CD

De nævnte signaler ligger som følger på COM-porten:

CTS: ben 8
DSR: ben 6
CD: ben 1
RTS: ben 7
Jord: ben 5

Du skal være opmærksom på, at DSR eventet kun kommer ved ændring fra 1 til 0, så for deltager 2 skal du nok have en bryde-kontakt, i modsætning til en slutte-kontakt.

Desuden vil jeg tro, at du vil opleve ekstra events på grund af uundgåeligt kontakt-prel, så det kommer du nok til at skulle undertrykke i programmet.

God fornøjelse, lyder som et sjovt projekt.

Mvh
Jesper Naur
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester