Okej, nu ska vi reda ut saker och ting eftersom att mina elektronikkunskaper kunde vara bättre...
Ta sedan en signal från skrivarporten och låt den via resistorn gå till basen på transistorn.
Lämpligt värde på resistorn kan vara ca 470ohm.
Efter att ha multimetrat lite visar det sig att kabeln spottar ur sig 3.28 v istället för specificerade 5 v, i alla fall med den kabel jag använder. Kommer att kapa ner kabeln från nuvarande runt två meter till en halvmeter eller så senare så kan ju stiga en aning, men jag antar att jag måste gå ner lite i resistans, hur räknar jag ut lämplig resistans (vet inte riktigt vilka värden jag ska räkna med)?
För att undersöka vilken det ska vara så mäter du. Med minus (com) på instrumentet så mäter du till båda sidor på knappen.
Du får 0V på ena sidan och plusspänning på den andra sidan knappen när knappen är opåverkad. Om du trycker på knappen ändras ena sidan. Sidan som inte ändras är den 0V eller ett antal volt + spänning.
Är den 0V ska du ha NPN-transistorn annars PNP-transistor.
Här känner jag att jag inte riktigt hänger med... vart ska jag placera multimeterns två ledare sa du?
Nästa blir att fixa programmet.
Testade faktiskt detta idag, funkade riktigt bra. För eventuella andra som gör liknande saker och ramlar över tråden så kan jag tipsa om dll-filen
inpout32.dll. Kanske har någon annan nytta av kommande delen av inlägget, jag fick googla och lista ut det själv.
Initiering av inpout32.dll (vb.net):
Kod: Markera allt
Module InpOut32_Declarations
'Inp and Out declarations for port I/O using inpout32.dll.
Public Declare Function Inp Lib "inpout32.dll" Alias "Inp32" (ByVal PortAddress As Short) As Short
Public Declare Sub Out Lib "inpout32.dll" Alias "Out32" (ByVal PortAddress As Short, ByVal Value As Short)
End Module
Användning för att skicka värden (vb.net):
Där adress är portens id-nummer i HEX, vanligtvis 888, och värde är det värde man vill skicka. Värdet bestämmer vilka data-ledare som ska ha signal, de åtta ledarna (som heter D0-D7) representerar ett varsitt binärt heltal från 1 till 128.
Ex:
1 = 2^0 = signal på ledare 0,
2 = 2^1 = signal på ledare 1,
3 = 1 + 2 = signal på ledare 0 och 1,
4 = 2^2 = signal på ledare 2,
5 = 1 + 4 = signal på ledare 0 och 2,
6 = 2 + 4 = signal på ledare 1 och 2,
7 = 1 + 2 + 4 = signal på ledare 0, 1 och 2,
8 = 2^3 = signal på ledare 3,
osv.
...
255 = signal på alla ledare
0 = ingen signal