Uniwersalny Wyłącznik Czasowy


7.4
Ocena: None Średnia: 7.4 (5 głosujących)

Urządzenie jest sterownikiem (programatorem czasowym) pozwalającym na sterowanie niezależnie pracą dwóch urządzeń, przez włączanie ich o określonej godzinie i/lub na odpowiedni ustawiony wcześniej czas. Posiada wiele trybów pracy do których należą między innymi: cykliczne włączanie z określonymi czasami działania i przerwy oraz praca w konkretnych godzinach w jednym lub dwóch przedziałach czasu . Ten wyłącznik przyda się do sterownia pracą fontanny, światełek ozdabiających dom podczas świąt gdy nie chcemy zostawiać ich włączonych na całą noc, a nawet jako symulator obecności domowników poprzez zapalanie lamp w domu.

Działanie:


Schemat ideowy wyłącznika przedstawia rysunek poniżej:

Sercem układu jest mikrokontroler U1 (ATMega8) wraz z rezonatorem kwarcowym X1 (8MHz) i kondenstorami C1 (22pF), C2 (5,6pF) oraz trymerem C3 (10-20pF) za pomocą którego możemy ustawić częstotliwość zegara procesora aby wynosiła dokładnie 8MHz. Złącze Prog służy do programowania mikrokontrolera a rezystory R21 - R24 (330R) zabezpieczają port drukarkowy komputera przed uszkodzeniem. Na czas programowania należy pozostawić rozłączoną zworkę JP. Przyciski S1 - S4 stanowią klawiaturę umożliwiającą ustawianie parametrów pracy urządzenia.

Złacze Zas służy do podłączenia napięcia zasilającego o wartości ok. 7-12V. Kondensator C4 (220uF) filtruje to napięcie. Stabilizator U2 (7805) wraz z diodą D1 (1N4007) oraz kondensatorem C5 (47uF) dostarcza napięcia ok 5,6V, które po przejściu przez diodę D2 (1N4007) stanowi zasilanie procesora (ok. 5V). Diody D3 - D5 (1N4007) mają za zadanie obniżyć napięcie zastosowanej baterii które powinno być mniejsze niż napięcie pochodzące z zasilacza sieciowego. Napięcie zasilacza wyższe niż baterii (na nóżce 7 mikrokontrolera) powoduje spolaryzowanie diod D3 - D5 w kierunku zaporowym i tym samym odłączenie baterii od mikrokontrolera. Podczas zaniku napięcia zasilania dioda D2 zostanie spolaryzowana w kierunku zaporowym, diody D3 - D5 w kierunku przewodzenia a procesor będzie zasilany z baterii. Tranzystor T5 (BC548) wraz z rezystorem R25 (15k), R26 (3,3k) oraz R27 (15k) stanowi obwód wykrywania zaniku napięcia zasilającego.

Triaki Tr1 (BT138) oraz Tr2 (BT138) wraz z optotriakami OPT1 (MOC3042) i OPT2 (MOC3042) stanowią obwody wykonawcze uruchamiające sterowane urządzenia. Diody D6 (LED) i D7 (LED) włączone szeregowo z diodami optotriaków sygnalizują stan pracy triaków. Rezystory R19 (180R/100R) oraz R20 (180R/100R) ograniczają prąd diod D6 i D7.

Tranzystory T1 - T4 (BC557) wraz z rezystorami R1 - R8 (3,3k) są odpowiedzialne za sterowanie anodami wyswietlaczy podczas jego multipleksowania. Rezystory R9 - R16 (470R) ograniczają prąd segmentów wyświetlacza.

Budowa:


Urządzenie można zbudować w oparciu o płytkę dostępną tutaj. Rysunek w odbiciu lustrzanym dostępny jest tutaj. Montaż rozpoczynamy od wlutowania 3 zworek. Pod mikrokontroler stosujemy podstawkę DIP28 a pod wyświetlacz przeciętą na pół podstawkę DIP14. Może się okazać że wyświetlacz wymaga zastosowania dwóch podstawek włożonych jedna w drugą aby podnieść go podad stojący stabilizator i triaki, a tym samym ułatwić montaż płytki w obudowie. Diody D3 - D5 na schemacie zostały przewidziane ze względu na różnorodność doboru baterii i nie wszystkie muszą być montowane. Baterię oraz ilość diod należy dobrać tak aby na wyprowadzeniu 7 procesora napięcie pochodzące od zasilacza sieciowego było większe od napięcia w tym samym punkcie pochodzącego z baterii, jednocześnie pamiętając że mikrokontroler należy zasilać napięciem z przedziału 4,5 - 5,5 V. Kolejność pozostałych elementów jest dowolna. Pomocą przy budowie może okazać się dostępny tutaj schemat montażowy.

Wykaz Elementów:


4x Złącze śrubowe
1x Listwa Goldpin 1x2
1x Złącze szufladkowe na Goldpiny 1x8
4x uSwitch 12x12mm

2x 180R lub 100R
2x 220R
4x 330R
8x 470R
9x 3,3k
2x 15k

1x 5,6pF
1x 22pF
1x 10-20pF Trymer
1x 47uF Elektrolit
1x 220uF Elektrolit

1x Rezonator Kwarcowy 8MHz
1x 7805
1x ATMEGA8 + Podstawka
1x BC548
4x BC557
2x BT138
2x MOC3042
5x 1N4007
2x Dioda LED
1x Wyświetlacz poczwórny 7 segmentowy (TOF-5462Dx)

Programowanie:


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

'************* Konfiguracja uC *****************
'***********************************************
$regfile = "m8def.dat"
$crystal = 8000000
 
Config Portb = &B00000000 : Portb = &B11111111
Config Portc = &B11111111 : Portc = &B11111111
Config Portd = &B11111111 : Portd = &B11111111
 
Config Timer0 = Timer , Prescale = 64
Enable Timer0 : On Timer0 Prztimer0
 
Enable Interrupts
'********** Konfiguracja uC Koniec  ************
 
'******************  Zmienne *******************
'***********************************************
Dim N As Byte
 
Dim Czasakt_g As Byte , Czasakt_m As Byte , Czasakt_s As Byte
Dim Dwukropek As Bit
Dim Czasust_g(8) As Byte , Czasust_m(8) As Byte
Dim Tryb_pracy(2) As Byte
Dim Triak1 As Bit , Triak2 As Bit , Triak As Bit
Dim Praca_reczna_triak1 As Bit , Praca_reczna_triak2 As Bit
Dim Czasakt_w_minutach As Word
Dim Czasust_w_minutach(8) As Word
Dim Licznik_minut As Word
Dim Licznik_pomoc As Word
Dim Dzielnik_60 As Byte
Dim Zasilanie As Bit
 
Dim Poz_menu As Byte
Dim Licznik_podpowiedzi As Word
Dim Podpowiedz As Bit
Dim Autopowrot_menu As Word
 
Dim Flaga_4ms As Bit , Flaga_1s As Bit
Dim Timer_dziel250 As Byte , Timer_dziel2 As Bit
 
Dim W(4) As Byte
Dim Wartosc(2) As Byte
Dim Ktory_w As Byte
 
Dim Sw_port As Byte , Stan_portu As Byte
Dim Licznik_sw As Byte
'*************  Zmienne Koniec  ****************
'************ Warunki Poczatkowe ***************
'***********************************************
Poz_menu = 0
Praca_reczna_triak1 = 1
Praca_reczna_triak2 = 1
'*******  Warunki Poczatkowe Koniec  ***********
'**************  Petla glowna ******************
'***********************************************
Do
 
If Pinb.5 = 1 Then
  Zasilanie = 0
  Portc = 255
  Portd = 255
  Idle
Else
  Zasilanie = 1
End If
 
If Flaga_4ms = 1 And Zasilanie = 1 Then
  Flaga_4ms = 0
  Gosub Wyswietlanie
  Gosub Przyciski
End If
 
If Flaga_1s = 1 And Zasilanie = 1 Then
  Flaga_1s = 0
  Gosub Sterowanie
End If
 
Loop
End
'************ Petla glowna Koniec **************
'************ Przerwanie timer 0 ***************
'***********************************************
Prztimer0:                                                  'co 2ms
Timer0 = 6
Timer_dziel2 = Not Timer_dziel2
If Timer_dziel2 = 1 Then                                    'co 4ms
  Set Flaga_4ms
  Incr Timer_dziel250
  If Timer_dziel250 = 250 Then
    Timer_dziel250 = 0
    Dwukropek = Not Dwukropek
    Set Flaga_1s
    Incr Czasakt_s
    If Czasakt_s = 60 Then
      Czasakt_s = 0
      Incr Czasakt_m
      If Czasakt_m = 60 Then
        Czasakt_m = 0
        Incr Czasakt_g
        If Czasakt_g = 24 Then Czasakt_g = 0
      End If
    End If
  End If
End If
 
Return
'******** Przerwanie timer 0 Koniec ************
 
'************      Inne          ***************
'***********************************************
Wyswietlanie:
Incr Ktory_w
If Ktory_w = 4 Then Ktory_w = 0
 
If Podpowiedz = 0 Then
 Incr Licznik_podpowiedzi
 If Licznik_podpowiedzi = 500 Then
   Licznik_podpowiedzi = 0
   Podpowiedz = 1
 End If
End If
 
If Poz_menu <> 0 Then
  Incr Autopowrot_menu
  If Autopowrot_menu = 2500 Then
    Autopowrot_menu = 0
    Poz_menu = 0
  End If
Else
  Autopowrot_menu = 0
End If
 
Select Case Poz_menu
  Case 0:                                                   'czas
    Wartosc(1) = Czasakt_g
    Wartosc(2) = Czasakt_m
    Gosub Przelicz
  Case 1:                                                   'ustawianie czasu
    If Podpowiedz = 0 Then
      Wartosc(1) = Czasakt_g
      Wartosc(2) = Czasakt_m
      Gosub Przelicz
      Dwukropek = 0
    Else
      W(1) = 10 : W(2) = 11 : W(3) = 11 : W(4) = 10
      Dwukropek = 1
    End If
  Case 2 To 9:
    If Podpowiedz = 0 Then
      Wartosc(1) = Czasust_g(poz_menu - 1)
      Wartosc(2) = Czasust_m(poz_menu - 1)
      Gosub Przelicz
      Dwukropek = 0
    Else
      W(1) = 10 : W(2) = 11 : W(3) = Poz_menu - 1 : W(4) = 10
      Dwukropek = 1
    End If
  Case 100:
    W(1) = 12 : W(2) = 1 : W(3) = 10 : W(4) = Tryb_pracy(1)
    Dwukropek = 1
  Case 101:
    W(1) = 12 : W(2) = 2 : W(3) = 10 : W(4) = Tryb_pracy(2)
    Dwukropek = 1
End Select
 
Gosub Przedstaw_jako_znak
 
Select Case Ktory_w
  Case 0:
    Set Portc.2
    Portd = W(4)
    Reset Portc.5
  Case 1:
    Set Portc.5
    Portd = W(3)
    Reset Portc.4
  Case 2:
    Set Portc.4
    Portd = W(2)
    Reset Portc.3
  Case 3:
    Set Portc.3
    Portd = W(1)
    Reset Portc.2
End Select
 
Return
'******************************************************
Przedstaw_jako_znak:                                        'przeksztalca liczby na znaki wyswietlacza
 For N = 1 To 4
   W(n) = Lookup(w(n) , Tabela)
   W(n).7 = Dwukropek
 Next N
Return
'******************************************************
Przelicz:                                                   'przelicza 2 liczby dwucyfrowe na 4 znaki
  W(1) = Wartosc(1) / 10
  W(2) = Wartosc(1) Mod 10
  W(3) = Wartosc(2) / 10
  W(4) = Wartosc(2) Mod 10
  If W(1) = 0 Then W(1) = 10
Return
'******************************************************
Przyciski:
Sw_port = Pinb And &B00001111
 
If Sw_port <> 15 And Stan_portu = Sw_port Then
    Incr Licznik_sw
    If Licznik_sw = 120 Then
      Licznik_sw = 0
      Select Case Stan_portu
        Case 14:                                            '+g
          Select Case Poz_menu
            Case 0:
             If Tryb_pracy(1) = 0 Then Praca_reczna_triak1 = 0
            Case 1:
             Incr Czasakt_g
             If Czasakt_g = 24 Then Czasakt_g = 0
            Case 2 To 9:
             Incr Czasust_g(poz_menu - 1)
             If Czasust_g(poz_menu - 1) = 24 Then Czasust_g(poz_menu - 1) = 0
            Case 100:
             If Tryb_pracy(1) < 4 Then Incr Tryb_pracy(1)
          End Select
        Case 13:                                            '+m
          Select Case Poz_menu
            Case 0:
             If Tryb_pracy(2) = 0 Then Praca_reczna_triak2 = 0
            Case 1:
             Incr Czasakt_m
             If Czasakt_m = 60 Then Czasakt_m = 0
             Czasakt_s = 0
            Case 2 To 9:
             Incr Czasust_m(poz_menu - 1)
             If Czasust_m(poz_menu - 1) = 60 Then Czasust_m(poz_menu - 1) = 0
            Case 101:
             If Tryb_pracy(2) < 4 Then Incr Tryb_pracy(2)
          End Select
        Case 7:                                             '-g
          Select Case Poz_menu
            Case 0:
             If Tryb_pracy(1) = 0 Then Praca_reczna_triak1 = 1
            Case 1:
             Decr Czasakt_g
             If Czasakt_g = 255 Then Czasakt_g = 23
            Case 2 To 9:
             Decr Czasust_g(poz_menu - 1)
             If Czasust_g(poz_menu - 1) = 255 Then Czasust_g(poz_menu - 1) = 23
            Case 100:
             If Tryb_pracy(1) > 0 Then Decr Tryb_pracy(1)
          End Select
        Case 11:                                            '-m
          Select Case Poz_menu
            Case 0:
             If Tryb_pracy(2) = 0 Then Praca_reczna_triak2 = 1
            Case 1:
             Decr Czasakt_m
             If Czasakt_m = 255 Then Czasakt_m = 59
             Czasakt_s = 0
            Case 2 To 9:
             Decr Czasust_m(poz_menu - 1)
             If Czasust_m(poz_menu - 1) = 255 Then Czasust_m(poz_menu - 1) = 59
            Case 101:
             If Tryb_pracy(2) > 0 Then Decr Tryb_pracy(2)
          End Select
        Case 3:                                             'poz_menu (-g and -m)
          If Poz_menu < 10 Then
            Incr Poz_menu
            If Poz_menu = 10 Then Poz_menu = 0
            Dzielnik_60 = 0
            Licznik_minut = 0
          End If
        Case 6 :                                            '+g -g
          If Poz_menu = 0 Then Poz_menu = 100 Else If Poz_menu = 100 Then Poz_menu = 0
          Dzielnik_60 = 0
          Licznik_minut = 0
        Case 9 :                                            '+m -m
          If Poz_menu = 0 Then Poz_menu = 101 Else If Poz_menu = 101 Then Poz_menu = 0
          Dzielnik_60 = 0
          Licznik_minut = 0
      End Select
 
      Autopowrot_menu = 0
      Licznik_podpowiedzi = 0
      Podpowiedz = 0
 
    End If
  Else
    Stan_portu = Sw_port
    Licznik_sw = 70
  End If
Return
'******************************************************
Sterowanie:
Czasakt_w_minutach = Czasakt_g * 60
Czasakt_w_minutach = Czasakt_w_minutach + Czasakt_m
For N = 1 To 8
 Czasust_w_minutach(n) = Czasust_g(n) * 60
 Czasust_w_minutach(n) = Czasust_w_minutach(n) + Czasust_m(n)
Next N
 
Triak = 1
Select Case Tryb_pracy(1)
 Case 0:
   Triak = Praca_reczna_triak1
 Case 1:            'dziala od t1 do t2
   N = 1
   Gosub Porownaj_czas
 Case 2:            'dziala od t1 do t2 i od t3 do t4
   N = 1
   Gosub Porownaj_czas
   N = 3
   Gosub Porownaj_czas
 Case 3:           'dziala na t1 z przerwa t2
   N = 1
   Gosub Porownaj_czas2
 Case 4:           'dziala na t1 z przerwa t2 w czasie od t3 do t4
   N = 3
   Gosub Porownaj_czas
   If Triak = 0 Then
     Triak = 1
     N = 1
     Gosub Porownaj_czas2
   End If
End Select
Triak1 = Triak
 
Triak = 1
Select Case Tryb_pracy(2)
 Case 0:
   Triak = Praca_reczna_triak2
 Case 1:         'dziala od t5 do t6
   N = 5
   Gosub Porownaj_czas
 Case 2:         'dziala od t5 do t6 i od t7 do t8
   N = 5
   Gosub Porownaj_czas
   N = 7
   Gosub Porownaj_czas
 Case 3:         'dziala na t5 z przerwa t6
   N = 5
   Gosub Porownaj_czas2
 Case 4:          'dziala na t5 z przerwa t6 w czasie od t7 do t8
   N = 7
   Gosub Porownaj_czas
   If Triak = 0 Then
     Triak = 1
     N = 5
     Gosub Porownaj_czas2
   End If
End Select
Triak2 = Triak
 
If Portc.1 <> Triak1 Then Portc.1 = Triak1
If Portc.0 <> Triak2 Then Portc.0 = Triak2
Return
 
'******************************************************
 
Porownaj_czas:
   If Czasust_w_minutach(n) <= Czasust_w_minutach(n + 1) Then
     If Czasakt_w_minutach >= Czasust_w_minutach(n) Then
       If Czasakt_w_minutach < Czasust_w_minutach(n + 1) Then Triak = 0
     End If
   Else
     If Czasakt_w_minutach >= Czasust_w_minutach(n) Then Triak = 0
     If Czasakt_w_minutach < Czasust_w_minutach(n + 1) Then Triak = 0
   End If
Return
 
Porownaj_czas2:
  Incr Dzielnik_60
   If Dzielnik_60 = 60 Then                                  'co minute
     Dzielnik_60 = 0
     Incr Licznik_minut
   End If
   Licznik_pomoc = Czasust_w_minutach(n) + Czasust_w_minutach(n + 1)
   If Licznik_minut >= Licznik_pomoc Then Licznik_minut = 0
   If Licznik_minut < Czasust_w_minutach(n) Then Triak = 0
Return
 
'********    Inne   Koniec   *******************
Tabela:
    Data 192 , 249 , 164 , 176 , 153 , 146 , 130 , 248 , 128 , 144 , 255 , 7 , 136
'znak:    0     1     2     3     4     5     6     7     8     9    pusty  t    A

Na rysunku poniżej przedstawiona jest konfiguracja Fuse bitów mikrokontrolera (screen shot z programu BASCOM AVR Demo):

Obsługa:


Wyłącznik Czasowy zaprogramowany programem przedstawionym powyżej może pracować (dwa kanały niezależnie) w następujących trybach:

Tryb 0 - Praca ręczna. Praca nie zależy od ustawionych czasów. Przyciskami +G i +M uruchamiamy urządzenie odpowiednio w kanale 1 i 2, natomiast przyciskami -G i -M wyłączamy.
Tryb 1 - Przedział czasu. Urządzenie włączane jest na czas od godziny t1 do godziny t2. Dla drugiego kanału jest to odpowiednio t5 i t6. Pozostałe czasy są nieistotne w tym trybie pracy.
Tryb 2 - Dwa przedziały czasu. Urządzenie włączane jest na czas od godziny t1 do godziny t2 oraz od godziny t3 do godziny t4. Dla drugiego kanału jest to odpowiednio t5 i t6 oraz t7 i t8.
Tryb 3 - Cykliczne włączanie. Urządzenie włączane jest na czas t1 i wyłączane na czas t2. Dla drugiego kanału jest to odpowiednio czas t5 i przerwa t6. Pozostałe czasy są nieistotne w tym trybie pracy.
Tryb 4 - Cykliczne włączanie w przedziale czasu. Urządzenie włączane jest na czas t1 i wyłączane na czas t2, od godziny t3 do godziny t4. Dla drugiego kanału jest to odpowiednio czas t5 i przerwa t6 od godziny t7 do godziny t8.

Do menu wyboru trybów pracy wchodzimy i wychodzimy wciskając jednocześnie +G i -G podczas wyświetlania czasu (dla kanału 2 wciskamy jednocześnie +M i -M). Zmianę trybów dokonujemy przyciskami +G i -G dla kanału 1 oraz przyciskami +M i -M dla kanału 2.

Ustawienia czasu aktualnego oraz wszyskich 8 wspomnianych wcześniej czasów dokonujemy przez jednoczesne wciśnięcie klawiszy -G oraz -M. Kolejnym wciśnięciem -G i -M przechodzimy do ustawień następnego czasu. Za pomocą przycisków +G i -G ustawiamy godziny, a dzięki +M i -M minuty. Gdy nie naciskamy zadnego przycisku przez ok. 1s, zobaczymy podpowiedź jaki czas aktualnie jest ustawiany ("tt"- aktualny czas, "t1" - czas t1, itd.).

Zdjęcia Projektu:

ZałącznikWielkość
Schemat83.62 KB
Płytka21.78 KB
Płytka (odbicie lustrzane)21.84 KB
Płytka (2 na stronie)40.92 KB
Montowanie31.16 KB
Opis11.45 KB
Opis (odbicie lustrzane)11.41 KB
Punkty lutownicze10.74 KB
Punkty lutownicze (odbicie lustrzane)10.79 KB
Kod Źródłowy11.16 KB
Program po kompilacji (BIN)3.81 KB
Program po kompilacji (HEX)10.73 KB
Kod Źródłowy (2009.07.05) (Poprawka w trybie 3)11.16 KB
Kod Źródłowy (2015.10.11) (poprawione tryby 3 i 4)11.58 KB



Portret użytkownika mirley

Re: Timer

Not o zajmij się układem Timer Fotograficzny bo on działa dokladnie w taki sposób. Ustawisz czas, klikasz start i po odliczeniu czasu jest dźwięk i układ czeka na kolejny start

-

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 Doctore

...

Huh, no to fajnie bo już zamówiłem elementy na ten układ z tego tutaj.
Ale ten fotograficzny ma chyba max. ustawiany czas 1h, czy się mylę?

-

Co cie nie zabije to cie wzmocni(nie dotyczy kondensatora 400V w zasilaczu impulsowym).

Portret użytkownika mirley

Re: Timer

Zdecydowanie prościej jest przerobić timer fotograficzny żeby liczył w godzinach niż napisać program od nowa do tego układu. Elementy sa prawie takie same za wyjątkiem wyświetlacza. Zrób najpierw timer fotograficzny aby liczył do 1h a potem przerobie program tak aby dało się liczyć w gg:mm zamiast mm:ss

-

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 Doctore

...

Ok, zrobię termostat a potem wezmę się za ten timer fotograficzny, dzięki za pomoc.

-

Co cie nie zabije to cie wzmocni(nie dotyczy kondensatora 400V w zasilaczu impulsowym).

Portret użytkownika luki

Witam! Mam taki problem. Tryb

Witam!
Mam taki problem. Tryb 1 i 2 działa bez zarzutu, natomiast tryb 3 i 4 niezależnie na jaki czas je nastawie działają w taki sposób, że urządzenia załączy się na 1s i wyłączy też na 1s.
Pozdrawiam

Portret użytkownika kimi9

tryb3

Potrzebuję z tego programu tylko 3 tryb, pomożecie "wydobyć" go, bo niestety tracę się w tym.. ;/

Portret użytkownika Tomson

tryby problem

Witam, mam problem z trybami, ponieważ nie mogę trybu 0 odpalić za pomocą +G i +M. Tryb 3 też mam problem ponieważ nie reaguje układ, gdy ustawie jakiś przedział czasu np. t1 na 2 min a t2 na 3 min to dioda i tak się świeci cały czas od momentu włączenia trybu 3. W czym może być kłopot proszę o pomoc?

Portret użytkownika EDC

Odp. Tryby problem

Według opisu to tak ma działać więc chyba +G i +M nie ma zastosowania.

Miłego dnia

-

BARTek
Moja strona

Portret użytkownika Blaster

wyświetlacz

POMOCY
na schemacie jak w mordę wyświetlacz ma 14 nóżek. Szukałem wytrwale, ale dostałem tylko taki: http://electropark.pl/wyswietlacze-led/112-wyswietlacz-7-segmentowy-poczworny-zielony-anoda-5901000112005.html

Jak to cholerstwo podłączyć żeby działało jak ten 14 nóżkowy? Proszę o szybką pomoc

Portret użytkownika EDC

Odp. Wyświetlacz

Długo nie szukałem ;) Wyszukiwana w google fraza "TOF-5462Dx" i pierwszy wynik ->LINK<- Nie chce mi sie szukać tego drugiego "po wyglądzie" Wpisz numery swojego w google albo bateryjką i 1kOhm rezystorkiem go sobie prześwietl, rozpisz i podłącz analogicznie.

-

BARTek
Moja strona

Portret użytkownika Maniek

Hejka! Mam takie pytanie.

Hejka!
Mam takie pytanie. Używam programu AVR Studio do zaprogramowania mój uP i chciałem się dowiedzieć czy jak ustawiam Fuse to mam tam zmienić tylko ten zegar na Ext. Crystal.... czy coś jeszcze? Bo mój problem polega na tym że wyświetlają mi się trzy zera i liczy mi co minutę i jedyne co mogę zmieniać to to że jak wcisne S4 leci mi czas i to nawet nie co sekundę od 59 w dół i jak dojdzie do zera to powtarza to jeszcze raz oraz po wciśnięciu S2 wyskakuje mi A 02 i tyle :/ nie wiem czy to jest błąd w ustawieniach Fuse czy może zwarcie gdzieś jest na płytcę. Jakby ktoś się coś domyślał prosiłbym o pomoc ponieważ zielony jestem jeszcze w tym wszystkim i dopiero się uczę ;)
Pozdrawiam Michał ;)

Portret użytkownika EDC

Fuse Bits do Wyłacznika Czasowego

Witam. Popatrz na screen z Fusami który zamieścił autor. Obok każdej "gałęzi" ustawienia fusów zapisane sa w postaci bajtu. DF - fusebits low i D9 - fusebits high. Jeśli masz możliwość takiego zapisu w programatorze to już jesteś w domu :)
Jeśli nie, to polecam Ci darmowy dla Atmega8 i Attiny2313 program który "wspomaga" w ustawianiu Fusów. Z jego pozycji nawet można obsługiwać programator. Poniżej screen z ustawieniami jaki przedstawia dla DF D9. Może z "ptaszkami" będzie ci łatwiej :D

Tak w ogóle to wszystko jest też tutaj za darmo i dla wszystkich AVR Kalkulator AVR Online

Miłego dnia.

-

BARTek
Moja strona

Portret użytkownika kik

płytka

Witam.
Fajny układzik, czy ktoś robi gotowe płytki drukowane do tego projektu. Chętnie "przytulę" 2 szt. Pozdrawiam.

Portret użytkownika Mariusz

Pytanie

Witam serdecznie.
Mam podobne obserwacje jak Tomson - u mnie Tryby 3 i 4 nie działają poprawnie (wyłącznik załącza się na kilka sekund w nieregularnej formie).
Czy problem tkwi w programie? Używał ktoś z was tych trybów?
Inne pytanie:
Czy dla zwiększenia zakresu pracy można zmostkować dwa kanały równolegle (żeby z 2 zakresów pracy mieć 4 dla tego samego odbiornika)? Nie zaszkodzi to triakom?
Z góry dziękuję za odpowiedź.

Portret użytkownika mirley

Re: Wyl. czasowy

Jeśli chodzi o tryby 3 i4 to spróbuj zostawić włączony tylko jeden kanał w trybie 3 lub 4 a drugi niech będzie wyłączony..... problem jest z procedurą: Porownaj_czas2 bo jak działają dwa kanały w trybie np 3 to jest wykonywane 2 razy w ciągu jednego cyklu....

Trzeba dodac procedurę:

Porownaj_czas3:
  Incr Dzielnik_60_2
   If Dzielnik_60_2 = 60 Then                                  'co minute
     Dzielnik_60_2 = 0
     Incr Licznik_minut2
   End If
   Licznik_pomoc = Czasust_w_minutach(n) + Czasust_w_minutach(n + 1)
   If Licznik_minut2 >= Licznik_pomoc Then Licznik_minut2 = 0
   If Licznik_minut2 < Czasust_w_minutach(n) Then Triak = 0
Return

Trzeba też dodać dwie zmienne

Licznik_minut2 i Dzielnik_60_2 

Takiego samego typu jak ich odpowiedniki w procedurze porownaj_czas2

W kanale drugim trzeba dać wywołanie do porownaj_czas3 zamiast porownaj_czas2

Co do mostkowania kanałów to powinno działać bez problemu

-

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 Mariusz

Dzięki Mirley za odpowiedź

Dzięki Mirley za odpowiedź :)
W trybie 3 i 4 korzystam tylko z jednego kanału.
Czyli bez ingerencji w program się nie obędzie?
Pozdrawiam

Portret użytkownika Mariusz

Próba

Witam serdecznie.
Po wcześniejszych obserwacjach postanowiłem przetestować wszystkie możliwe ustawienia wyłącznika. Wygląda to następująco:
Tryb 0 - wszystko działa poprawnie dla obydwu kanałach.
Tryb 1 - działa tylko ustawienie dla kanału pierwszego dla czasów t1 i t2. Drugi kanał nie działa.
Tryb 2 - działa tylko dla pierwszego kanału dla czasów t1, t2 i t3, t4. Drugi kanał nie działa.
Tryb 3 - nie działa na obydwu kanałach.
Tryb 4 - nie działa na obydwu kanałach.
Stąd ogromna prośba do Mirley - czy mógłbyś zmienić program, tak aby działał tylko dla jednego kanału, ale dla wszystkich trybów?

Portret użytkownika mirley

Re: Wyłącznik Czasowy

Nie rozumiem czemu to nie działa..... rozumiem tryby 3 i 4 na drugim kanale bo znalazłem błąd o którym pisałem ale sam używałem długo tego wyłącznika i nie miałem problemów..... cóż sprawdzę soft w wolnej chwili ale na pewnie nie przed 11 lutym bo mam dużo na głowie

-

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 Mariusz

Wielkie dzięki Mirley za

Wielkie dzięki Mirley za podjęcie tematu.
Wyłącznik mam od Ciebie, i nic przy nim nie grzebałem. Długo używałem go do innego celu na trybie 2 i tylko na 1 kanale, więc nie sprawdziłem wcześniej wszystkich jego możliwości. Teraz przydał mi się do innego celu, więc teraz to wyszło.
Tak więc bez pośpiechu. Będę wdzięczny za program tylko dla jednego kanału, bo drugiego nie używam.
Jeszcze raz wielkie dzięki!

Portret użytkownika Mariusz

Trochę czasu już minęło, a ja

Trochę czasu już minęło, a ja nadal "podbijam" prośbę...
Mirley, dałbyś radę przerobić program tylko dla jednego kanału?

Portret użytkownika mirley

Re: wylacznik czasowy

Wrzucilem poprawiony kod - bez testowania
Powinny dzialać teraz tryby 3 i 4.
Nie widze żadnej różnicy miedzy kodem dla kanału 1 i 2.... czy napewno ustawileś dobry tryb w drugim kanale? i dobre czasy? Drugi kanal dziala dla t5-t8

-

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 maciek1221

Odliczanie czasu

Witam,
czy to urządzenie może działać w następujący sposób: po wciśnięciu micro switcha, urządzenie uruchamia się, odmierza np.: 10 sekund, następnie wysyła sygnał do innego urządzenia aby się włączyło, po czym sam timer się wyłącza? Po czym znowu następuje ten ciąg, ale w niesprecyzowanym odstępie czasowym.

Na przykładzie: coś naciska na włącznik, wtedy timer ma odliczyć 10 sekund i uruchomić silnik. Za kilka minut znowu będzie naciśnięcie włącznika i znowu ma po 10 sekundach uruchomić silnik.

Portret użytkownika mirley

Re: Timer

Układ timera fotograficznego działa w podobny sposób, tylko że załącza odbiornik na konkretny czas po kliknięciu przycisku....

-

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 Mariusz

Nowy soft

Już dawno tu nie zaglądałem, a tu nowy soft - WIELKIE DZIĘKI Mirku za to!!!
Sprawdziłem wszystkie tryby i wszystkie kanały.
I tak:
Tryb 0 dla obu kanałów działa poprawnie.
Tryb 1 dla obu kanałów działa poprawnie.
Tryb 2 dla obu kanałów działa poprawnie.
Tryb 3 dla oby kanałów minuty to sekundy, a godziny to minuty (np. 00:10 to 10 sekund, a nie 10 minut).
Tryb 4 nie działa dla obydwu kanałów.
Pozdrawiam

Portret użytkownika mirley

Re: Wylącznik Czasowy

Myślalem że już wszystko sprawdziłem..... tak czy inaczej na razie nie będę z tym grzebał... powstanie niebawem nowa wersja na nowej stronie. Jak tylko uporam się z bieżącymi zadaniami

-

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 Hetman

Program

Czesc.jak by wygladal prosty program na atmega8 wylaczania ktoregos pinu po okreslonym czasie od włączenia? Tz wlaczam zasilanie, zapala sie dioda na 40 minut. Po czym gasnie do ponownego zalaczenia zasilania. .

Portret użytkownika mirley

Re: wylacznik

A może coś takiego... http://mirley.net/cyfrowy_wylacznik_wielokanalowy.html jest tu 10 kanałów, sterowanych z PC. Możesz sobie dowolnie czasy ustawić

-

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 complex

problem z zaprogramowaniem

Witam
Bardzo fajny projekt i chciałbym wykonać taki włącznik.
Mam płytkę testową ZL2AVR v-2 na której uruchomiłem już kilka atmeli, ale niestety po zaprogramowaniu wyświetlacze nic nie wyświetlają.
Połączenia sprawdzone, sterowanie anodami jest podobne, segmentami też. łącząc odpowiednie piny z masą (zamiast procka)zaświecają się segmenty
dlatego wydaje się ze tu jest ok. zamiast przekaźników mam diody LED, po zaprogramowaniu świecą ciągle.
Być może jest jakiś problem z ustawieniem fusebitów, próbowałem zarówno w Baskomie jak i w AVR Kalkulatorze. Wynik zawsze jest negatywny.
Do tej pory różne inne układy (woltomierze i tym podobne) były z wyświetlaczami LCD i nie miałem takich problemów. Proszę o pomoc bo nie mam już pomysłu.

Portret użytkownika mirley

Re: Wylacznik

A zwarłeś pin pb.5 do masy. Na schemacie masz detektor zasilania zewnętrznego, jak nie ma zasilania to wyświetlacze led nic nie pokazują, tylko procek chodzi na baterii

-

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 Maci

Pytania odnośnie schematu.

Jestem w tym temacie trochę zielony. Stąd ma dwa pytania co do schematu:
1. Do czego służy zworka JP i sąsiadujący z nim tranzystor? Wiem że zworkę należy rozłączyć na czas programowania, ale nie wiem czemu ona tam w ogóle jest;
2. Czy wejściem do programatora może być JTAG 2x5? Jeśli tak to do jakich pinów powinienem go podpiąć. Jeśli nie, to czy istnieje jakaś przejściówka?

Portret użytkownika mirley

Re: Sterownik

1. JP i tranzystor T5 to detektor zasilania zewnętrznego. Tranzystor zwiera pin procesora do masy w momencie jak zasilanie (z zasilacza) jest podłączone. Jak ukłąd chodzi na baterii to tranzystor jest rozwarty. JP jest potrzebna aby podczas normalnej pracy dało sie zaprogramowac procka bo inaczej cały czas SCK jest na masie - niefortunny dobór pinów niestety - teraz bym tak nie zrobił

2. Jezeli chcesz programowac przez JTAG to nie mam z tym doświadczenia - zawsze uzywam ISP, czyli pinów MOSI, MISO, SCK i RST

-

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 Maci

JTAG

Z tego co wyczytałem do ATMega8 nie można nawet podpiąć JTAG-a bo nie ma takich wejść. Tylko mikrokontrolery ATMega16 i wzwyż mają odpowiednie piny.
Mniejsza, dam radę z ISP. Dziękuję za szybką odpowiedź. :)