8-kanałowa karta przekaźników na RS232

Poniższy projekt powstał jako część domowej automatyki. Jest to karta przekaźników sterowana poprzez port RS232 komputera która może zostać dodatkowo rozbudowana o 5 wejść. Opisywany projekt to kompletne rozwiązanie zawierające część sprzętową wraz z firmwarem jak i część programową (PC) na która składa się konsolowy program (linux) do sterowania, biblioteka dla języka php oraz okienkowa aplikacja napisana w javie/swing.

Hardware

Można by powiedzieć że jest on typowy – mikrokontroler, driver max232, karta przekaźników. Mimo wszystko postaram się pokrótce opisać zasadę działania sterownika i części wykonawczej.
Na rysunku poniżej widać schemat części sterownika karty.

Głównym jego elementem jest mikrokontroler AT90S2313 (U1) taktowany kwarcem 10,7 Mhz (Q1, C1, C2). Następnie mamy driver rs232 typu MAX232 wraz z elementami towarzyszącymi C3,C4,C5,C6 którego wyjście jest wyprowadzone na gniazdo DB9 typu męskiego (aby połączyć układ z komputerem należy korzystać z kabla z przeplotem, tzw. Null-modem). Dalej reset mikrokontrolera podciągnięty do plusa zasilania, a port B (piny PB) poprzez rezystory ograniczające prąd (R2-R9) podane na tranzystory sterujące przekaźnikami i diodami LED – T1..T8. Tranzystory te pracują w układzie wspólnego emitera (wzmocnienie prądowe jest większe od jedności). Z kolektorów tych tanzystorów sygnał jest podawany na 8 identycznych bloków przekaźników które wyglądają jak na rysunku poniżej.

Każdy blok składa się z przekaźnika wraz z diodą prostowniczą (na rysunku powyżej D9). Dioda ta służy do wytracenia energii impulsu wyindukowanego w cewce przekaźnika, wytworzonego podczas nagłego przerwania jej zasilania. Oprócz tego, w każdym bloku znajduje się dioda LED (D1) wraz z rezystorem ograniczającym prąd (R10). Styki samego przekaźnika zostały połączone równolegle tak aby zwiększyć dopuszczalny prąd przez nie płynący.

Firmware

Program dla mikrokontrolera został napisany w języku C a skompilowany przy pomocy avr-gcc a następnie wgrany do pamięci układu przy pomocy programatora USBasp.
Procedury odpowiedzialne za komunikację, podobnie jak część sprzętowa, są typowe, można by powiedzieć że książkowe i wyglądają jak poniżej.

#define UART_BAUD 9600				/* serial transmission speed */

void UART_putchar(char c)
{
	UDR = c;
	loop_until_bit_is_set(USR, TXC);
	sbi(USR, TXC);
} // end of UART_putchar()

char UART_getchar(void)
{
	loop_until_bit_is_set(USR,RXC);
	cbi(USR,RXC);
	return UDR;
} // end of UART_getchar()

void UART_init()
{
	UBRR = (unsigned char)UART_CONST;		//spped
	UCR = _BV(RXEN)|_BV(TXEN);	//RXEN - permit recive, TXEN - permit send, RXCIE - interrupt on recive
} // end of UART_init()

Jak widać w fragmencie powyższego kodu, mamy 3 procedurki: UART_init(), UART_putchar() oraz UART_getchar(), które służą kolejno do skonfigurowania, wysłania znaku oraz odebrania znaku. Oprócz tego jest jeszcze jedna ważna stała UART_BAUD która określa prądkość komunikacji i jest ustawiona na 9600.
Procedura UART_init() składa się jedynie z dwóch linijek, w pierwszej przypisywana jest do rejestru UBRR żądana prędkość transmisji, natomiast w drugiej ustawiamy bity RXEN i TXEN rejestru UCR, które odpowiednio uaktywniają nadawanie i odbieranie (jak można wywnioskować z ich nazw RX/TX recive/transmit, EN – enable).
Procedura UART_putchar() przyjmuje jeden parametr, którym jest znak który ma zostać wysłany. Znak ten jest przypisywany do rejestru UDR a następnie wykonywana jest pętla tak długo aż zostanie ustawiony bit TXC w rejestrze USR co oznacza wysłanie znaku.
Procedura UART_getchar() działa podobnie, z tym że tutaj najpierw wykonywana jest pętla tak długo aż zostanie ustawiony bit RXC w rejestrze USR co oznacza nadejście znaku, a następnie ten znak zostaje zwrócony.
Oprócz samej komunikacji został jeszcze w mikrokontrolerze zaprogramowany prosty protokuł, który składa się z dwóch komend. Pierwsza z nich służy do ustawiania stanów na porcie PB (włączania i wyłączania przekaźników) druga do odczytu aktualnego stanu urządzenia.
Poniżej fragment przykładowej sessji w której zostają włączone przekaźniki PK1 oraz PK6, a następnie urządzenie zostaje poproszone o zwrócenie aktualnego stanu.


s10000100sOK
g10000100

Jak widać powyżej, wysyłamy do urządzenia ciąg znaków 0 i 1 (są to znaki nie liczby!) reprezentujące kolejne wyjścia urządzenia i tak kolejno 0 oznacza przekaźnik wyłączony natomiast 1 oznacza przekaźnik włączony. Ponadto ciąg zer i jedynek jest rozpoczęty i zakończony znakiem ‘s’. W odpowiedzi odtrzymujemy 4 znaki kolejno: ‘OK\n\r’ jeśli operacja została wykonana poprawnie, natomiast jeśli coś poszło by nie tak w samym urządzeniu, zwróciło by ono ciąg znaków: ‘Error 2\n\r’ lub ‘Error 3\n\r’.
W następnej linijce powyższego przykładu mamy odczyt aktualnego stanu urządzenia. Wysyłany jest znak ‘g’ natomiast w odpowiedzi otrzymujemy 8 znaków, zer i jedynek, które reprezentują stany kolejnych portów urządzenia.
Reasumując można by powiedzieć że mamy dwie komendy ‘s’ (set) oraz ‘g’ (get). W przypadku gdy do układu zostanie wysłany jakiś inny – niezrozumiały, ciąg znaków zostanie zwrócony ciąg znaków: ‘Error 0\n\r’. Tak mniej więcej wygląda cały protokół komunikacyjny.

Software

Od strony komputer / serwera, zostały przygotowane 3 różne aplikacje, konsolowy program dla środowiska linux, aplikacja okienkowan napisana w Javie/Swing, oraz klasa w php umożliwiająca sterowanie za pośrednictwem interfejsu www – to rozwiązanie jednak wykorzystuje oprogramowanie ser2net jako proxy.

Aplikacja konsolowa dla linux-a

Aplikacja ta umożliwia sterowanie urządzeniem oraz odczytywanie jego stanów z poziomu konsoli. Osobiście wykorzystuję tą aplikację w swoich skryptach cron’a – mam w ten sposób zorganizowany budzik – o odpowiedniej godzinie włącza się wzmacniacz podłączony do karty dźwiękowej domowego serwerka a następnie zostaje odtworzona playlista przy pomocy MPD.
Opcje dostępne w tym programie wyglądają następująco:


$ ./io_card
Usage: ./io_card -p port [-s (8bit data)] [-g] [-1..8 (on|off)]

-p 	ścieżka do portu np. /dev/ttyS0 lub /dev/ttyUSB0 itp.
-s	ustawienie wyjść, jako parametr podajemy odpowiedni ciąg 8 zer i jedynek
-g	pobiera aktualny stan urządzenia, w tym przypadku zwracany jest ciąg 8 zer i jedynek
-1..8	ustawienie lub skasowanie wyjścia od 1 do 8. Jako parametr możemy podać on lub off.

Przykładowo, aby załączyć przekaźniki 4 i 6 możemy wykonać takie polecenie:

$ ./io_card -p /dev/ttyUSB0 -s00010100
OK

lub możemy to zrobić tak:


$ ./io_card -p /dev/ttyUSB0 -4 on -6 on
OK

teraz aby odczytać aktualny stan:


$ ./io_card -p /dev/ttyUSB0 -g
00010100

następnie aby wyłączyć przekaźnik numer 4 i włączyć przekaźniki 1 i 2 możemy wykonać polecenie:


$ ./io_card -p /dev/ttyUSB0 -4 off -1 on -2 on
OK

W załączniku na dole tego artykułu znajduje się spakowany plik zawierający między innymi tą aplikację wraz kodem źródłowym.

ser2net i PHP

Aby skorzystać z klasy napisanej w php należy najpierw zainstalować i skonfigurować program ser2net. Wybrałem taką właśnie metodą komunikacji ponieważ jest ona bardziej uniwersalny, odpowiednio konfigurując ser2net możemy wystawić urządzenie na jakimś adresie zewnętrznym i kontrolować je zdalnie przy pomocy innej aplikacji klienckiej.
I tak, aby zainstalować w ubuntu w/w program, musimy wykonać polecenie:


sudo apt-get install ser2net

Po wykonaniu tego polecenia zostaje ściągnięty a następnie zainstalowany pakiet ser2net, po czym możemy przystąpić do jego konfiguracji.
W pliku /etc/ser2net.conf należy dodać linijkę jak poniżej:


localhost,3000:telnet:600:/dev/ttyUSB0:9600 8DATABITS NONE 1STOPBIT

Możemy ją odczytać jako: wystaw port /dev/ttyUSB0 na porcie 3000 localhost`a, prądkość transmisji to 9600, 8 bitów danych, 1 bit stopu, brak sprzętowej kontroli.
Zmieniając odpowiednio ścieżkę do porty, oraz host i port można dostosować działanie ser2net do własnych potrzeb.
Po zapisaniu pliku musimy zrestartować deamon ser2net, możemy to zrobić przy pomocy poniższego polecenia:


sudo /etc/init.d/ser2net restart

Po tym zabiegu mamy na localhost:3000 zmapowany port /dev/ttyUSB0, możemy zatem przejść do zabawy z php.
W załącznikach na dole artykułu została dodana klasa php IoCart, która udostępnia następujący interfejs:

  • IoCart::__construct($strHost, $strPort) – konstruktor, jako parametry podajemy host i port na jakim nasłuchuje ser2net
  • IoCart::close() – zamknięcie połączenia
  • IoCart::getStatus() – pobieranie aktualnego stanu urządzenia, wartość zwracana to string składający się z 8 znaków – zer i jedynek
  • IoCart::checkStatus($intPortNumber) – sprawdzanie aktualnego stanu jednego wybranego porty – $intPorNumber, wartość zwracana to odpowiednio boolowskie true lub false
  • IoCart::setPort($intPort, $bolState) – ustawienie jednego wybranego portu, $intPort – numer portu od 1 do 8, $bolState – wartość boolowska oznaczająca włączony lub wyłączony dany port
  • IoCart::set($strByte) – ustawienie wszystkich portów naraz, jako parametr przyjmuje odpowiedni ciąg zer i jedynek, reprezentujący zadane stany kolejnych przekaźników.

Poniżej zrzut ekranu oraz kod przykładowego działającego skryptu (również dołączony do pczaki zip).



<?php 
 
include "IoCart.php";
 
$objCard = new IoCart('localhost',3000);

 if(isset(
$_POST['change']) && $_POST['change']=='1' && isset($_POST['value']) && isset($_POST['port']))
 {
    
$objCard->setPort($_POST['port'], $_POST['value']=='1' true false);
 }

?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
                      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
 <head>
    <title>8 bit IO Card Example</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
 </head>
<body>
    <table border="1" align="center" cellpadding="15"> 
        <tr>
<?php 
 $strStatus 
$objCard->getStatus(); 
 for(
$intI=0$intI 8$intI++):
?>
            <td>Port <?= ($intI+1).': '.($strStatus[$intI]=='1' 'On' 'Off'?></td>
<?php endfor; ?>
        </tr>
        <tr>
<?php 
 
for($intI=0$intI 8$intI++):
?>
            <td align="center">
                <form action="" method="post">
                    <input type="hidden" name="port" value="<?= $intI+1?>" />
                    <input type="hidden" name="value" value="<?= ($strStatus[$intI]=='1' '0' '1'?>" />
                    <input type="hidden" name="change" value="1" />
                    <input type="submit" value="<?= ($strStatus[$intI]=='1' 'Off' 'On'?>" />
                </form>
            </td>
<?php endfor; ?>
        </tr>
    </table>
</body>
</html>

Aplikacja okienkowa

No i na koniec mały smaczek, aplikacja okienkowa w javie. Skompilowana również dostępna w załączniku.

Jak już prędzej wspominałem jest ona oparta na javie/swingu, oraz wykorzystuje do komunikacji bibliotekę RXTXcomm. Biblioteka ta jest również dołączona w pliku zip w katalogu lib. Jest to wersja .so jak i dll, niestety nie testowałem działania tego programu pod windowsem, jednak powinien on działać poprawnie 😉

Nie dołączam pełnych źródeł tej aplikacji ponieważ oprócz klasy SerialHandler cała reszta to w zasadzie interfejs graficzny, który każdy kto zna choć trochę jave może sobie napisać (wyklikać) według własnego uznania i dostosowany do własnych potrzeb.

Uwagi końcowe

Oczywiście w tym całym mini-projekcie jest kilka mniejszych lub większych mankamentów lub wręcz błędów projektowych, których jestem świadomy (jak np. Nie najlepiej zaprojektowane pcb, brak kondensatorów filtrujących, brak układu resetu), samo oprogramowanie na PC również jest napisane na szybko i byle jak. Całość jednak działa i spełnia swoją rolę.

Jeśli ktoś był by zainteresowany zakupem całego układu w postaci kit`u (lub zmontowanego układu) lub chciał uzyskać dodatkowe informację lub pomoc podczas uruchomienia, zapraszam do kontaktu 😉

Załączniki

  • main.hex – wsad do konktrolera
  • board_v2.ps – Płytka drukowana (PostScript)
  • board_v2_mirror.ps – Płytka drukowana – odbicie lustrzane (PostScript)
  • IO_Karta.zip – załącznik z wszystkimi plikami, wzorem pcb, schematem oraz aplikacjami klienckimi i wsadu.

Galeria

41 odpowiedzi na “8-kanałowa karta przekaźników na RS232”

  1. Marek pisze:

    Jest Pan pozytywnie zakręcony,co czyni tez Pana użytecznym dla równie zakręconych,poprzez to że dzieli się Pan swoimi osiągnięciami ułatwiając “drogę poznania” innym zakręconym.Pozdrawiam i życze owocnego tworzenia.

  2. leniwiec pisze:

    Dziękuję.
    Staram się na ile czas na to pozwala 😉

  3. BigBen pisze:

    A jak wygląda sprawa z chłodzeniem stabilizatora? Wykonałem podobne urządzenie i niestety stabilizator bardzo się grzał. Jak to wygląda u ciebie?

  4. leniwiec pisze:

    Generalnie, to zależy jakim napięciem zasilasz układ, a co za tym idzie jaki ‘drop down’ jest na stabilizatorze.
    Układ pobiera ok. 700mA, tak że przy zasilaniu z transformatorka o napięciu wtórnym 5V, mam po wyprostowaniu ok. 7V które jest podawane na stabilizator… wynika z tego że u mnie jest ok. 2V “gubione” w stabilizatorze. Przy ok. 700mA które pobiera układ z wysterowanymi wszystkimi wyjściami daje to ok. 1,5-2Waty które zmieniają się w ciepło…

    U mnie, mała blaszka przykręcona do stabilizatora daje rade odprowadzić to ciepło 🙂

  5. xxxxxxxxx pisze:

    witam bardzo pożyteczna rzecz czy koszt jest duży bo chętnie sobie takie cacko do kompa zrobię

  6. leniwiec pisze:

    Najdroższe są przekaźniki. Cała reszta to drobnica, tak że one decydują w znacznym stopniu o cenie całości 😉

  7. brombal pisze:

    jeśli jest to standardowy stabilizator to powinno być min 3 v więcej na wejściu czyli min 8 v druga sprawa to po co dawać na przekaźniki napięcie stabilizowane przecież można je zasilić napięciem z przed stabilizatora i nie obciążać stabilizatora i wtedy nawet bez radiatora da rade poza tym nie powinno się mostkować styków przekaźnika to że pojedynczy styk ma możliwość łączenia np 8 amperów to nie oznacza to ze po zmostkowaniu przeniesie 16, po za tym projekt mi się podoba .

  8. leniwiec pisze:

    BROMBAL: Absolutnie się z tobą zgadzam! 😉 Z tym że te przekaźniki są na 5V, a czasem układ był zasilany napięciem dużo wyższym… W moim konkretnym przypadku nigdy nie było sytuacji aby w tym samym czasie był włączony więcej niż 1 max. 2 kanały, tak że stabilizator się nie męczył. Oczywiście jeśli wszystko miało by być zgodnie z sztuką należało by zmienić to co opisałeś + jeszcze kilka innych rzeczy. Jestem tego świadomy i o tym napisałem na końcu wpisu.

  9. Krzysztof pisze:

    Witam,
    szukam właśnie sterownika o podobnych parametrach. Interesuje mnie orientacyjna cena urządzenia- jeśli będzie konkurencyjna do ceny fabrycznych sterowników to jestem zainteresowany. Interesuje mnie jedynie urządzenie, soft od strony kompa napisałbym sobie sam.

    Pozdrawiam i proszę o kontakt.
    K.K.

  10. Rafal pisze:

    Witam,
    fajny projekt. Gdyby nie potrzebne były wejścia to starczył by rejestr przesuwny prosto do com’a i krótki programik na kompie.

  11. bootstrap pisze:

    Nice looking job, tidy. I have a question. The LED wiring in the diagram seems odd – it will draw current through the relay coil when the transistor is off. Is this how you wired them?

  12. leniwiec pisze:

    @bootstrap there are bug on the diagram. Of course led should be connected to the Vcc not ground. And on the pcb it is correctly. Later I will fix this on schematic. But thank you for that 🙂

  13. Piotrek pisze:

    Świetny projekt.
    Mam pytanko: czy można zbudować tego typu urządzenie, ale żeby było około 50 wyjść ?

  14. leniwiec pisze:

    @Piotrek: można

  15. Piotrek pisze:

    A gdzie szukać więcej info ?
    Chciałbym sterować sześcioma pomieszczeniami (gniazdka+ oświetlenie+inne rzeczy przez on/off)
    Jako “mózg” PC na Linuksie. Sterowanie poprzez przeglądarkę.

  16. leniwiec pisze:

    Piotrek: można podłączyć kilka rejestrów przesuwny np. 74HC595 i podawać dane szeregowo, cała reszta zostaje tzn. blok przekaźnik+tranzystor sterujący. Tutaj: https://www.leniwiec.org/2010/12/26/swieta-z-arduino-czyli-gramy-koledy/ pisałem jak taki rejestr się podłancza i obsługuje. Jak byś potrzebował więcej informacji to wal śmiało 😉

  17. Piotrek pisze:

    Zastanawiałem się nad rozwiązaniem:
    1.jedno pomieszczenie, a w nim:
    -karta wyjść
    -w każdym gniazdku układ wykonawczy http://mirley.firlej.org/wykonawczy_triak
    -oświetlenie na triaku lub przekaźniku

    Wszystko spiąć na RS485.
    W pięciu pomieszczeniach wystarczy mi karta z 8 wyjściami. A w jednym potrzebowałbym 24 wyjścia na karcie.

    Co sądzisz o takim pomyśle ?

    Od paru dni chodzi mi to wszystko po głowie, im więcej szukam w Internecie tym większy mam mętlik w głowie ;(

  18. leniwiec pisze:

    Piotrek: domyślam się że to “inteligentny dom” 😉
    imo.RS485 jak najbardziej ok, tylko zrobic go izolowanym galwanicznie.
    Jeśli robisz tylko on/off to postawil bym na dobre jakosci przekazniki. Jak cos sie popsuje z triakiem, to bedziesz mial sciane przy puszce do malowania 😉 Oświetlenie to samo, jeśli niechcesz regulować plynnie jasnosci, to lepiej dac przekaznik.
    Napisz coś więcej o całym projekcie, to coś jeszcze poradzimy 😉

  19. Piotrek pisze:

    Ogólnie to nie ma żadnego jeszcze projektu. Jakiś czas temu zacząłem “bawić” się portem LPT i 8 kanałami. Ale tak sobie pomyślałem, mam 8 kanałów to dlaczego nie mieć więcej ;D No i tak sobie wymyślam. Fakt, chciałbym, aby mój dom (mieszkanie) był bardziej inteligentny 🙂
    Jak narazie wystarczy mi samo on/off-może kiedyś zmienię założenia, ale od czegoś trzeba zacząć… Żadnego płynnego przyciemniania światła nie potrzebuje.
    Znalazłem w sieci takie płytki: http://www.cncpro.pl/?11,karta-przekaznikow po lektórze na stronie wydaje mi się, że byłoby to idealne dla mnie rozwiązanie.
    Czy to możliwe, że tam nie ma żadnego mikrokontrolera, czy ja źle widzę ?

  20. leniwiec pisze:

    @Piotrek: jest, pewnie od spodu powierzchniowo zamontowany, nawet widać na zdjęciu rezonator wystający 😉

  21. Piotrek pisze:

    Przepraszam, że tak męczę…
    Mógłbyś mi pomóc znaleźć jakieś materiały na temat takiej płytki ?

  22. leniwiec pisze:

    @Piotrek: co dokładnie masz na myśli? (jakie materiał chciał byś dostać;)

  23. Piotrek pisze:

    Nie tyle dostać co pomoc w znalezieniu materiałów na temat płytki jaką pokazałem w linku. Nie bardzo wiem jak się za to zabrać, jakie scalaki i w ogóle. Takich projektów jak Twój, gdzie jest opisane co z czym i jak jest jest zrobione jest bardzo mało w sieci, albo ja coś źle szukam.

  24. leniwiec pisze:

    @Piotrek: to fakt, mało jest projektów opisanych a nie tylko przedstawionych. Ten projekt z cncpro różni się w zasadzie tylko tym RS485 od mojego… Postaram się w najbliższym czasie dorobić taki interfejs do mojej karty i podeśle rozwiązanie z opisem 😉

  25. Piotrek pisze:

    Byłbym przeogromnie wdzięczny 😉 Z góry dziękuje…
    A może inaczej. Czy Twoja kartę można obsługiwać z większej odległości ? Czy RS232 do tego się nadaje ? Chciałbym w każdym z moich pomieszczeń “zainstalować” taką kartę, a później sterować z jednego miejsca tym wszystkim.

  26. wojtekms pisze:

    Witam.
    Czy kwarc może być inny ?
    Jeżeli tak, to jaki ?
    Najlepiej coś co jest dostępne w sklepie lispol.com (przepraszam za reklame)

  27. wojtekms pisze:

    Jeszcze małe pytanko…
    Czy można podłączyć więcej niż jedna taką kartę do PC ?
    Jak w takim przypadku nimi sterować ?

  28. leniwiec pisze:

    @wojtekms: może być, ale należało by skompilować na nowo wsad do procka. Można, podłączyć więcej kart, podłączając każdą z nich do innego porty szeregowego. Można też, jeśli potrzeba więcej wyjść, po prostu kartę rozbudować o kolejne wyjścia 😉

  29. WOJTEKMS pisze:

    Czy kwarc to ma być dokładnie 10,70 ? Tak tylko dla pewności…

    Czy można prosić o spis elementów ?

  30. piotrek pisze:

    Zrobiłem sobie płytkę i mam prawie wszystkie części.
    Dziś chcę zamówić resztę i pojawił się mały problem z uC.
    Czy AT90S2313 mogę zastąpić ATTINY2313V-10PU ?

  31. leniwiec pisze:

    @WOJTEKMS tak, rezonator dokładnie taki, dla innego należało by przekompilować wsad na nowo

  32. leniwiec pisze:

    @piotrek tak, należy tylko pamiętać o fusebitach itp.
    AT90S2313 już nie jest produkowany i został właśnie zastąpiony przez attiny2313, ja użyłem akurat tego pierwszego bo miałem pod rękom 😉

  33. K pisze:

    Masz błąd w schematach – VDD to oznaczenie na dodatni biegun zasilania, a u Ciebie usilnie takie połączenia przypominają masę.

  34. bob pisze:

    Czy to może działać z Global Cache GC-100-06, GC-100-12?

  35. maciej pisze:

    Witam.
    Gratuluje świetnego projektu. Pozwoliłem sobie skorzystać z opracowanego przez Pana układu. Wszystko działa-mam tylko inne przekaźniki.
    Proszę mi powiedzieć jak uruchomić te dodatkowe 5 wejść i jak z nich korzystać.
    Jeszcze raz dziękuje za materiały. Pozdrawiam Maciej S.

  36. leniwiec pisze:

    @K: tak wiem, miałem zmienić ale czasu brakuje, wszystko przez to że korzystam z “protezy” programu do projektowania i brakuje symboli…

    @Maciej: Trzeba tak naprawdę napisać nowy program do procka, jeśli nie wiesz jak się za to zabrać napisz do mnie maila i postaram się jakoś pomóc 😉

  37. jajen pisze:

    Czy karta zapamiętuje stan przekaźników po zaniku napięcia?

  38. leniwiec pisze:

    @JAJEN: nie, jednak to kwestia zmiany softu tak że można bezproblemowo taką funkcję dodać 😉

  39. jajen pisze:

    A czy można prosić o zmodyfikowanie w wolnej chwili softu w tym kierunku? To bardzo przydatna funkcja. Wlasciwie niezbedna przy sterowaniu powazniejszymi urządzeniami.

  40. Jacek pisze:

    Cześć wszystkim, cześć @Leniwiec! Na leniwego to nie wyglądasz )) Gratuluję pomysłu na projekt. Fajny i funkcjonalny ! Ja obecnie projektuję sobie rozwiązanie /ostatnio modne )/ “dom inteligentny”… Problem polega na tym że jestem informatykiem i elektroniki “liznąłem” trochę a strasznie mnie interesuje zbudowanie układu takiego jak ten ale z dodatkowymi funkcjami. Sterowanie RS232. Czy byłbyś gotów przyjąć zlecenie (odpłatnie oczywiście) na zaprojektowanie układu podobnego do twojego tu zaprezentowanego? Jak jesteś zainteresowany to daj info na maila to napiszę szczegóły. Dzięx)

  41. Tomasz pisze:

    Cześć
    Jestem zainteresowany zaprogramowanym prockiem i programem sterującym, jeśli jesteś zainteresowany do proszę o informację na maila (oczywiście odpłatnie).

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *