Szyfrowy Sterownik 4 Urządzeniami


6.5
Ocena: None Średnia: 6.5 (2 głosujących)

Sterownik ten został zaprojektowany aby współpracować z 4 urządzeniami. Działa on z automatem otwierającym bramę, sterownikami otwierania dwóch drzwi garażowych, oraz z Czasowym Sterownikiem Pompy przełączając jego tryby pracy. Każde z urządzeń sterowanych aktywowane jest za pomocą innego kodu. W wersji podstawowej są to 4 cyfry na jeden kod, jednak bez żadnego problemu po niewielkiej modyfikacji programu można wprowadzić nawet 25. Całość zbudowana jest w oparciu o mikrokontroler AT90S2313 (ATTINY2313). W roli elementów wykonawczych pracują przekaźniki. Kody zapisane są w nieulotnej pamięci EEPROM przez co łatwo mogą zostać zmienione.

Działanie:


Schemat sterownika przedstawia poniższy rysunek:

Mikrokontroler U1 (AT90S2313 lub ATTINY2313) wraz z rezonatorem kwarcowym X1 (4MHz) i kondensatorami C3 (33pF) i C4 (33pF) stanowią główną część układu. Przycisk S1 umożliwia reset procesora w dowolnym momencie. Do złącza 5V podłączamy napięcie zasilające, które przez diodę zabespieczającą D9 (1N4001) trafia na kondensatory filtrujące C1 (100nF) i C2 (100uF). Tranzystor T1 (BC557) wraz z elementami R1 (3,3k) i R2 (3,3k) steruje pracą brzęczyka piezo. Złącza AK1 - AK3 (ARK) umożliwiają podłączenie klawiatury. Tranzystory T2 - T5 (BC557) wraz z rezystorami R7 - R14 (3,3k) zajmują się uruchamianiem przekaźników P1 - P4 (JRC21F). Diody D1 - D4 wraz z rezystorami ograniczającymi prąd R15 - R18 (180R) stanowią sygnalizację włączenia przekaźników. Elementy D5 - D8 (1N4007) chronią tranzystory przed przepięciami mogącymi pojawić się na cewkach przekaźników.

Połączenia przycisków klawiatury przedstawione są na rysunku poniżej:

Budowa:


Sterownik można zrobić korzystając z płytki drukowanej dostępnej tutaj. Rysunek w odbiciu lustrzanym dostępny jest tutaj. Montaż płytki należy rozpocząć od wlutowania wszystkich zworek. Kolejność pozostałych elementów nie jest ważna ale dobrze jest montować je od najmniejszych do największych. Pod mikrokontroler należy bezwzględnie zastosować podstawkę gdyż w przeciwnym wypadku nie będzie możliwości jego zaprogramowania. Klawiaturę do zamka należy wykonać w dowolny sposób. W moim projekcie pracuje orginalna klawiatura z zamka szyfrowego(z lekkimi modyfikacjami). Pomocą w konstrukcji może okazać się dostępny tutaj schemat montażowy.

Wykaz Elementów:


5x Złącze ARK2
4x Złącze ARK3
1x uSwitch
4x Przekaźnik JRC21F

4x 180R
10x 3,3k

2x 33pF
1x 100nF
1x 100uF Elektrolit

1x Rezonator Kwarcowy 4MHz
1x 90S2313 lub ATTINY2313 + Podstawka

5x 1N4007
4x Dioda LED
5x BC557B

Programowanie:


Mikrokontroler do sterownika został zaprogramowany w wersji demo programu BASCOM AVR firmy MCS Electronics (http://www.mcselec.com/). Program przedstawiony jest poniżej:

$eeprom
'************************************************************************
Niewaznybajt:             'zeby nie zapisywal do pierwszej komorki  danych
  Data 255                  'moze ulec skasowaniu po resecie procesora
Kod1:
  Data 1 , 2 , 3 , 4
Kod2:
  Data 2 , 2 , 3 , 4
Kod3:
  Data 3 , 2 , 3 , 4
Kod4:
  Data 4 , 2 , 3 , 4
 
'************************************************************************
 
$data
'************************************************************************
$regfile = "attiny2313.dat"
 
$crystal = 4000000
 
Config Portb = &B11110001
        Portb = &B1111111
Config Portd = &B1111111
        Portd = &B1111111
'************************************************************************
Dim Cyfra As Byte
Dim Licznik As Byte
Dim Kod(4) As Byte
Dim Kodwyzerowany As Bit
Dim Kodpoprawny As Bit
Dim Kodp1 As Bit , Kodp2 As Bit , Kodp3 As Bit , Kodp4 As Bit
Dim Wb As Byte
Dim N As Byte                                               'uniwersalna zmienna pomocnicza
Dim Pierwadres As Byte , Adres As Byte
Dim Urrejestr As Bit
 
'************************************************************************
Reset Portb.7
Set Portb.4                                                 'jezeli podczas wlaczenia napiecia wcisniete M C 2  5 to rejestracja
'//////////////////
If Pinb.3 = 1 And Pinb.2 = 0 And Pinb.1 = 1 Then
  Reset Portb.6
  Set Portb.7
  If Pinb.3 = 1 And Pinb.2 = 0 And Pinb.1 = 1 Then
    Reset Portb.5
    Set Portb.6
    If Pinb.3 = 1 And Pinb.2 = 1 And Pinb.1 = 1 Then
      Reset Portb.4
      Set Portb.5
      If Pinb.3 = 0 And Pinb.2 = 1 And Pinb.1 = 0 Then
        Gosub Rejestracja
      End If
    End If
  End If
End If
 
Gosub Migled
Gosub Migled
Gosub Migled
 
Licznik = 1
Gosub Zerujkod
 
'************************************************************************
 
Do
 
Gosub Klawiatura
 
If Cyfra < 12 Then                                          'jezeli jeden z klawiszy wcisniety
'//////////////////
If Cyfra < 10 Then                                          'klawisze liczbowe
  If Licznik < 5 Then
    Kod(licznik) = Cyfra
    Reset Kodwyzerowany
  Else
    Gosub Zerujkod
    Licznik = 5                                             'nigdy ni wyjdzie poza tego ifa jezeli bedzie wiecej niz 4 klikniecia
  End If
 
  Incr Licznik
End If
'//////////////////
If Cyfra = 10 Then                                          'klawisz M
 If Kodwyzerowany = 1 Then
   Gosub Migled2
   Licznik = 1
   Gosub Zerujkod
 Else
   Gosub Sprawdzkod
 End If
End If
'//////////////////
If Cyfra = 11 Then                                          'klawisz C
 Licznik = 1
 Gosub Zerujkod
End If
'//////////////////
End If
 
Loop
End
'************************************************************************
Klawiatura:
 
Cyfra = 255
 
Reset Portb.7
Set Portb.4                                                 'ustaw 0 na wierszu 1(1,2,3)
'//////////////////
If Pinb.3 = 0 Then
  Cyfra = 1
  Gosub Migled
  While Pinb.3 = 0
  Wend
End If
 
If Pinb.2 = 0 Then
  Cyfra = 2
  Gosub Migled
  While Pinb.2 = 0
  Wend
End If
 
If Pinb.1 = 0 Then
  Cyfra = 3
  Gosub Migled
  While Pinb.1 = 0
  Wend
End If
'//////////////////
 
Reset Portb.6
Set Portb.7                                                 'ustaw 0 na wierszu 2(4,5,6)
'//////////////////
If Pinb.3 = 0 Then
  Cyfra = 4
  Gosub Migled
  While Pinb.3 = 0
  Wend
End If
 
If Pinb.2 = 0 Then
  Cyfra = 5
  Gosub Migled
  While Pinb.2 = 0
  Wend
End If
 
If Pinb.1 = 0 Then
  Cyfra = 6
  Gosub Migled
  While Pinb.1 = 0
  Wend
End If
'//////////////////
 
Reset Portb.5
Set Portb.6                                                 'ustaw 0 na wierszu 3(7,8,9)
'//////////////////
If Pinb.3 = 0 Then
  Cyfra = 7
  Gosub Migled
  While Pinb.3 = 0
  Wend
End If
 
If Pinb.2 = 0 Then
  Cyfra = 8
  Gosub Migled
  While Pinb.2 = 0
  Wend
End If
 
If Pinb.1 = 0 Then
  Cyfra = 9
  Gosub Migled
  While Pinb.1 = 0
  Wend
End If
'//////////////////
 
Reset Portb.4
Set Portb.5                                                 'ustaw 0 na wierszu 4(M,0,C)
'//////////////////
If Pinb.3 = 0 Then                                          'M
  Cyfra = 10
  'Gosub Migled   'nie migaj po enter
  While Pinb.3 = 0
  Wend
End If
 
If Pinb.2 = 0 Then
  Cyfra = 0
  Gosub Migled
  While Pinb.2 = 0
  Wend
End If
 
If Pinb.1 = 0 Then
  Cyfra = 11                                                'C
  Gosub Migled
  While Pinb.1 = 0
  Wend
End If
'//////////////////
Waitms 10
 
Return
'************************************************************************
Zerujkod:
 Kod(1) = 100
 Kod(2) = 100
 Kod(3) = 100
 Kod(4) = 100
 Set Kodwyzerowany
Return
'************************************************************************
Testujkod:
 Set Kodpoprawny
 For N = 1 To 4
   Adres = N + Pierwadres    'przesuniecie zeby mozna bylo porownywac wpisana wartosc z 1 2 3 i 4 kodem
   Readeeprom Wb , Adres
   If Wb <> Kod(n) Then
    Reset Kodpoprawny
   End If
 Next N
Return
'************************************************************************
Sprawdzkod:
 Pierwadres = 0                                             'porownuje z 1 kodem w pamieci
 Gosub Testujkod
 Kodp1 = Kodpoprawny                                        'jezeli wprowadzony kod jest rowny 1 kodowi to = 1
 
 Pierwadres = 4                                             'porownuje z 2 kodem w pamieci
 Gosub Testujkod
 Kodp2 = Kodpoprawny                                        'jezeli wprowadzony kod jest rowny 2 kodowi
 
 Pierwadres = 8                                             'porownuje z 3 kodem w pamieci
 Gosub Testujkod
 Kodp3 = Kodpoprawny                                        'jezeli wprowadzony kod jest rowny 3 kodowi
 
 Pierwadres = 12                                            'porownuje z 4 kodem w pamieci
 Gosub Testujkod
 Kodp4 = Kodpoprawny                                        'jezeli wprowadzony kod jest rowny 4 kodowi
 
 
 If Kodp1 = 1 Or Kodp2 = 1 Or Kodp3 = 1 Or Kodp4 = 1 Then
    Gosub Migled
    Gosub Migled
    Gosub Migled
 
    If Kodp1 = 1 Then
     Gosub Uruchom1
    End If
 
    If Kodp2 = 1 Then
     Gosub Uruchom2
    End If
 
    If Kodp3 = 1 Then
     Gosub Uruchom3
    End If
 
    If Kodp4 = 1 Then
     Gosub Uruchom4
    End If
 
    Licznik = 1
    Gosub Zerujkod
 Else
   Gosub Migled2
 End If
Return
'************************************************************************
Rejestracja:
  Gosub Migled2
  Waitms 500
  Gosub Migled2
  Waitms 500
  Gosub Migled2
 
  Licznik = 1
 
  Do
    Gosub Klawiatura
 
    If Cyfra < 12 Then                                      'jezeli jeden z klawiszy wcisniety
    '//////////////////
    If Cyfra > 9 Then Cyfra = 100
 
    Writeeeprom Cyfra , Licznik
 
    N = Licznik Mod 4
    If N = 0 Then Gosub Migled2
 
    Incr Licznik
    If Licznik = 17 Then Exit Do
    '//////////////////
    End If
  Loop
 
  'zapisywanie do eeprom
Return
'************************************************************************
Migled:
  Reset Portb.0
  Waitms 100
  Set Portb.0
  Waitms 100
Return
'************************************************************************
Migled2:
  Reset Portb.0
  Waitms 1000
  Set Portb.0
  'Waitms 1000
Return
'************************************************************************
Uruchom1:
  Reset Portd.2
  Waitms 800
  Set Portd.2
  'Waitms 400
Return
'************************************************************************
Uruchom2:
  Reset Portd.3
  Waitms 800
  Set Portd.3
  'Waitms 400
Return
'************************************************************************
Uruchom3:
  Reset Portd.4
  Waitms 800
  Set Portd.4
  'Waitms 400
Return
'************************************************************************
Uruchom4:
  Reset Portd.5
  Waitms 800
  Set Portd.5
  'Waitms 400
Return
'************************************************************************

Poniżej przedstawiono ustawienia fusebitów dla mikrokontrolera ATTINY2313 (Zrzut z programu Burn-O-Mat):

Zdjęcia Projektu:

ZałącznikWielkość
Schemat92.54 KB
Płytka17.88 KB
Płytka (odbicie lustrzane)17.85 KB
Płytka (2 na stronie)33.47 KB
Montowanie25.12 KB
Schemat Klawiatury23.71 KB
Kod źródłowy8.05 KB
Program po kompilacji (BIN)1.96 KB
Program po kompilacji (HEX)5.53 KB
Zawartość pamięci EEPROM mikrokontrolera (EEP)17 bajtów
Kod Źródłowy (ATTiny2313) (rejestracja kodów po zwarciu PD.6)9.61 KB



Portret użytkownika White88

Pytanka

Witam,
Pytania mam następujące:
Cóż to za wyjście AUX do czego ono służy?
Przycisk M, co on robi jest to akceptacja czy co?
Przycisk C służy do kasowania ewentualnie błędnie wprowadzonej liczby?
Czy układ wykonawczy na przekaźnikach ma swój osobny obwód zasilania tak wynika z schematu można podłączyć inne napięcie niż 5V.?Przekaźniki są 5V czy 12? czy w zależności jakie przyjmę zasilanie tych właśnie obwodów wykonawczych.
Czy układ na przekaźnik przekazuje impuls czy sygnał ciągły?Jak ewentualnie później przerwać jego pracę?
Pytania może banalne ale przed pracą wole mieć wszystko jasno i wyraźnie.
Pozdrawiam i mam nadzieje że projekt wyjdzie mi jak poprzedni.:p

Portret użytkownika mirley

Re: Szyfrowy Sterownik

Na wstępie musze powiedzieć że mało juz pamietam z tego projektu bo to dawno było :)
1. Wyjście AUX nie służy do niczego, miała to być dodatkowa opcja "jakby coś"
2. Przycisk M to "Enter" po wpisaniu kodu klikamy M i wtedy jest on porównywany z poprawnym
3. Przycisk C kasuje cały wprowadzony wcześniej kod. Po jego kliknieciu np podczas przedostatniej cyfry należy cały kod wprowadzić jeszcze raz
4. Ze schematu wynika właśnie że przekaźniki zasilane są 5V. Podłączone są do tego samego zasilania co procesor (Punkty VCC są ze sobą podłączone tak samo jak wszystkie GND są podłączone ze sobą)
5. Po wpisaniu jednego z prawidłowych kodów odpowiedni przekaźnik zostaje zwarty na ok 0,8s po czym się rozwiera do stanu wyjściowego

Przed programowaniem należy skompilować program jeszcze raz w nowym bascomie. Ja w swoim projekcie użyłem mikrokontrolera 2313 którego już nie kupisz. Należy zastosować ATTiny2313 wyłączając we fuse bitach dzielenie przez 8 i zmieniając w programie kwarc z 4000000 na 8000000.

W pierwszym etapie konstrukcji nie lutuj kwarca i kondensatorów może pojdzie bez nich na wewnętrznym oscylatorze

Klawiaturę zrób z uSwitchy bo ja zastosowałem starą z jakiegoś zamka niewiadomo od czego i juz po 2 latach naciskania troche nie łączy :) Mógłbys nawet zastosowac płytkę z Klawiatury do płytki testowej tylko nie będziesz montował czwartej kolumny a wyprowadzenia uzgodnisz porównując schematy

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika White88

Pytanie

Powiedz mi jeszcze jak mają być ustawiony ten drugi fusebit tzn. wyłączony dzielnik ok a ten następny dotyczący częstotliwości?
Zmieniłem w programie na 8000000 skompilowałem ale nie wiem jak z tym fusem jednym.

Portret użytkownika mirley

Re: Szyfrowy sterownik

drugi fuse bit powinien być bez zmian, tak jak jest ustawione fabrycznie. Powinno to po wyłączenia dzielenia przez 8 dawać częstotliwość 8MHz. Kwarc bedzie wtedy niepotrzebny. Proponuje takie ustawienie bo sam chcę sprawdzić czy tak pójdzie ale według moich przemyśleń jak najbardziej powinno :)

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika White88

Pytanie

Dobra spoko elektronikę w wersji przestrzennej(tzn na pająka )hehe już mam.A wiesz może jak idzie ten fabryczny bo kurcze miałem dwa do lampki ustawione na zmienionych fusach i nie wiem jakie były oryginały.?

Portret użytkownika mirley

Re: Fusy do Szyfrowy...

Też do konca nie pamietam ale wydaje mi się że jest cos takiego jak "Int. RC oscilator 8MHz" albo cos podobnego i to powinno działać. Ewentualnie zostaw tak jak w lampce RGB ale wtedy trzeba bedzie kwarc wlutować i znowu zmienić w programie na odpowiednią częstotliwość

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika White88

RC

Nie wiem dlaczego ale na wewnętrznym RC to nie chcec działać.Po włączeniu zasilania tylko mignie diodka przy przekaźniku i to wsyzstko żadnej reakcji po wciskaniu przycisków.

Portret użytkownika white88

BŁAD

Pomyłka miga dioda przy klawiaturze ta co jest obok brzęczka.

Portret użytkownika mirley

Re: Szyfrowy

Z tego co piszesz rozumiem że na rezonatorze kwarcowym 4Mhz przy ustawieniach które podałem wszystko idzie ok. Może ustawiasz wewnętrzny oscylator 8MHz a nie 4Mhz. Dla 8MHz powinna na samym początku być zmieniona dyrektywa "crystal...."

Nie pamiętam co jeszcze może być nie tak z układem. Czy klawiatura działa ok?

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika gosc

Już w końcu sam nie wiem

Już w końcu sam nie wiem co ustawić i gdzie.Guziki działają ładnie na raz a jak wciskam to raz tzreba przytrzymac długo i dioda sie świec i 1s raz sie świeci 2s czasami nie łąpie tych guzików pomimo ze stykają na 100% skutecznie już nie wiem gdzie ustawić 4Mhz gdzie 8Mhz tak mi namieszałeś ze już sam nie wiem.W żadnym przypadku nie udało mi sie uruchomić przekaźnika.A te fuse bity z tego screena.....niebytnio mi pomogły.
Będę jeszcze kombinował ale tracę nerwy hehe za slaby jestem na to.

Portret użytkownika gosc

DOBRA przepraszam za

DOBRA przepraszam za zamieszanie.
Już naprawiłem swój błąd.Płytka z przyciskami okazała się dwustronną i pod jednym guzkiem byłą ścieżka która wszystko psuła.
Układ działa na zewnętrznym kwarcu 4Mhz wszystko dobrze ustawiłem.
Jeszcze raz sorki za zamieszanie .Kolejny dobry projekt.
Jak zorbie obudowę albo coś to podeśle zdjęcia do galerii realizacji.
Dzięki Mirley.:)
pozdrawiam white88

Portret użytkownika mirley

Re: Szyfrowy

Z tymi częstotliwościami to chodzi o to aby zawsze mikrokontroler był ustawiony na taką częstotliwośc jaką ma fizycznie podłączoną i tak samo jak jest zdeklarowane w programie. Jeśli masz podłączone 4MHz kwarc lub 4MHz wewnętrzny oscylator to w programie musi być $crystal = 4000000 a jeśli używasz wewnętrznego zegara lub kwarca o częstotliwości 8MHz to w programie też musi być wpisane $crystal = 8000000 itp.

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika gosc

Ostatnia kwestia jeżeli

Ostatnia kwestia jeżeli chodzi o mnie.
Jak wydłużyć liczbę cyfr do kodu?czy jest to duża ingerencja w program?
Czy dało by radę żeby ten przekaźnik załączał się na dłużej niż 0,8s.?A jak nie to jaki ukłąd polecasz w celu wykonawczym?Czy te układziki z twojej stronki?Tak aby można było włączyć powiedzmy cokolwiek np. żarówkę i jak wykonać potem wyłączenie tego urządzenia które włączymy zamkiem?Przez reset procka??
Proszę odpowiedz na kilka kwestii abym mógł już pomyśleć co dalej z tym zrobić.

Portret użytkownika White88

Ostatnie pyt

Ostatnia kwestia jeżeli chodzi o mnie.
Jak wydłużyć liczbę cyfr do kodu?czy jest to duża ingerencja w program?
Czy dało by radę żeby ten przekaźnik załączał się na dłużej niż 0,8s.?A jak nie to jaki ukłąd polecasz w celu wykonawczym?Czy te układziki z twojej stronki?Tak aby można było włączyć powiedzmy cokolwiek np. żarówkę i jak wykonać potem wyłączenie tego urządzenia które włączymy zamkiem?Przez reset procka??
Proszę odpowiedz na kilka kwestii abym mógł już pomyśleć co dalej z tym zrobić.

Portret użytkownika mirley

Re: Szyfrowy

1. Ilość cyfr da się zwiększyć o ile się wie jak program działa a ja do końca nie pamiętam. Może jutro rano alobo w poniedziałek coś popatrze jak zdąże (uważam to jednak za bezcelowe, bo po pierwsze ktoś musiał by wiedzieć ile cyfr ma kod, bo program o tym nie informuje, czeka tylko na kolejne klawisze aż do momentu kliknięcia M a potem sprawdza kod, po drugie dla 4 cyfr ilośc kombinacji jest tak duża)
2. Przekaźniki można zrobić tak że każde wpisanie kodu będzie zmieniało stan na przeciwny lub za pomocą innej metody ale napewno nie przez reset procka. Zamiast przekaźników (i ich elementów włączających) można zastosować triaki wraz z optotriakami (Moduł wykonawczy)

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika White88

Re

Dzięki za odpowiedz, masz rację dla 4 cyfr wystarczy ok.
Bardzo mnie interesuje opcja ze zmiana stanu na przeciwny.Przydało by mi sie strasznie takie coś.Stan początkowy Normalnie otwarty po wpisaniu kody zamyka i potem po kolejnym kodzie otwiera.Dużo modyfikacji??Przy chwili wolnego czasu wykonał byś to dla mnie??

Portret użytkownika gosc

Domniemam że należy

Domniemam że należy zmienić coś u tej części kodu

Quote:
Uruchom1:
Reset Portd.2
Waitms 800
Set Portd.2
'Waitms 400
Return

Tylko jak zrobić żeby raz włączać a potem wyłączać?
Jakaś podpowiedz?

Portret użytkownika mirley

Re: Szyfrowy

Trzeba to tak zmienić:

Uruchom1:
  Toggle Portd.2
  'Waitms 800
Return

Każde wpisanie kodu zmienia stan na przeciwny

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika white88

Koniec

Wszystko idealnie o to mi właśnie chodziło.Dzięki wielkie za cierpliwość i wszelką pomoc.Kolejny udany projekt ze stronki mirley-firlej.Jak będzie trochę czasu zarzucę fotki sesja sie zbliża z czasem będzie krucho.
Nic tylko czekać na kolejne projekty więc łatwo się mnie nie pozbędziesz.Doceniam wkład w twoje projekty i pomoc w ich realizacji wiec naprawdę szacunek.
Pozdrawiam Marcin(white88).

Portret użytkownika lucastg

Kompilacja pod procesor 2313

Witam mam prośbe zeby ktos jak potrafi przerobic ten sofcik z tego starego procesora na ta nowsza wersje attiny2313 i wstawiłna stronkle lub podesłałmi namaila
a i jeszcze jedno pytanie juz bardzije do Mirleja czy duzo było by roboty aby wykozystać te wolne trzy wyjscia z procesora jako sterowane kodem tak jak sa pozostałe ??

Portret użytkownika mirley

Re: Zamek szyfrowy

Pod ATTIny jak dobrze pamiętam to wystarczy przekompilować program zmieniając nazwę procesora w $regfile.... Co do ulepszenia kodu to prędzej podlega on napisaniu od nowa. Patrze teraz na moje stare rowiązanie obsługi klawiatury matrycowej...... zajmuje 3 strony. Nowe zajmuje kilka linijek :), robiąc to samo i nie blokując działania timerów.

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika Makavelli

Przekaźnik

Witam
Jakim przekaźnikiem moglbym zastąpić JRC21F bo nigdzie nie mogę dostać. Dziś kupiłem JQX-115F gościu z elektronicznego zapewnial mnie że to taki sam no ale.. może by był dobry ale jest wiele za wielki więc spróbuje je oddać bo koszkowały 16 zl.

pozdro

Portret użytkownika mirley

Re: Przekaźnik

Przekaźniki mogą być dowolne na 5V, lub nawet w ogóle ich nie musi być, zależy do czego chcesz zastosować ten układ zamka szyfrowego. Dokładnie ten model przekaźnika dostaniesz w sklepie AVT. Użyłem taki bo taki miałem. Na allegro możesz dostać JRC-23F, jest bardzo podobny do tego co użyłem

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika Makavelli

Zamek szyfrowy

Wyżej pisałeś że przekaźników nawet w ogóle nie musi być. Mógłbyś napisać kiedy ich nie musi być chodzi mi o to jak bedzie ten zamek pracować najlepiej na jakimś przykładzie :)

Portret użytkownika mirley

Re: Zamek szyfrowy

Ja wykorzystuję ten układ do otwierania bramy i włączania kilku moich urządzeń (miedzy innymi oczko wodne). Przekaźnik jest dlatego aby zewrzeć styki ręcznego wyłącznika bramy, bo nie wiem jakie do końca stany logiczne mogą się tam pojawiać. Tak samo jest z drugim urządzeniem które było zrobione wcześniej i nie ma dodatkowego wejścia. Drugi przekaźnik zwiera w nim poprostu przycisk. Jeśli natomiast twój zamek ma włączyć np elektromagnes w drzwiach lub jakiś serwomechanizm itp. To nie trzeba dawać przekaźnika tylko zastanowić się jakiego sygnału potrzebuje ten układ wykonawczy, np. dla elektromagnesu na prąd stały można dać tranzystor mosfet podłączony bezpośrednio do procesora (np do PD.5), jeśli zwieramy obwód 230V to najlepiej triak z optotriakiem. Jeśli ma to być podłączone do innego układu z procesorem to może sie okazać że wystarczy połączyć piny dwóch procesorów i żadnych tranzystorów ani przekaźników nie trzeba.

Nie mogę wymyślić więcej przykładów, poprostu muszę wiedzieć co chcesz podłaczyć i jak.

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika IMEX

Przerobienie na więcej kanałów

Jak w temacie - da sie to przerobić na wiecej kanałów

przekaźnik wlancza sie na 0.8 sek o ile sie dobrze doczytalem - a czy da sie to w prosty sposob przerobić na - 1 kod wł PK - 2 kod wył PK

Zapewne pierwotne zadanie tego urządzonka to wejscie do domku co :) - czy w prosty sposób da sie zaprogramować - sygnalizacja migającą na przemian np: czerwony/zielony led - jak źle zostanie wpisany kod jeden z kodów zaprogramowanych w DATA

pozdrawiam

PS
Mam w domku oryginalny zegarek programowalny z 3 gniazdkami na 3500W/230v klawisze nr i funkcyjne - ledy na dni tygodnia Pn-N i 4 cyfry 7-seg , ledy ON/OFF PK1-3 oraz jaka funkcja jest zaprogramowana( np ze wl co godzi i wyl co godzine na zmiane tak .... ) programowanie w ramach tygodnia

Niespotkałem sie jescze z takim projektem na atmedze - musialo by to pracować na ATM-32

Portret użytkownika mirley

Re: Zamek szyfrowy

Da się w prosty sposób to przerobić tak aby jeden kod włączał a drugi wyłączał. Poprostu wystarczy zmodyfikować fragment kodu:

Uruchom1:
  Reset Portd.2
Return
'************************************************************************
Uruchom2:
  Set Portd.2
Return

Teraz po poprawnym wpisaniu kodu 1 włączy się portd.2 (stan niski) a po kodzie 2 się wyłączy. Co do diody migającej to zależy jak miało by to byc zrobione. Jeśli ma mignąć np 10 razy na przemian czerwona i zielona po złym wpisaniu to ok ale jeśli coś sie ma dziac równolegle z klawiszami to nie da rady w tym programie bo jest kiepsko napisany. Teraz już bym to 100 razy lepiej napisał i nawet mam taki zamiar tylko czasu nie mam

ps. Co do sterownika tygodniowego to nie jest to odpowiednie miejsce na dyskusję na jego temat. Da się go jednak zrealizować z powodzeniem , myslę że nawet na M8, zależy od dodatkowych potrzebnych w nim funkcji.

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika IMEX

miganie led tylko dlatego

miganie led tylko dlatego jakby ktos wpisywal kod - a led migala by do momentu poprawnego wpisania kodu

dziekuje i pozdrawiam

Zaje...Fajna stronka

Portret użytkownika mirley

Re: Zamek szyfrowy

TO jest jeden z moich pierwszych programów pod uC i niestety przy takim rozwiązaniu jak zastosowałem nie da się takiej migającej diodki zastosować, można ewentualnie ustawić święcącą na stałe jak kod będzie błędny a zgaśnie po wpisaniu prawidłowego (takie info czy ktoś nie próbował klikać po zamku)

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika lucastg

dodatkowe wyjścia sterowane ?

Witam mam pytani eczy dozo nalezało by przerobić wsad aby dolne wyjścia mikroprocesora ( PD0 PD1 PD6 ) tez były aktywowane kodem ?
i pytanie nr 2 czy kod musi byc 4-ro cyfrowy czy moze mozna go zmniejszyć do 3 cyfr ?
jakies propozycje mile widziane
pozdrawiam Łukasz

Portret użytkownika mirley

Re: Zamek szyfrowy

Wszystko to co chcesz przerobić powinno sie dać uzyskać ale program jest tak na styk w pamięci procesora i nie wiem czy dodatkowe wyjścia da się zrobić na tiny2313. Wymaga to trochę czasu i przypomnień jak program działa. jak będziesz cierpliwy to coś pomyślę ale nic nie obiecuję, bo trochę zajęty jestem

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika lucastg

Nowy wsadzik do zamka ?

Witam chciałem zapytać na czym polega rejestracja kodów po zwarciu PD6 domyslam sie ze ta noge układu zwieramy do masy ale jak dalej wprowadzić nowy kod i jak wybrac ktory chcemy zastąpić bo wkońcu mamy 4 do wyboru ?

Portret użytkownika mirley

Re: Zamek szyfrowy

Zwarcie pinu przechodzi do procedury rejestracyjnej (mignie dioda impulsami po 500ms). Należy wprowadzić wszystkie kody po kolei. Po wpisaniu każdego program odpowie mignięciem diody i buzzerem. Na końcu pojawią się 3 sygnały świetlne i dżwiękowe po których urządzenie jest gotowe do pracy.

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika lucastg

Dziwne objawy po programowaniu

Witam zaprogramowałem 2 szt attiny i za każdym razem mam takie objawy klawiatura reaguje na naciskanie piknięciami po naciśnięciu klawisza M jest dłuższy pisk , tak samo i po resecie ale wyjścia na przekaźniki cały czas maja stan wysoki - czyt. 5V niezależnie czy wbiję prawidłowy kod czy nie , po sprawdzeniu kodu pokazuje ze jest prawidłowy z oryginałem i fuse tez dobrze ustawione .

Portret użytkownika mirley

Re: Zamek szyfrowy

A jaka jest zawartość eeprom? kody zapisywane są w eeprom. Zarejestrowałeś wszystkie kody poprawnie po zaprogramowaniu mikrokontrolera? Po zaprogramowaniu procesora eeprom się wyczyści i napewno żaden kod nie jest zapisany do pamięci.

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika lucastg

eeprom jest pusty , kody nie

eeprom jest pusty , kody nie sa zapisywane bo jest to ta wersja z kodami oryginalnymi bez możliwości wpisania

--------

Oki dzięki za pomoc i nakierowanie zapomniałem dograć zawartość pamięci eep , czy do wsadu z możliwością programowania własnego kody też należy doprogramować wsad eep ?

Portret użytkownika mirley

Re: Sterownik szyfr

jaka wersja z kodami orginalnymi? nie pamiętam żebym taką pisał.... za każdym razem program porównuje to co wpisujesz z zawartością eeprom

Nie trzeba programować pamięci eeprom, tylko po wgraniu priogramu do procesora jak eeprom jest pusty, należy zarejestrować sobie jakies kody i wtedy zostaną zapisane do eeprom i od tej pory już będzie działało normalnie. Przed właczeniem zasilania trzymaj M C 2 5 jednocześnie, po czym układ coś tam będzie pikał buzzerem. jak skończy to klikniesz 4 liczby jedna po drugiej, potem znowu będzie pikał, potem wpiszesz drugi kod i tak pozostałe 2. po zakończeniu piknie 3 razy i jest gotowy do pracy

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika lucastg

Zmiana czasu aktywnego

Witam mam pytanie , aby wydłużyć czas zadziałania przekaźnika na większy - dłuższy wystarczy w tej części kodu
Reset Portd.2
Waitms 800
Set Portd.2
'Waitms 400

wartość 800 zmieniać na większą czy coś innego ? , i jak ta wartość 800 odnosi się do realnego czasu czy 800 to jest 800ms ? oraz czy jest jakiś maxymalny czas chodziło by mi o podtrzymanie około minuty /
Za pomoc z góry dziękuje

Portret użytkownika matrix

Re: Zmiana czasu aktywnego

przy częstotliwości zegara jaka tu jest ustawiona czas 800ms trzeba pomnożyć x2, więc rzeczywisty czas otwarcia jest 2x dłuższy.

jeśli chcesz to podtrzymać na minutę, wpisz wait 30, tylko nie wiem po co zatrzymywać procesor aż na minutę? przecież przez ten czas nic nie zrobisz.

Portret użytkownika lucastg

czyli zmieniając ten parametr

czyli zmieniając ten parametr dodatkowo blokuje procesor , tego nie wiedziałem myślałem tylko ze jest podawany dłuższy impuls na wyjście , to chyba łatwiej będzie domontować malutki czasowy układzik do podtrzymania impulsu , dzięki za wyjaśnienie Pozdrawiam

Portret użytkownika rafliczek22

Quote:przy częstotliwości

Quote:
przy częstotliwości zegara jaka tu jest ustawiona czas 800ms trzeba pomnożyć x2, więc rzeczywisty czas otwarcia jest 2x dłuższy

A powie szanowny kolega dlaczego co zegar w programie jest źle ustawiony no chyba nie?

Portret użytkownika lucastg

Raczej jest dobrze chodziło

Raczej jest dobrze chodziło mi o coś innego , chce zrobić tak ze czwarty kod będzie 0000 i po wbiciu tego i zaakceptowaniu będzie załączał oświetlenie w przejściu na minute ,ale juz domontowałem tranzystorek z dużym kondensatorkiem i efekt jest podobny

Portret użytkownika mirley

Re: Czas

Dlaczego uważacie że czas powinien byc 2x dłuzszy od tego co jest w wait? Procesor działa z kwarcem 4MHz i taki tez jest zadeklarowany w programie więc 800ms powinno trwać dokładnie 800ms a nie 1,6s

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika matrix

Re: Czas

uważam że czas będzie 2x dłuższy bo jak raz dałem częstotliwość zegara (zupełnie przypadkiem) 1MHz to 1s dyrektywa wait odmierzała mi bardzo dłuuuuugo. stąd wywnioskowałem co napisałem wyżej. być może się mylę, ale znam to z praktyki i dlatego napisałem tak a nie inaczej.

wierz mi że mnie to też zdziwiło, ale było jak napisałem. zawsze myślałem że dany czas to dany czas i częstotliwość zegara nie ma znaczenia, a tu mi się trafiło.

Portret użytkownika mirley

Re: Wait

Częstotliwośc zegara ma tu kluczowe znaczenie bo polecenia wait waitms i waitus działają na zasadzie pętli (dlatego blokują procka) a rozkazy w tej pętli zależą od częstotliwości taktowania. Dlatego zawsze w programie musi byc napisane w deklaracji to co faktycznie jest ustawione w procesorze. Jak mam w projekcie kwarc 4MHz i w programie też 4MHz to np waitms 10 trwa 10ms. Kompilator widząc na początku deklarację crystal 4000000 oblicza czas trwania jednej instrukcji na 0.25us (1/4000000) i po wydaniu polecenia np waitms 1 licznik pętli zostaje ustawiony na wykonanie 4000 rozkazów po 0.25us co daje czas 1ms. Jak procesor taktowany jest innym kwarcem niz zadeklarowano to czas rozkazu jest inny niż ten co wyliczył kompilator i czas się nie zgadza.

TO jest takie najprostsze wyjasnienie tego efektu.

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika demsy1

Zamiana kondensatorów

Czy mogę zamienić C3 i C4(33p) na 22p?

Portret użytkownika mirley

Re: Kondensatory

Możesz zmienić, nawet lepiej będzie jak będą 22pF

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika Chester

mała przeróbka

Witam!

Strasznie mnie się spodobał ten projekt chociaż widzę że dawno nikt tu nie zaglądał :P więc trzeba to zmienić :) Potrzebuje zbudować taki zamek szyfrowy tyle że trzeba go trochę uprościć. Zamiast wyjść na przekaźniki potrzebowałbym sterownie serwomechanizmem :) ponieważ potrzebuję sterownie ryglem. Czy taką klawiaturę http://www.nikomp.com.pl/opisy/WZA00/WZA3468W.htm mogę wykorzystać do tego sterownika?? Czego musiałbym się pozbyć a co dodać do kodu procesora aby móc sterować serwomechanizmem??

Z góry dziękuję za odpowiedź!
Pozdrawiam!

Portret użytkownika mirley

Re: Zamek szyfrowy

Klawiatura ma wspólną masę a moja jest podłączona w # 3x4. Układ jest dość stary i teraz zrobił bym go całkowicie inaczej. Sterowanie serwomechanizmem nie powinno stanowić problemu z poziomu bascom AVR. Jakby było tylko serwo i klawiatura to powinno wejść na tiny2313

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika despero

Czy można zmienić kod z

Czy można zmienić kod z punktu klawiatury czy wyłącznie w programie?