www.leniwiec.org

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 KOMENTARZY
Marek
24 czerwiec 2011
ad

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.

leniwiec
24 czerwiec 2011
ad

Dziękuję.
Staram się na ile czas na to pozwala ;)

BigBen
25 czerwiec 2011
ad

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?

leniwiec
25 czerwiec 2011
ad

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 :-)

xxxxxxxxx
24 sierpień 2011
ad

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

leniwiec
24 sierpień 2011
ad

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

brombal
13 listopad 2011
ad

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 .

leniwiec
13 listopad 2011
ad

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.

Krzysztof
14 listopad 2011
ad

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.

Rafal
2 styczeń 2012
ad

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.

bootstrap
13 luty 2012
ad

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?

leniwiec
13 luty 2012
ad

@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 :-)

Piotrek
1 kwiecień 2012
ad

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

leniwiec
1 kwiecień 2012
ad

@Piotrek: można

Piotrek
1 kwiecień 2012
ad

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ę.

leniwiec
1 kwiecień 2012
ad

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: http://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 ;-)

Piotrek
1 kwiecień 2012
ad

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 ;(

leniwiec
1 kwiecień 2012
ad

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 ;-)

Piotrek
2 kwiecień 2012
ad

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ę ?

leniwiec
2 kwiecień 2012
ad

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

Piotrek
2 kwiecień 2012
ad

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

leniwiec
4 kwiecień 2012
ad

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

Piotrek
4 kwiecień 2012
ad

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.

leniwiec
4 kwiecień 2012
ad

@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 ;-)

Piotrek
4 kwiecień 2012
ad

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.

wojtekms
29 maj 2012
ad

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)

wojtekms
29 maj 2012
ad

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

leniwiec
29 maj 2012
ad

@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 ;-)

WOJTEKMS
3 czerwiec 2012
ad

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

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

piotrek
6 czerwiec 2012
ad

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 ?

leniwiec
6 czerwiec 2012
ad

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

leniwiec
6 czerwiec 2012
ad

@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 ;-)

K
5 lipiec 2012
ad

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

bob
28 lipiec 2012
ad

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

maciej
30 lipiec 2012
ad

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.

leniwiec
31 lipiec 2012
ad

@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 ;-)

jajen
7 wrzesień 2012
ad

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

leniwiec
7 wrzesień 2012
ad

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

jajen
7 wrzesień 2012
ad

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.

Jacek
8 listopad 2012
ad

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)

Tomasz
2 luty 2016
ad

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

Wyślij