Sterowanie urzadzeniem przez port drukarkowy

Feb 11, 2005 34 Replies

Witam,



Mam pewien problem. Buduje urzadzenie, ktorego poszczegolne funkcje maja byc sterowane za posrednictwem komputera. Wymagana jest spora szybkosc i sporo pinow (stad wlasnie port drukarkowy a nie rs). Program do obslugi urzadzenia pisze w C++ Builderze. Czy ktos wie w jaki sposob obsluzyc przesylanie danych (lub chociaz ustawianie stanow na pinach) w porcie drukarkowym w C++ Builderze (w Windows 98)?



use a google MAN!

formatting link

Jak dużo pinów to proponował bym RS232 i mikroprocesor. W C++Builder port szeregowy bardzo łatwo się obsługuje i działa nawet pod XP.

Pozdrawiam

jak szykbosc? /czym sterujesz?

ile pinow? :)

Q napisał(a):

A wiecie moze, z jaka maksymalna czastotliwoscia mozna zmieniac stan na RS232? Bo w sumie chodzi o stroboskop.

Q napisał(a):

czestotliwosc zmiany stanow - ponad 100 Hz

16 :)

PAndy napisał(a):

Uzywalem, w pierwszej kolejnosci, ale jedyne, co znalazlem, to jak to zrobic w Bascomie :(

przez rs232 wysylasz tylko rozkaz do mikrokontrolera, np zeby ci mrugalo z

500hz, a mikrokontroler sam juz zajmuje sie zmiana stanow... a on moze to robic o rzad wielkosci szybciej niz potrzebujesz ;)

  1. koledze chodzilo o cos innego: tzn. podlaczasz do rs'a kompa jakiegos _uP_ i _uP_ robi Ci rozne cuda, a po rs'ie mowisz mu, jakie te cuda maja byc :)

np. o jakiej czestotliwosci ma generowac PWM'a, itd... czyli: przesylajac po uarcie z predkoscia 9600 bps rozkaz "wez ty mi generuj pwm'a teraz o f=100kHz", on to zrobi :)

  1. rx i tx to nie wiem - ponoc sie da zmieniac ich stan programowo, ale pod wind'a moze byc problem :(, ale rts'a mozna :)

stroboskop? to chyba nie bedziesz zadal duzej szybkosci?! :)

f - spoko, nawet by sie wycisnelo na RTS'ie :) /"norlmalne" max'y teoretycznie powinny przenosic 250-300kbp;

no ale 16 wyjsc...

ja bym to zrobil tak: uP + sterowanie po RS-232 :)

ps. jaka moc chcesz przlaczac? /jakie napiecia i prady? /nie znam sie na strobo, ale pewnie sa to male pioruny :)

Q napisał(a):

Owszem, racja, ale tylko wtedy gdy budowalbym "normalny" stroboskop. Moja koncepcja jest jednak inna. Chodzi o zbudowanie "bazy" stroboskopowej do obslugi duzej powierzchniowo sali. Do takiej bazy podlaczaloby sie max 16 stroboskopow "koncowek", do ktorych szlo by z bazy zasilanie i napiecie wyzwalajace.

Glowna koncepcja mojego programu polega na skryptowym jezyku obslugi takiej bazy. Moglbym wiec napisac program w stylu:

blink1 wait 100 blink2 wait 200 blink3 wait 300

A po jego uruchomieniu komputer wysylalby "na zywo" informacje do bazy, ktory palnik ma zapalic. Chodzi o to, ze trudno jest mi uzyskac rozne czasy odstepu pomiedzy poszczegolnymi blyskami metoda sprzetowa. Poza tym wiazaloby sie to z koniecznoscia zaladowania programu do procesora w bazie, co uniemozliwiloby mi pisanie dlugich programow. Wiem, ze ten problem moznaby rozwiazac poprzez np. dodatkowa pamiec w bazie czy cos takiego, ale zalezy mi na jak najnizszych kosztach.

guzik prawda :)

poza tym - nic nie jest "normalne" :)

wysylalbys te info po rs'ie; w czym widzisz problem?

komputer pod windowsem nie wysle Ci nic w czasie jakim chcesz; najlepiej zrobic to sprzetowo; /komp by pelnil role sterownika uP ktory sterowalby stroboskopami :)

?! /metoda softwarowa chyba; metody sprzetowe stosuje sie wlasnie wtedy, gdy bardziej zalezy nam na czasowkach (niz na kosztach :); /o ile w ogole softwarowo da sie zrobic to co chcemy :)

nierozumiem tego zdania :)

?

to kazdy rozmie :)

ja to widze, tak, ze z kompa do uC szeregowo szed³by sygna³ co i kedy odpaliæ (czyli adres konkretnego palnika i w dajmy ktorym takcie licznika) a mikroprocesor w odpowiednim czasie by to juz wykona³ - wg mnie, gdyby uzyæ np at89c51, to juz nic wiecej z ukladow cyfrowych by nie trzeba by³o -od uC od razu starowanie przez optotriaka i dalej na stroba juz ;-) mozliwe ze to zagmatwalem, ale jakby co to moge niejasnosci jeszcze wytlumaczyc

wlasnie, a jak jeszcze inaczej mozna starowac moca (inaczej niz triakiem :)? sa np. jakies takie szybkie przekazniki? /jak z kosztami? :)

nie rob se jaj :)

Q napisał(a):

Myslalem po prostu, ze na rs'ie zabraknie pinow ;] W sumie zamiast ustawiac stany, moznaby przeslac 1 bajt oznaczajacy numer palnika.

Masz racje, jezeli chodzi o dokladnosc, to na Windows nie ma co liczyc :/ Moze tak wlasnie zrobie. Chodzi o to, ze caly projekt robie razem z kolega. On zna sie na elektronice, ja na programowaniu. Jednak tylko ja mam internet, wiec pisze w jego imieniu rowniez. Specjalista od elektroniki nie jestem, wiec nie bede sie w niczym spiral. W kazdym razie dzieki za nowa koncepcje.

Softwareowo to wiem jak zrobic, tyle ze bedzie strasznie niedokladnie. A co do rozwiazania sprzetowego, to wedlug mojego kolegi, bedzie to drozej i wiecej roboty. Dlatego chcielismy rozwiazac to w ten wlasnie sposob.

Chodzilo mi o to, zeby ladowac caly program "mrugania" palnikow do uC za kazdym razem gdy zechce zmienic program. Ale to chyba nie jest najlepszy pomysl :/

Eprom na program odpowiadajacy za mruganie.

Dzieki za wszystkie uwagi. Jesli macie jeszcze jakies sugestie co do sposobu zrealizowania mojego pomyslu, to piszcie.

Pecet spokojnie zrobi 500kHz ! Bufory RS-232 niekoniecznie to przeniosa, ale 115kbaud przenosza nawet z przyzwoitymi zboczami.

Tylko ze jesli to ma byc pod windows, to nie gwarantuje nawet 100Hz :-(

No i port nie moze byc USB :-(

J.

J.F. napisał(a):

Wlasnie dlatego chce port drukarkowy a nie rs ;]

U¿ytkownik "Q" snipped-for-privacy@gazeta.gov.pl> napisa³ w wiadomo¶ci news:cui4uj$q85$ snipped-for-privacy@atlantis.news.tpi.pl...

to zalezy jaki stroboskop chcesz regulowac - na czym polega sterowanie mocy? bo jak dot±d to spotykalem sie z takm rozwiazaniem, ze zmiana mocy polegala na zmianie pojemnosci kondensatora

Z portem drukarki jest niestety dokladnie tak samo :-(

Dobrze koledzy radzili - maly procesorek, do ktorego przez RS wysylamy komendy..

J.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required