http://obrazki.elektroda.net/61_1268161068_thumb.jpg Witam, Chciałbym zaprezentować swoją kolejną konstrukcję, pracę wykonaną na konkurs "młody innowator", sterownik DTMF. Załóżmy pewną sytuację. Wyjeżdżamy na wakacje, podczas rejsu transatlantykiem dochodzimy do wniosku, że zapomnieliśmy wyłączyć żelazka. W domu nie ma nikogo, więc jedynym wyjściem z sytuacji jest poinformowanie o zdarzeniu sąsiadów. Dobrze, a co jeśli nie ma sąsiadów? Powrót? Wezwanie straży pożarnej? Nie, nic z tych rzeczy, wystarczy zadzwonić na numer telefonu, który jest podłączony do sterownika, poczekać aż się połączy, nacisnąć zero na klawiaturze i mieć w końcu spokojną głowę. Wydawać by się mogło ze to utopijna wizja, lecz urządzenie mojego autorstwa ma takie możliwości. Zasada działania urządzenia opiera się na odbieraniu i dekodowaniu sygnału DTMF (Ang. Dial Tone Multi Frequency) przez układ scalony MT8870, dalej sygnał już w postaci binarnej trafia na wejścia mikrokontrolera Atmega8-16PU. Mikrokontroler „interpretuje” stany logiczne na swoich wejściach i w zależności od tonu jaki został podany na dekoder, mikrokontroler zmienia stan wyjścia odpowiadającego danemu tonowi (jest ich w sumie 16, lecz ja w swoim urządzeniu wykorzystuję tylko 7). Z wyjść mikrokontrolera sygnał trafia do optotriaków MOC3021, które z kolei sterują triakami BT137/600. Umożliwia to zdalne sterowanie sześcioma urządzeniami niezależnie. Dlaczego akurat triaki? Odpowiedź na to pytanie jest bardzo prosta: jak wiadomo styki przekaźników przy dużym obciążeniu mogą iskrzyć, powoduje to realne zagrożenie pożarem w obszarach gdzie są używane środki łatwopalne. Ponadto cewka przekaźnika pobiera dużo większy prąd niż bramka triaka, co powoduje niepotrzebne straty energii. Na rynku jest bardzo dużo różnych zdalnych wyłączników, lecz zasada ich działania opiera się zwykle na transmisji radiowej, bądź światła podczerwonego (IR). Zasięg tych urządzeń jest bardzo ograniczony i zmienia się w zależności od miejsca użytkowania. W moim projekcie zasięg urządzenia jest niemal globalny, wystarczy że telefon (stacjonarny, bądź komórkowy) znajdzie się w zasięgu sieci. Ponadto budżet mojego projektu to nie jakieś bajońskie sumy, a jak wiadomo coraz częściej trudno uzyskać dobry stosunek ceny do jakości. Na wykonanie prototypu poświęciłem dwa tygodnie. Projektując układ elektroniczny, starałem się uzyskać jak najlepsze parametry oraz zejść z kosztami jak najniżej. Mogę powiedzieć, że udało mi się tego dokonać. Zastosowane materiały są możliwie najlepszej jakości, począwszy od rezystorów a na mikrokontrolerach kończąc. Przy produkcji seryjnej należy zastosować obudowę hermetyczną, aby zapobiec dostawaniu się do wnętrza pyłów oraz wilgoci. Należy także zastosować dobrej jakości i co najważniejsze oryginalne elementy elektroniczne, pozwoli to na długą i bezawaryjną pracę. Urządzenie można z powodzeniem zastosować w różnych dziedzinach życia, m.in. w rolnictwie, ogrodnictwie szklarniowym (do zdalnego włączania pomp nawadniających), ale także w gospodarstwie domowym (np. wyłączanie zdalne niepotrzebnego oświetlenia, czyli oszczędność energii), więc wpływ urządzenia na środowisko jest dobry. Użytkowanie sterownika nie niesie ze sobą groźby utraty zdrowia bądź życia. Urządzenie jest na tyle bezpieczne, że jeśli użytkownik zastosuje się do zaleceń omówionych w instrukcji obsługi, nic się mu nie stanie. Nie zauważyłem także wpływu urządzenia na morale użytkownika. Główną wadą urządzenia jest to, że wymaga ono połączenia z telefonem, rozwiązaniem mógłby się okazać moduł GSM ale jest on na dzień dzisiejszy bardzo drogi. Zaletami na pewno są: - Zasięg - Funkcjonalność - Prostota obsługi - Stosunkowo małe gabaryty - Możliwość zastosowania w pomieszczeniu z materiałami łatwopalnymi - Bezpieczeństwo użytkowania - Niezawodność Instrukcja Obsługi sterownika Sterownik służy do zdalnego sterowania sześcioma gniazdami sieciowymi, aby rozpocząć użytkowanie należy: 1. Sprawdzić wizualnie stan techniczny urządzenia. 2. Podłączyć wtyk sieciowy IEC, oraz wtyk listwy do gniazd znajdujących się na tylnym panelu urządzenia. 3. Do gniazd znajdujących się na listwie, które są opisane (numery wyjść) podłączyć urządzenia elektryczne którymi będzie można sterować. UWAGA! Maksymalne obciążenie dla wszystkich gniazd w wersji prototypowej sterownika wynosi 500W. Granicy tej nie należy przekraczać, gdyż może dojść do uszkodzenia urządzenia. 4. Podłączyć wyjście słuchawkowe telefonu do gniazda DTMF IN znajdującego się na przednim panelu. 3a. W telefonie należy ustawić odbieranie automatyczne. 5. Po upewnieniu się że wszystko jest właściwie podłączone, należy włączyć urządzenie przy pomocy przełącznika POWER. 6. Sterownik po włączeniu wyda komunikat dźwiękowy w postaci dłuższego „piknięcia”, należy to traktować jako informację o prawidłowym działaniu. Od tej chwili sterownik jest gotowy do użytkowania. Zmiany stanu na wyjściach można dokonać na dwa sposoby: 1. Poprzez przyciski znajdujące się pod kontrolkami informującymi o obecnym stanie wyjść. 2. Poprzez połączenie telefoniczne z numerem telefonu który jest podłączony do sterownika i wciśnięcie na klawiaturze telefonu osoby dzwoniącej cyfry (od 1 do 6) odpowiadającej wyjściu które zostanie włączone bądź wyłączone. Urządzenie informuje o zmianie stanu któregoś wyjścia poprzez krótkie „piknięcie”. UWAGA! Po naciśnięciu 0 (zera) na klawiaturze telefonu, urządzenie odłączy wszystkie wyjścia, Pojawi się także sygnał dźwiękowy w postaci trzykrotnego „piknięcia” . Prototyp należy użytkować w miejscach gdzie nie ma niebezpieczeństwa zalania urządzenia wodą bądź innym płynem. W urządzeniu występuje pełne napięcie sieci, dlatego BEZWZGLĘDNIE ZABRANIA SIĘ prowadzenia napraw bądź czynności konserwacyjnych przez osoby nieuprawnione. Program mikrokontrolera został napisany w jezyku Bascom. Do sterownika podłącza się listwę z sześcioma gniazdami instalacyjnymi, zdjęcia niestety nie zdążyłem zrobić a praca już pojechała na konkurs. Poniżej zamieszczam zdjęcia z budowy oraz filmik. http://obrazki.elektroda.net/19_1268163224_thumb.jpg http://obrazki.elektroda.net/94_1268163224_thumb.jpg http://obrazki.elektroda.net/86_1268163224_thumb.jpg http://obrazki.elektroda.net/29_1268163224_thumb.jpg http://obrazki.elektroda.net/39_1268163224_thumb.jpg http://obrazki.elektroda.net/27_1268163303_thumb.jpg http://obrazki.elektroda.net/52_1268163303_thumb.jpg http://obrazki.elektroda.net/92_1268163303_thumb.jpg http://obrazki.elektroda.net/96_1268163303_thumb.jpg http://obrazki.elektroda.net/96_1268163303_thumb.jpg http://obrazki.elektroda.net/78_1268163365_thumb.jpg http://obrazki.elektroda.net/33_1268163365_thumb.jpg http://obrazki.elektroda.net/86_1268163365_thumb.jpg http://obrazki.elektroda.net/77_1268161067_thumb.jpg http://obrazki.elektroda.net/88_1268161067_thumb.jpg http://obrazki.elektroda.net/14_1268161068_thumb.jpg https://www.youtube.com/watch?v=E9pLVGM8RKc W załączniku projekty PCB oraz wsad do mikrokontrolera. Pozwoliłem sobie wnieść pewną prowizję gdyż poświeciłem na wykonanie tych materiałów sporo czasu.
PAD3
PAD4
470uF
PAD2
PAD1
100n
IC1
100k
R1
100k
3.579545
R2
300k
R3
C2
CM8870CP
C1
7805TV
IC3
C3
100n
1000uF
C4
Q2
.
AVR_ISP
IC2
10
1
MEGA8-P
WYJSCIE
1
2010-02-03 22:32:52 D:\DTMF\eagle\Sterowanie_DMTF\pepi.brd
36
OUT
PAD3
PAD4
470uF
PAD2
PAD1
100n
IC1
100k
R1
100k
3.579545
R2
300k
R3
C2
CM8870CP
C1
7805TV
IC3
C3
100n
1000uF
C4
Q2
.
AVR_ISP
IC2
10
1
MEGA8-P
WYJSCIE
1
36
OUT
2010-02-26 16:08:00 D:\DTMF\Blok Dekodera\Dekoder-PCB EAGLE.brd
$regfile = " 2313def.dat "
$crystal = 8000000 'okrelenie uC
'$noramclear
Config Portb.3 = Input
Config Portb.2 = Input
Config Portb.1 = Input
Config Portb.0 = Input
Config Portd.6 = Input
Config Portd.2 = Output
Config Portd.3 = Output
Config Portd.4 = Output
Config Portd.5 = Output
Motor_lp Alias Portd.2 'Okrelenie portów steruj¹cych silnikami przez mostek
Motor_lt Alias Portd.3
Motor_pp Alias Portd.4
Motor_pt Alias Portd.5
'Okrelenie portów wejciowych (dekoder)
Sygnal Alias Pinb.3
A Alias Pinb.2
B Alias Pinb.1
C Alias Pinb.0
D Alias Pind.6
'Polecenia wydawane na podstawie stanów wejciowych:
Do
If Sygnal = 1 And A = 0 And B = 0 And C = 1 And D = 0 Then
Gosub Prosto
Elseif Sygnal = 1 And A = 0 And B = 1 And C = 1 And D = 0 Then 'Skrêæ w lewo
Gosub Prawo
Elseif Sygnal = 1 And A = 0 And B = 1 And C = 0 And D = 0 Then 'Skrêæ w lewo
Gosub Lewo
Elseif Sygnal = 1 And A = 1 And B = 0 And C = 0 And D = 0 Then 'Skrêæ w prawo
Gosub Tyl
Elseif Sygnal = 0 Then
Gosub Stopp
End If
Loop
Prosto: 'Tryby pracy silników dla poszczególnych ruchów
Motor_lt = 0
Motor_pt = 1
Motor_pp = 0
Motor_lp = 1
Return
Lewo:
Motor_lt = 1
Motor_pt = 1
Motor_pp = 0
Motor_lp = 0
Return
Prawo:
Motor_lt = 0
Motor_pt = 0
Motor_pp = 1
Motor_lp = 1
Return
Stopp:
Motor_lt = 0
Motor_pt = 0
Motor_pp = 0
Motor_lp = 0
Return
Tyl:
Motor_lt = 1
Motor_pt = 0
Motor_pp = 1
Motor_lp = 0
IC3
7805TV
C3
470uF
VI
3
VO
GND
+
1
+
+
PAD4
C4
1000uF
2
PAD3
GND
GND
PAD2
GND
PAD1
C2
100n
MEGA8-P
R1
R2
18
VDD
1
R3
IC1
100n
100k
300k
GND
C1
100k
Q2
3.579545
IN_DMTF
VCC
22
21
20
PC6(/RESET)
AGND
AREF
AVCC
PC0(ADC0)
PC1(ADC1)
PC2(ADC2)
PC3(ADC3)
PC4(ADC4/SDA)
PC5(ADC5/SCL)
7
8
ST/GT
OSC1 EST
OSC2 STD
17
16
15
1
IN+
TOE
10
9
PB6(XTAL1/TOSC1)
Q1
Q2
Q3
Q4
11
12
13
14
10
PB7(XTAL2/TOSC2)
INH
5
23
24
25
26
27
28
2
IN-
3
GS
4
VREF
9
6
VSS
VSS
.
1
3
5
7
9
CM8870CP
GND
GND
7
GND
VCC
2
4
6
8
10
AVR_ISP
GND
2
3
4
5
6
11
12
13
PB0(ICP)
PB1(OC1A)
PB2(SS/OC1B)
PB3(MOSI/OC2)
PB4(MISO)
PB5(SCK)
8
PD0(RXD)
PD1(TXD)
PD2(INT0)
PD3(INT1)
PD4(XCK/T0)
PD5(T1)
PD6(AIN0)
PD7(AIN1)
14
15
16
17
18
19
WYJSCIE
36
34
32
30
28
26
24
22
20
18
16
14
12
10
8
6
4
2
35
33
31
29
27
25
23
21
19
17
15
13
11
9
7
5
3
1
OUT
GND
IC2
2009-12-27 14:42:35 C:\Documents and Settings\Pepi\Moje dokumenty\eagle\Sterowanie_DMTF\Schemat.sch (Sheet: 1/1)
2010-02-02 18:41:38 D:\DTMF\eagle\Sterowanie_DMTF\pepi.brd
2010-02-03 20:23:47 D:\DTMF\sterowanie mocą.brd
R4
470
R5
470
R6
470
MOC3010M
OK3
1
6
2
4
MOC3010M
OK4
1
6
2
4
MOC3010M
OK5
1
6
2
4
MOC3010M
OK6
1
6
2
4
39
C2R20
0,01
wy2
X2-2
39
C3R21
0,01
wy3
X3-2
39
C4R22
0,01
wy4
X4-2
X1-1
X2-1
330
R13
360
R9
330
4
R14
2
T2
BT138-V
T3
BT138-V
X3-1
360
R10
330
6
R8
R15
470
1
X7-1
in230V
X7-2
z_dekodera
R3
MOC3010M
OK2
wy1
X1-2
360
T4
BT138-V
X4-1
360
R11
330
7
6
5
4
3
2
1
4
R16
SV1
2
R7
T5
BT138-V
39
C5R23
0,01
wy5
X5-2
X5-1
360
R12
330
470
6
R17
R2
1
T6
BT138-V
360
MOC3010M
2010-02-03 22:21:17 D:\DTMF\Blok sterowania mocą\sterowanie mocą.sch (Sheet: 1/1)
330
470
T1
BT138-V
R18
R1
OK1
39
C1R19
0,01
39
C6R24
0,01
wy6
X6-2
X6-1
T2
BT138-V
X7
2
T4
BT138-V
R18
330
R12
360
R11
360
R10
360
R9
360
R8
360
OK5
7
z_dekodera
OK6
R5
470
R6
470
OK4
R4
470
OK3
OK2
R2
470
OK1
R1
470
2010-02-03 21:38:00 D:\DTMF\sterowanie mocą.brd
1
2
in230V
T1
BT138-V
MOC3010M
MOC3010M
MOC3010M
MOC3010M
MOC3010M
MOC3010M
SV1
1
wy6
C5
0,01
R22
39
C4
T3
BT138-V
1
wy5
R15
330
R14
330
C3
0,01
R21
39
wy4
X6
2
0,01
R24
39
1
360
R7
T6
BT138-V
X5
2
C6
1
0,01
R23
39
2
wy3
C2
R13
330
C1
T5
BT138-V
X4
1
wy2
0,01
R19
39
wy1
2
R17
330
X3
1
R16
330
X2
2
0,01
R20
39
1
R3
470
X1