Avatar billede kastrup Nybegynder
10. november 2001 - 18:08 Der er 13 kommentarer og
1 løsning

Com porten

Er der nogen der kan hjælpe mig med og skive til com porten
Avatar billede driis Nybegynder
10. november 2001 - 19:40 #1
Ja, brug MSComm kontrollen. Den kan f.eks. bruges til at sende strengen \"Hello\" til COM 2 ved at bruge flg. kode:

MSComm.CommPort = 2
MSComm.PortOpen = True
MSComm.Output = \"Hello\"

Håber eksemplet er selvforklarende - ellers må du lige smide en kommentar om det.
Avatar billede kastrup Nybegynder
10. november 2001 - 19:47 #2
Tak for din forløbige hjælp men jeg kan nu ikke bruge det for jeg fatter ikke en meter det er nok bare mig der er dum.
Jeg vil meget gerne hvis man kunne lave så man kan trække to relæer med com porten.

MVH Morten
Avatar billede driis Nybegynder
10. november 2001 - 20:18 #3
2 relæer - dvs. du vil kunne tænde og slukke et eller andet via COM - porten?
Avatar billede orca Nybegynder
10. november 2001 - 21:10 #4
Jeg går ud fra at disse relæer tænder hvis de får tilsendt en speciel tekst (streng) ikke?
Avatar billede driis Nybegynder
10. november 2001 - 21:21 #5
orca>> Nej, der er almindelige relæer, han vil bruge. Jeg har talt med kastrup over ICQ - jeg kan godt copy-paste samtalen herind, hvis du vil se, hvor langt vi er nået med problemet.
Avatar billede orca Nybegynder
10. november 2001 - 21:23 #6
gerne :) - må jeg ikke også få dit/jeres icq nummer? hvis ikke jeg kan hjælpe så kan jeg nok godt lære noget :)

Orca @ 81118979
Avatar billede driis Nybegynder
10. november 2001 - 21:34 #7
driis @ 109716121 (nick på ICQ er \'Wiper\')
Avatar billede driis Nybegynder
10. november 2001 - 21:35 #8
Samtalen indtil nu:

kastrup: (8:18 PM) Det er bare helt iorden du kan bare skrive når du har tid
Wiper: (8:19 PM) Okay, hvad er det helt præcist, du vil lave?
kastrup: (8:20 PM) Jeg vil meget gerne have et lille program der kan trække to relæer der skal bare være to knapper en til hvær relæ
Wiper: (8:21 PM) Gider du lige skifte farve på baggrunden i din ICQ - ellers ka\' jeg ik\' se hvad jeg skriver ...
kastrup: (8:21 PM) Hvis det er til og lave
kastrup: (8:21 PM) Er det bedere
Wiper: (8:21 PM) Det kan godt lade sig gøre, men det er meget nemmere at bruge printerporten. ..
Wiper: (8:21 PM) Ja

kastrup: (8:21 PM) Det er fint med mig
kastrup: (8:22 PM) Hvad skal der til for og lave det
Wiper: (8:25 PM) På printerporten kan du trække +5V og 20 mA, så dine relæer må ikke bruge mere end det...

Grunden til, at du ikke kan lave det så nemt på COM porten er, at du på COM porten udsender dataene serielt - dvs. du faktisk kun har ét databen, som så til gengæld skifter status hele tiden (0/1) når du udsender data.
kastrup: (8:26 PM) Jeg er lige glad med hvilken port jeg skal bruge bare det kommer til og virke
Wiper: (8:26 PM) OK - har du allerede de relæer du skal bruge?
kastrup: (8:27 PM) Nej men dem skal jeg kon få fat i
kastrup: (8:27 PM) Hvis jeg kan få +5V ud og 20mA så er det fint så kan jeg selv finde ud af resten
Wiper: (8:28 PM) OK - jeg er lige ved at slå dataene op på parallelporten - 10 sekunder...
kastrup: (8:28 PM) Det er bare okay, jeg kan sagtens vente
Wiper: (8:29 PM) Hvad skal det bruges til ? (If you don\'t mind me asking...)
kastrup: (8:30 PM) Jeg er ved og lave et bord der kan hæve og sænke og så kunne det jo være ret blæret hvis man kunne styre det fra computeren
kastrup: (8:32 PM) Er det svar nok
Wiper: (8:32 PM) Ja, det er helt i orden.

kastrup: (8:32 PM) Kan du hjælpe k´mig med det
kastrup: (8:32 PM) ups
kastrup: (8:33 PM) For jeg er helt på bar bund
Wiper: (8:39 PM) Ja. Jeg huskede forkert før, du kan kun få 12 mA ud af porten, men det burde også være nok til et relæ. Hvis vi tager det hardwaremæssige først, så er her en oversigt over de forskellige ben på LPT porten:
www.driis.mobilixnet.dk/pport.jpg

Hvis du har et standard printerkabel, er ben 1 markeret med rødt eller lign; og derefter kommer naturligvis ben 2, 3, osv. Du skal bruge 2 af databenene (ét til hvert relæ) samt et ben med 0 V. Så du kan f.eks. tilslutte ben 2 og 3 (databit 0 og 1) til dine relæer, og bruge ben 19 til 0V.
kastrup: (8:41 PM) Det lyder til og finde ud af
kastrup: (8:41 PM) Har du lige scannet det ??
Wiper: (8:43 PM) Nej, jeg har haft det til at ligge dér et stykke tid - jeg lavede noget med parallelporten til et eksamensprojekt i for nogen måneder siden.

Nu kommer vi så til Visual Basic - delen, som faktisk også er nemt. Du skal bruge en DLL - fil til det, som jeg lige skal have fundet frem fra gemmerne...
kastrup: (8:43 PM) Okay hvad har du været til eksamen i
Wiper: (8:44 PM) Det var på HTX, teknisk gymnasium, 3. års projekt i Design & Produktion.
kastrup: (8:44 PM) okay
kastrup: (8:50 PM) jeg sender lige et billede til dig hvis det ikke gør noget så vi er helt enige om det hardware
Wiper: (8:51 PM) Det er bare i orden.

Du skal bruge den DLL fil, der ligger her:
www.driis.mobilixnet.dk/port95nt.zip

Zip filen indeholder et install program, som installerer DLL filen, samt nogle programeksempler. Men når du er færdig med dit program er det nok bare at kopiere selve DLL filen med, når du skal have dit program installeret på andre computere.
Wiper: (8:52 PM) Kender du det binære talsystem?
kastrup: (8:53 PM) Ja hvad med det
kastrup: (8:53 PM) kommer der ikke en fil til dig
Wiper: (8:53 PM) Nej, jeg får ingen fil. ...
kastrup: (8:53 PM) gennem icq
Wiper: (8:53 PM) nope, intet
kastrup: (8:54 PM) jeg sender lige en mail
Wiper: (8:54 PM) ok
kastrup: (8:56 PM) Så skulle der ligge en mail til dig
Wiper: (8:57 PM) Netop, det er præcis sådan du skal forbinde det.,
kastrup: (8:58 PM) jeg genstarter lige
kastrup: (9:02 PM) Hurra for win 2000 det er bare langsomt til og starte op
kastrup: (9:03 PM) hvad siger du så man gør
Wiper: (9:05 PM) Jep ...

OK i VB gør du sådan, når du har installeret DLL filen :

1) Du deklarerer en funktion fra DLL filen, som du skal bruge til at sende data til LPT porten. Det gøres med denne linie under Declarations i et modul:
Public Declare Sub Outp Lib \"dlportio.dll\" Alias \"DlPortWritePortUchar\" (ByVal Port As Long, ByVal Value As Byte)

2)  Det er bit 1 og bit 2 på parallelporten, vi ønsker at ændre. Dvs. hvis vi sender tallet 1, er relæ 1 tændt, hvis vi sender 2 er relæ 2 tændt, og hvis vi sender 3 er begge relæer tændt. For nemheds skyld plejer jeg at deklarere disse tal som konstanter; så er det nemmere at huske. Så i declarations i dit modul skal du have nogenlunde det her:
Option Explicit
Public Declare Sub Outp Lib \"dlportio.dll\" Alias \"DlPortWritePortUchar\" (ByVal Port As Long, ByVal Value As Byte)
Public Const Rel1 As Byte = 1
Public Const Rel2 As Byte = 2
Public LPTA As Integer
kastrup: (9:07 PM) Det bliver du nok lige nød til og hjælpe mig lidt mere skal de bare copieres ind eller hvad
Wiper: (9:07 PM) Jep, kopier hele kodestykket nederst i beskeden ind i dit modul.
kastrup: (9:09 PM) Det kan godt være det bare er mig der er dum men skal jeg åbne den dll fil eller hvad
Wiper: (9:09 PM) Nej. Du har vel kørt installationsfilen, som lå i ZIP filen?
kastrup: (9:09 PM) jep
Wiper: (9:11 PM) Godt. Så er DLL\'en installeret på dit system. I Visual Basic kan man så komme til at bruge de funktioner, som ligger i DLL filen ved at deklarere den, som vi gør i den kodestump, jeg sendte.
Wiper: (9:12 PM) Dvs. i Visual Basic finder du menuen Project>>Add Module. Tilføj et modul, og kopier kodestumpen ind i modulet.
kastrup: (9:12 PM) jeg har ikke visual basic
Wiper: (9:13 PM) Okay - det gik jeg ud fra, du brugte, da du spurgte i Visual Basic kategorien på Eksperten
kastrup: (9:14 PM) nej jeg håbede på der var nogen der var så flinke og hjælpe mig med og lave det
Wiper: (9:16 PM) Okay ...
kastrup: (9:17 PM) men hvis jeg nu får fat i det er det så bare og copiere det du har skrevet ind eller hvad
Wiper: (9:17 PM) Ja, det er første skridt - der skal noget mere kode på for at få den til at fungere.
kastrup: (9:18 PM) Jeg kunne ikke overtale dig til også og lave det eller er det for meget og be om
Wiper: (9:20 PM) Jeg kunne nok godt lave et lille program, som du kunne tænde og slukke de 2 relæer med - men så bliver det bare 2 knapper i et vindue, som du kan tænde og slukke på, og så ikke mere.
kastrup: (9:22 PM) Det er også fint. Bliver det bare sådan så når man holder den ene nede så trækker det ene relæ og når man slipper den så falder den igen eller hvad
Wiper: (9:22 PM) Sådan kan jeg godt lave det.
kastrup: (9:22 PM) Jeg vil blive vildt glad hvis du kan lave det
Avatar billede driis Nybegynder
10. november 2001 - 21:54 #9
kastrup>> Du kan finde dit program her : www.driis.mobilixnet.dk/bord.zip
Avatar billede kkp Nybegynder
11. november 2001 - 03:01 #10
driis>> er det muligt at se koden på det program du lige lave, og kan dll også bruges til at modtage data på printerporten med??
Avatar billede jelzin101 Praktikant
11. november 2001 - 03:11 #11
driis>> gider du ikke smide dll\'en på admin@litteratur.f2s.com    -jeg er ved at bygge en maskine der kan hælde cola op :)
Avatar billede kastrup Nybegynder
11. november 2001 - 10:07 #12
Tak for hjælpen Driis det vir sku bare. Nu må du sige til hvis du tror jeg kan hjælpe med noget en gang. Kan nok ikke være til meget hjælp men hvis du har noget dem noget industri relateret spørgsmål vil jeg heller en gerne hjælpe
Avatar billede driis Nybegynder
11. november 2001 - 11:16 #13
kkp>> DLL kan også modtage data. The code is right here (simple, huh?):

\'modul
Option Explicit
Public Declare Sub Outp Lib \"dlportio.dll\" Alias \"DlPortWritePortUchar\" (ByVal Port As Long, ByVal Value As Byte)
Public Const Rel1 As Byte = 1
Public Const Rel2 As Byte = 2
Public LPTA As Integer
\'modul slut

\'form code
Dim ans As Integer
Private Sub Form_Load()
LPTA = Val(PortNo.Text)
Outp LPTA, 0
End Sub

Private Sub PortNo_Change()
LPTA = Val(PortNo.Text)
End Sub

Private Sub PortNo_LostFocus()
If Not PortNo.Text = \"&H378\" Then
    ans = MsgBox(\"Advarsel! Standard portadresse er ikke valgt! Fortsæt?\", vbQuestion + vbYesNo, \"Bordstyring - Advarsel...\")
    If ans = vbNo Then
        PortNo.Text = \"&H378\"
        Call Form_Load
    End If
End If
End Sub

Private Sub R1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Outp LPTA, Rel1
End Sub

Private Sub R1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Outp LPTA, 0
End Sub

Private Sub R2_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Outp LPTA, Rel2
End Sub

Private Sub R2_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Outp LPTA, 0
End Sub
Avatar billede driis Nybegynder
11. november 2001 - 11:16 #14
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