Mam problem chodzę doszkoły elektronicznej ichcę skonstrułować jakieś urządzenie ale potrzebuje wiedzieć jak regulować napięcie na portach COM A, COM B, LTP. Bardzo proszę o wysłanie mi gotowych kodach źródłowych lub chociaż adres strony WWW, z góry dziękuje.
Jaki jezyk programowania? bo np. w TP to Port[Adres]:=Wartosc :), w Basicu tez jest łatwo, a w Delphi trzeba wstawke ASM dać, albo poszukac gotowego komponentu na np. www.torry.net :)--W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi.
mario napisał:
w delphi
mario wlasnie o to chodzi ze napisales to w drugim watku !!!! ktory wlasnie usunalem
ec_mike dnia 19.11.2002 20:43 w tym usunietym watku napisal:
Że jak?. Z poziomu programu możesz co najwyżej wystawiać 0 lub 1 na portach a nie sterować napięciami. O co dokładnie ci chodzi.
mario nie powtarzaj postow :)---=-=[ Delphi 3, 6 ]=-=-
-=-=-==[ LKS ]==-=-=-
-=[ lks16@tenbit.pl ]=-
>ec_mike dnia 19.11.2002 20:43 w tym usunietym watku napisal:
>Że jak?. Z poziomu programu możesz co najwyżej wystawiać 0 lub 1 na portach a nie sterować napięciami. O co dokładnie ci chodzi.
Czyli sterowac napieciami zmieniajac je z 0 na 5V i z powrotem:))). A jak to robic: instrukcja out asemblera, numery portow znajdz na forum, bylo nie raz. Pod Win NT/2000/XP musisz uzyc kompnentu, nie mozesz bezposrednio odwolac sie do portow.--Pawel {Delphi 6 Personal}
Po pierwsze: naciśnij F1
Napisałeś:
Czyli sterowac napieciami zmieniajac je z 0 na 5V i z powrotem
Ale od kiedy port szeregowy ma 0V lub 5V?
Niestety w wypadku szeregowego -12 i 12
--Pzdr.
W.
gavi napisał:
Niestety w wypadku szeregowego -12 i 12
[stuk] Czy tu mowa o RS-232 i o napięciach na nóżce TxD (DB25 - złącze 2; DB9 - złącze 3)??--W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi.
Dokładnie tak. Dlatego najczęściej jako bufor trzeba stosowac np.MAX232 który wytwarza za pomoca pompy ładunkowej napięcie ujemne. Czasem port daje się sterować napięciami +5V i - 5V, ale minus obowiązkowy.--Pzdr.
W.
Bartek napisał:
Napisałeś:
>Czyli sterowac napieciami zmieniajac je z 0 na 5V i z powrotem
>
>Ale od kiedy port szeregowy ma 0V lub 5V?
>
Sorry, pisalem o LPT--Pawel {Delphi 6 Personal}
Po pierwsze: naciśnij F1
Specyfikacja portu podaje dopuszczalne napięcia:
Dla logicznej 1 od -15 do -3 ( niektóre układy UART rozumieją 0V)
dla logicznego 0 od +3 do +15.
Nie ma znaczenia czy to jest TxD czy RI czy inne steryjące.
Oprócz masy oczywiście, hehehe
Wszyscy piszecie o zmianach stanu na na poszczególnych nóżkach w portach z niskiego na wysoki (nieważne, czy jest to -12..12 czy 0..5), a mario wyraźnie napisał, że potrzebuje regulować napięcie - ja to rozumiem jako płynną regulację tego napięcia. Również jestem po Elektroniku i coś niecoś na ten temat wiem. A więc:
W obroty węzmę port LPT.
Jest możliwość płynnej modyfikacji napięcia w zakresie od 0V do 5V, jednak jest wymagana bardzo prosta przystawka. (mario i tak napisał, że chce dołączyć do portu urządzenie, więc nie ma problemu). Tą przystawką jest układ całkujący dobrany do odpowiedniej częstotliwości. Natomiast na port trzeba wysyłać sygnał o tej właśnie częstotliwości, ale z różnym wypełnieniem. I teraz zmieniając płynnie wypełnienie na wyjściu układu całkującego otrzymamy płynną zmianę napięcia od 0V do 5V.
Przykład:
Jeśli przez 200us podajemy zero, a następnie przez 300us jedynkę i tak w kółko, to częstotliwość tego sygnału to 2kHz (układ całkujący powinien być policzony dla tej właśnie częstotliwości), a wypełnienie to 60%. Wynika z tego, że na wyjściu otrzymamy napięcie 5V * 60/100 = 3V.
Myślę, że wszystko jest jasne.
Pozdrawiam!--"Imagination is more important than knowledge." - A. Einstein
To się nazywa PWM. Nie wiem czy na jakiejś stronce nie ma do tego komponentów
--Pzdr.
W.
Marooned napisał:
>Myślę, że wszystko jest jasne.
Jasne. Mozna jeszcze podlaczyc D/A do portu, wtedy przy 8 liniach out mamy 256 poziomow napieciu, czyli calkiem plynnie :)))--Pawel {Delphi 6 Personal}
Po pierwsze: naciśnij F1
gavi napisał:
To się nazywa PWM.
A co to jest PWM [???]
pq napisał:
Jasne. Mozna jeszcze podlaczyc D/A do portu, wtedy przy 8 liniach out mamy 256 poziomow napieciu, czyli calkiem plynnie :)))
No tak, ale ten układ jest jakieś 27 razy droższy, potrzebuje dodatkowego zasilania, a jego poziomy są rozróżnialne podczas gdu u mnie są to dwa elementy za jakieś 50 groszy, a regulacja jest całkowicie płynna. :-)
--
"Imagination is more important than knowledge." - A. Einstein
[b]PWM[/b] - skrót od [b]Pulse Width Modulation [/b]. Metoda bardzo często stosowana do sterowania silników przez mikrokontrolery.Polega tak jak napisał Marooned ( i określa nazwa) na zmianie szerokości impusów wysyłąnych ze stałą częstotliwością. W ten sposób zmienia się wartość średnia przebiegu - wystarczy przepuścic przez filtr dolnoprzepustowy ( całkujący) Układ bardzo popularny bo tani. Niektóre procesory mają od razu zaimplementowane gotowe procedury i odpowiednio skonfigurowany hardware. :-)
--
Pzdr.
W.
pq napisał:
Jasne. Mozna jeszcze podlaczyc D/A do portu, wtedy przy 8 liniach out mamy 256 poziomow napieciu, czyli calkiem plynnie :)))
No tak, ale ten układ jest jakieś 27 razy droższy, potrzebuje dodatkowego zasilania, a jego poziomy są rozróżnialne podczas gdu u mnie są to dwa elementy za jakieś 50 groszy, a regulacja jest całkowicie płynna. :-)
--
</quote>
Nie koniecznie jest droższy.
Może byc 7 razy tańszy...
Bo najprostszy przetwornik D/A to w tym przypadku 8 rezystorów o różnych (odpowiednich wartościach) lub 16 rezystorów o tej samej wartości.
He, he, he
Ciekaw jestem czy pod Windows da sie ustawiac wartosci portu z wystarczajaca precyzja czasowa, zeby uzyskac PWM
--
Pawel {Delphi 6 Personal}
Po pierwsze: naciśnij F1
Wszyscy piszecie o zmianach stanu na na poszczególnych nóżkach w portach z niskiego na wysoki (nieważne, czy jest to -12..12 czy 0..5), a mario wyraźnie napisał, że potrzebuje regulować napięcie - ja to rozumiem jako płynną regulację tego napięcia. Również jestem po Elektroniku i coś niecoś na ten temat wiem. A więc:
W obroty węzmę port LPT.
Jest możliwość płynnej modyfikacji napięcia w zakresie od 0V do 5V, jednak jest wymagana bardzo prosta przystawka. (mario i tak napisał, że chce dołączyć do portu urządzenie, więc nie ma problemu). Tą przystawką jest układ całkujący dobrany do odpowiedniej częstotliwości. Natomiast na port trzeba wysyłać sygnał o tej właśnie częstotliwości, ale z różnym wypełnieniem. I teraz zmieniając płynnie wypełnienie na wyjściu układu całkującego otrzymamy płynną zmianę napięcia od 0V do 5V.Przykład:
Jeśli przez 200us podajemy zero, a następnie przez 300us jedynkę i tak w kółko, to częstotliwość tego sygnału to 2kHz (układ całkujący powinien być policzony dla tej właśnie częstotliwości), a wypełnienie to 60%. Wynika z tego, że na wyjściu otrzymamy napięcie 5V * 60/100 = 3V.
Ooo, tu mnie zaciekawiłeś. Mógłbyś sypnąć jakimś prostym schematem? No i jeszcze, czy ktoś może wie, w jaki sposób uzyskać tak mały odstęp czasowy, aby w odpowiednim czasie wystawić na jakiś pin 0 lub 1?
--
Delphi 6
Pozdrówka
No i jeszcze, czy ktoś może wie, w jaki sposób uzyskać tak mały odstęp czasowy, aby w odpowiednim czasie wystawić na jakiś pin 0 lub 1?
No wlasnie, zwlaszcza pod kochana Winda ktora potrafi spedzic kilka sekund na zajmowaniu sie sama soba (czyli na masturbacji??? :))), a programy czekaja...
--
Pawel {Delphi 6 Personal}
Po pierwsze: naciśnij F1
No wlasnie, zwlaszcza pod kochana Winda ktora potrafi spedzic kilka sekund na zajmowaniu sie sama soba (czyli na masturbacji??? :))), a programy czekaja...
--
Pawel {Delphi 6 Personal}
No właśnie tu jest problem. Dlatego w większosci zastosowań wykorzystuje się jako końcówkę mikrokontrolery typu 8051 czy PIC sterowane z PC-ta.
Jesli jednak zależy na taniości , stosuje się rozwiązania z bezpośrednim sterowaniem z portów. Typowym zastosowaniem są tanie programatory procesorów jednoukładowych lub EEPromów, sterowane bezposrednio z portu. Ponieważ zależnosci czasowe są tam dość krytyczne, to mimo wielu zabiegów programowych programatory te są dość zawodne , ich działanie zależy bardzo często zarówno od wersji windy jak i typu maszyny na której jest ona uruchomiona. Bliższe dane na te tematy np na grupie avt.ep.elektronika
--
Pzdr.
W.
BartekG napisał:
Nie koniecznie jest droższy.
Może byc 7 razy tańszy...
Bo najprostszy przetwornik D/A to w tym przypadku 8 rezystorów o różnych (odpowiednich wartościach) lub 16 rezystorów o tej samej wartości.
He, he, he
He, he, he, a mój układ (rzekomo droższy), to nie 8 czy 16 rezystorów a 1 opornik + 1 kondensator.
thenkles napisał:
Ooo, tu mnie zaciekawiłeś. Mógłbyś sypnąć jakimś prostym schematem? No i jeszcze, czy ktoś może wie, w jaki sposób uzyskać tak mały odstęp czasowy, aby w odpowiednim czasie wystawić na jakiś pin 0 lub 1?
Schemat układu całkującego na rezystorze i kondensatorze (bo są jeszcze np. na wzmacniaczu operacyjnym) wygląda następująco:
o---[ R ]---+----o
|
---
we C wy
---
|
o-----------+----o
R - rezystor
C - kondensator
--
"Imagination is more important than knowledge." - A. Einstein
Jezeli chcesz sterowac portem LPT to wystarczy na googlach wpisac hasla z nim zwiazane. Jak chcesz miec port o jeszcze wiekszych mozliwosciach to poszukaj o porcie LPT EPP lub enhaced parrel port. Co do COM'ów to poszukaj informacji o przerwaniu 14h biosu, mozesz kupic sobie takze baardzo dobrą ksiązke "szeregowe interfejsy cyfrowe" wy. Helion (jest w niej wszystko opisane).
--
Pozdrawia CEPA ;] !!!
C/C++ ASM
Schemat układu całkującego na rezystorze i kondensatorze (bo są jeszcze np. na wzmacniaczu operacyjnym) wygląda następująco:
No a gdybyś podał jeszcze, jakie z grubsza te elementy powinny mieć wartości, to byłoby super :)
--
Delphi 6
Pozdrówka
No a gdybyś podał jeszcze, jakie z grubsza te elementy powinny mieć wartości, to byłoby super :)
Wartości elementów zależne są od obranej częstotliwości. Stała czasowa jest równa iloczynowi wartości rezystancji R i pojemności C. t=RC, a częstotliwość to f=1/(RC). Mając daną częstotliwość i np. rezystancję obliczysz pojemność. Wychodzi z tego, że istnieje bardzo dużo par wartości tych elementów dla jednej częstotliwości, jednak jakich najlepiej użyć tego nie pamiętam. :-( Sorry
--
"Imagination is more important than knowledge." - A. Einstein
Chyba sie niedokładnie rozumiemy. Mówiąc o koszcie i komplikacji układu nie myslałem o układzie zamieniającym PWM na wartość średnią - jasne ,ze do tego starczy zwykły filtr dolnoprzepustowy - w najprostszym przypadku kondensator i opornik. Problem jest z drugiej strony - jak zamienić sygnał analogowy , sterujacy na wartość PWM. Jak już wcześniej ktos zauważył Winda nie bardzo do tego się nadaje. Nawet stosowanie wątków o najwyższym priorytecie nie rozwiązuje problemu . Stąd najczęściej dodatki hardwarowe i większe koszty. Natomiast do demonstracji zasdy działania - w sam raz
--
Pzdr.
W.
Chyba sie niedokładnie rozumiemy. Mówiąc o koszcie i komplikacji układu nie myslałem o układzie zamieniającym PWM na wartość średnią - jasne ,ze do tego starczy zwykły filtr dolnoprzepustowy - w najprostszym przypadku kondensator i opornik. Problem jest z drugiej strony - jak zamienić sygnał analogowy , sterujacy na wartość PWM. Jak już wcześniej ktos zauważył Winda nie bardzo do tego się nadaje. Nawet stosowanie wątków o najwyższym priorytecie nie rozwiązuje problemu . Stąd najczęściej dodatki hardwarowe i większe koszty. Natomiast do demonstracji zasdy działania - w sam raz
Po pierwsze - wiem, że układ całkujący i filtr dolnoprzepustowy wyglądają tak samo, ale spełniają inne zadania i raczej nie myliłbym ich w tym przypadku ;-)
A po drugie, to zgadzam się, że pod Windą trudno by było utrzymać stałą częstotliwość.
--
"Imagination is more important than knowledge." - A. Einstein
Wiem, ze pytanie dotyczylo troche czego innego, ale mi przychodzi do glowy proste rozwiazanie problemu - karta dzwiekowa. przynajmniej 65536 poziomow napiecia ustawianych z rozdzielczoscia czasowa przynajmniej rzedu 23 us na przynajmniej 2 kanalach, i sterowanie taktowane niezaleznym zegarem, wiec winda nie napsuje. Czego wiecej trzeba
--
Pawel {Delphi 6 Personal}
Po pierwsze: naciśnij F1
Po pierwsze - wiem, że układ całkujący i filtr dolnoprzepustowy wyglądają tak samo, ale spełniają inne zadania i raczej nie myliłbym ich w tym przypadku ;-)
Sorry, ale układ całkujący i filtr dolnoprzepustowy nie tylko wyglada tak samo ale i to jest to samo. Różnica dotyczy zastosowania - o układzie całkujacym mówimy w dziedzinie czasu ( wymuszenie jest impulsowe) ,a o filtrze dolnoprzepustowym w dziedzinie częstotliwosci (wymuszenie harmoniczne). I dlatego napisałem filtr - chodzi nam nie o ukształtowanie zbocza poszczególnych impulsów fali a o odfiltrowanie składowych zmiennych przebiegu i pozostawienie tylko składowej stałej ( będącej rzeczywiście całką za okres )
--
Pzdr.
W.