[ lazar00 @ 26.04.2009. 13:16 ] @
Zdravo !
Hteo bih da preko LPT porta upravljam elektro-motorom koji bi vrteo u jednu ili u drugu stranu ili bi mirovao sa osovinicom...
Da sumiram,ja bih preko lpt porta davao instrukcije motoru,koji bi vrsio neki posao.
Dakle,treba mi pomoc oko pisanja programa kojim cu moci da upravljam LPT portom,tj. njegovim pinovima...
Ako neko moze da mi da informaciju kako da napisem program ili da mi da upute i putanje gde da trazim bio bih mnogo zahvalan !
[ kiklop74 @ 27.04.2009. 19:58 ] @
http://logix4u.net/Legacy_Port...for_Windows_98/2000/NT/XP.html
[ lazar00 @ 27.04.2009. 22:11 ] @
moze li neko bolje resenje ?
[ savkic @ 28.04.2009. 11:23 ] @
Zvaničan Windows API za rad sa LPT portom su CreateFile, ReadFile, WriteFile. Evo primera za slanje, doduše urađen Pascalu ali verujem da će ti dati ideju.

Code:

DirectPrint('C:\Tmp.dat', 'LPT1'); // Možda treba staviti "LPT1:".

procedure DirectPrint(const AFile, ADest: string);
var
  BytesWritten: DWORD;
  hPrinter: THandle;
  Source: TMemoryStream;
begin
  hPrinter := CreateFile(PChar(ADest), GENERIC_READ or GENERIC_WRITE, 0, nil, OPEN_EXISTING, 0, 0);

  if hPrinter = INVALID_HANDLE_VALUE then
    Exit;

  Source := TMemoryStream.Create;
  try
    Source.LoadFromFile(AFile);
    Source.Position := 0;
    WriteFile(hPrinter, Source.Memory^, Source.Size, BytesWritten, nil);
  finally
    Source.Free;
  end;

  CloseHandle(hPrinter);
end;
[ madwolf @ 28.04.2009. 14:41 ] @
Pazi, ja mislim da je ova biblioteka sasvim OK. Nisam radio, ali sam citao o njoj i pogledao source malo - koji je otvoren pa ako znas izvoli menjaj. E sad, druga prica je kako ces ti da gonis motor na Windowsu u realnom vremenu na 5ms 10 ms ili tako vec nesto. To je vec gimnastika. C++ - napravi wrapper oko dll funkcija. Kako si zamislio da gonis motor preko paralelnog? LPT -> energetika -> motor? Sa LPT da saljes pos. impulse i direction? Ili drugacije?

Pozdrav,
Milan.
[ lazar00 @ 28.04.2009. 15:17 ] @
Mislio sam na lpt portu da setujem pin koji ce dati signal za pokretanje motora,a na drugom pinu lpt porta bi posmatrao br. obrtaja tog motora (pulse).Definisanjem br. okretaja (impulsa) kontrolisacu rad motora.
Motor bi bio pogonjen sopstvenim,nezavisnim napajanjem,a izmedju lpt-a i motora bi stavio odgovarajuci bufer.
Problem je u tome sto ne znam koja bibilioteka u c/c++ bi bila najpogodnija za ovakav pristup problemu.


P.S.Takodje molim ako imas/te neke linkove koji se bave upravljanjem externih uredjaja (motora,relea...),da postavite.

Pozdrav,Lazar
zzzzzzzzz
[ madwolf @ 28.04.2009. 18:10 ] @
Pokretanje: ON/OFF , 1/0? "a na drugom pinu lpt porta bi posmatrao br. obrtaja tog motora (pulse).Definisanjem br. okretaja (impulsa) kontrolisacu rad motora." molim te objasni mi kako si ovo smislio da izvedes... Kakav bafer nameravas da metnes? Da das strujni kapacitet ttl signalima? Iskreno, ne razumem te...

Pozdrav,
Milan.
[ lazar00 @ 29.04.2009. 18:44 ] @
Lpt kotistim samo za upravljanje.Izmedju lpt i motora bih postavio neki bafer,tj. neki razdvojni stepen,koji bi jednostavno reagovao na signale iz lpt i na taj nacin upravljao radom motora.
Takodje zelio bih da iskoristim ulazne pinove lpt-a za kontrolu stanja (npr.izvrsenog broja obrtaja motora).

Znaci,lpt ne bi imao strujni nego samo signalni kapacitet,ako na to mislis.

Konkretno,najvise me interesuje koja biblioteka bi bila najpodesnija za ovakav pristup ovom problemu.

E sada,potrebna mi je pomoc oko pisanja programa kojim bi na moju komandu setovao jedan pin lpt-a sto bi kao rezultat imalo pokretanje motora,
dok se ne ispuni uslov po pitanju br. obrtaja,a koji bi signilazirao npr.mikro-prekidac na osovini motora koji je spojen na neki ulazni pin lpt-a.

Hvala ti u svakom slucaju sto se trudis da mi pomognes !

Pozdrav,Lazar !
zzzzzzzzzzzzzzzz
[ peromalosutra @ 08.05.2009. 09:23 ] @
Nigdje nisi rekao koji operativni sistem koristis. Na Linuxu je ovo prilicno jednostavno, nakon ukljucivanja odgovarajuce biblioteke, koristis samo funkciju outb() koja postavlja 8 izlaznih data pinova u skladu sa binarnom reprezentacijom prosledjenog broja, znaci pitanje je jedne linije koda. :) Za ulaz takodje postoji funkcija inb(), ali sa ovim se nisam igrao. Ja sam radio nesto slicno sa LED diodama, mozes pogledati na mom sajtu kako je odradjeno ( http://computer-stuff.freehostia.com/index.php?id=26&m= ).
[ lazar00 @ 08.05.2009. 12:25 ] @
koristim i linux i windows,sve zavisi sta mi treba...

a mislio sam da napravim aplikaciju koja ce moci da radi pod bilo kojim OS-om...


cilj mi je da naucim da upravljam portovima...

pogledacu sajt,pa ti se javim!

hvala puno

lazar

zzzzz
[ zaraza @ 08.05.2009. 12:40 ] @
Citat:
koristis samo funkciju outb() koja postavlja 8 izlaznih data pinova u skladu sa binarnom reprezentacijom prosledjenog broja


Ovu funkciju sam koristio na Win98 i radi kako treba. Za XP ne znam, od tada se nisam bavio time.
[ madwolf @ 08.05.2009. 13:36 ] @
Citat:
zaraza: Ovu funkciju sam koristio na Win98 i radi kako treba. Za XP ne znam, od tada se nisam bavio time.


Da, na Win98 ovo radi, jer kod njega iz User moda mozes da pristupis portovima... WinXP to ne da. Zato je jedan sef napisao biblioteku za WinXP, koja se pominje par mejlova gore, inout32.dll ili nesto slicno...

Citat:
lazar00: Lpt kotistim samo za upravljanje.Izmedju lpt i motora bih postavio neki bafer,tj. neki razdvojni stepen,koji bi jednostavno reagovao na signale iz lpt i na taj nacin upravljao radom motora.
Takodje zelio bih da iskoristim ulazne pinove lpt-a za kontrolu stanja (npr.izvrsenog broja obrtaja motora).

Znaci,lpt ne bi imao strujni nego samo signalni kapacitet,ako na to mislis.

Konkretno,najvise me interesuje koja biblioteka bi bila najpodesnija za ovakav pristup ovom problemu.

E sada,potrebna mi je pomoc oko pisanja programa kojim bi na moju komandu setovao jedan pin lpt-a sto bi kao rezultat imalo pokretanje motora,
dok se ne ispuni uslov po pitanju br. obrtaja,a koji bi signilazirao npr.mikro-prekidac na osovini motora koji je spojen na neki ulazni pin lpt-a.

Hvala ti u svakom slucaju sto se trudis da mi pomognes !

Pozdrav,Lazar !
zzzzzzzzzzzzzzzz


Kakva ti je energetika? Sta je ulaz u nju? H-most ili nesto slozenije... ? Imas enkoder? Imas - treba ti brojac koji ce da broji impulse i na primer na svom izlazu da ima paralelni izlaz koji ce da ide na lpt nekako (ponovo ti treba dodatna logika). S druge strane, moguce je da ja razmisljam komplikovano :)
Lakse bi bilo kada bi malo detaljnije prvo opisao sta ti sve imas, kako si mislio da povezes delove, pa veza sa kompom itd. A ako hoces da vezbas LPT - diode su zakon :)

Pozdrav,
Milan.
[ deerbeer @ 08.05.2009. 13:46 ] @
@lazar00
Pogledaj ovde :http://www.codeproject.com/KB/system/PaPiC.aspx?display=Print
Wrapper klasa za rad sa LPT portom koja se oslanja na biblioteku logix4 ciji je link okacio @kiklop74 na pocetku teme .