Timer Fotograficzny


5.33333
Ocena: None Średnia: 5.3 (3 głosujących)

Opisywany układ jest timerem fotograficznym a przynajmniej został tak nazwany przez kolegę z forum dla którego został zaprojektowany. Jak sam określił urządzenie to ma wspomóc jego domową ciemnię fotograficzną. Całość zbudowana jest w oparciu o mikrokontroler ATMEGA8 i może być zasilana z ładowarki od telefonu komórkowego. Pięcioprzyciskowa klawiatura i wyświetlacz LCD sprawiają że bardzo łatwo jest ustawić rządany czas pracy (z dokładnością do 0,1s). Dwa wyjścia timera wystawiają sygnały sterujące w postaci aktywnego "0" lub "1" co umożliwia bezpośrednie zastosowanie do włączania lub wyłączania urządzeń na określony czas. Dodatkowo na płytce przewidziano miejsce na buzzer, zapewniający sygnalizację dźwiękową upłyniętego czasu. Płytka urządzenia jest tak zaprojektowana aby umożliwić odcięcie klawiatury od reszty układu i dolutowanie jej na przewodach. Stwarza to wiele wariantów na zamontowanie całości w obudowie. Bez klawiatury płytka ma taki sam wymiar jak standardowy wyświetlacz LCD 16x2, więc nie będzie problemu z potrzebnym miejscem na jej zamontowanie w obudowie.

Działanie:


Schemat ideowy timera przedstawiony jest na rysunku poniżej:

Sercem układu jest mikrokontroler U1 (ATMEGA 8) wraz z rezonatorem kwarcowym X1 (16MHz) i dwoma kondensatorami C1 (22pF) i C2 (22pF). Przyciski S1 - S6 (uSwitch) stanowią klawiaturę timera. Tranzystor T1 (BC556) wraz z rezystorami R1 (3,3k) i R2 (3,3k) sterują pracą buzzera z generatorem B1, ktorego zadaniem jest sygnalizacja dźwiękowa upłyniętego czasu. Złącze prog (Goldpin) pełni funkcję interfejsu programującego, podobnie jak pojedyńcze piny Res i VCC. Złącze OUT dostarcza dwa sygnały sterujące (jeden jest negacją drugiego) dla układu wykonawczego, ktorym może być triak lub przekaźnik. Wyświetlacz LCD W1 (16x2) odpowiada na prezentację odliczanego czasu i statusu działania urządzenia. Potencjometr montażowy P1 (10k) umożliwia regulacje kontrastu wyświetlacza a rezystor R3 (47R) ogranicza prąd jego podświetlania. Za stabilizację napięcia podłączonego do złącza Zas odpowiada układ U2 (7805) wraz z kondensatorami C3 (220uF), C4 (47uF) i C5 (100nF).

Budowa:

Timer można zbudować w oparciu o dostępna tutaj płytkę drukowaną. Rysunek w odbiciu lustrzanym można pobrać tutaj. Montaż należy rozpocząć od wlutowania trzech zworek, a w szczegolności tej znajdującej się pod mikrokontrolerem. W drugiej kolejności należy wlutować wszystkie rezystory. Jeżeli klawiatura nie będzie montowana na płytce, należy ją odciąć na prawo od punktow lutowniczych, ktore w końcowej fazie montażu posłużą do przylutowania kawałka tasiemki od klawiatury. Pod mikrokontroler U1 dobrze jest zastosować podstawkę. Rezonator kwarcowy X1 powinien być w wersji "niskiej" aby wyświetlacz LCD mogł być zamontowany nad całością bez większych problemow. Stabilizator napięcia U2 oraz kondensatory C3 i C4 mają być wlutowane na leżąco z tych samych powodow. Brzęczyk z generatorem B1 pełni funkcję sygnalizacyjną i nie jest wymagany do poprawnej pracy całego urządzenia. Gdy nie jest używany nie należy montować elementow T1, R1 i R2. Pomocą w konstrukcji może okazać się schemat montażowy dostępny tutaj.

Wykaz Elementów:


6x uSwitch 5x5mm
1x Listwa Goldpin 1x2
1x Listwa Goldpin 1x3
1x Listwa Goldpin 1x4 (Prog)

2x 3,3k
1x 47R
1x Potencjometr Montażowy 10k

2x 22pF
1x 100nF
1x 47uF Elektrolit
1x 220uF Elektrolit

1x Rezonator Kwarcowy 16MHz
1x BC556
1x Stabilizator 7805
1x Mikrokontroler ATMEGA8 + Podstawka
1x Buzzer z Generatorem 5V
1x Wyświetlacz LCD 16x2

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 = 16000000
 
Config Portb = &B11111111 : Portb = &B11111111
Config Portc = &B11111111 : Portc = &B11111111
Config Portd = &B00000011 : Portd = &B11111111
 
Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5
Config Lcd = 16 * 2
Deflcdchar 0 , 32 , 32 , 32 , 32 , 32 , 31 , 14 , 4
Cls
Cursor Off Noblink
 
Sw_port Alias Pind
Triak Alias Portb.2
Triak2 Alias Portb.1
Buzzer Alias Portd.1
 
Config Timer0 = Timer , Prescale = 256
Enable Timer0 : On Timer0 Prztimer0
 
Enable Interrupts
'********** Konfiguracja uC Koniec  ************
 
'******************  Zmienne *******************
'***********************************************
Dim Tryb As Byte , Wyswietl As Byte
Dim Odliczanie As Bit , Poz_ust As Byte
Dim Licz_01s As Word , Licz_01s_u As Word , Dzielnik As Byte
Dim Help As Word
Dim Flaga_4ms As Bit
Dim Sw As Byte , Stan_sw As Byte , Licznik_sw As Byte
'*************  Zmienne Koniec  ****************
'************ Warunki Poczatkowe ***************
'***********************************************
Licz_01s = 600
Licz_01s_u = 600
 
Wyswietl = 1
Poz_ust = 2                                                 'ktora sie ustawia pozycja
'*******  Warunki Poczatkowe Koniec  ***********
Lcd "  Wersja  0.97  "
Lowerline
Lcd " Autor:  Mirley"
Wait 2
Reset Buzzer
Waitms 200
Set Buzzer
'**************  Petla glowna ******************
'***********************************************
Do
  If Flaga_4ms = 1 Then
    Flaga_4ms = 0
    Gosub Wyswietlanie
    Gosub Przyciski
  End If
Loop
End
'************ Petla glowna Koniec **************
'************ Przerwanie timer 0 ***************
'***********************************************
Prztimer0:                                                  'co 4ms
  Timer0 = 5
  Flaga_4ms = 1
  If Odliczanie = 1 Then
    Incr Dzielnik
    If Dzielnik = 25 Then
      Dzielnik = 0
 
      If Licz_01s = 0 Then
        Gosub Zatrzymaj_liczenie
        Reset Buzzer
        Waitms 200
        Set Buzzer
        Waitms 200
        Reset Buzzer
        Waitms 200
        Set Buzzer
        Waitms 200
        Reset Buzzer
        Waitms 200
        Set Buzzer
      Else
        Decr Licz_01s
        Wyswietl = 2
      End If
 
    End If
  Else
    Dzielnik = 0
  End If
Return
'******** Przerwanie timer 0 Koniec ************
 
'**************    Wyswietlannie    ***********
Wyswietlanie:
 If Wyswietl <> 0 Then
  Select Case Wyswietl
    Case 1:
      Cls
      Lcd "            Stop"
      Locate 1 , Poz_ust
      Lcd Chr(0)
    Case 2:
      If Tryb <> 2 Then
        Cls
        Lcd " Odliczanie ..."
      End If
    Case 3:
      Cls
      Lcd "   Podglad"
 
  End Select
 
  Help = Licz_01s Mod 10                                    'dzies sek
  Locate 2 , 7
  Lcd "," ; Help ; "  mm:ss"
  Help = Licz_01s / 10
  Help = Help Mod 60                                        'sekundy
  Locate 2 , 4
  Lcd ":"
  If Help < 10 Then Lcd "0"
  Lcd Help
  Help = Licz_01s / 600                                     'minuty
  Locate 2 , 2
  If Help < 10 Then Lcd "0"
  Lcd Help
 
  Tryb = Wyswietl
  Wyswietl = 0
 End If
Return
'************** Wyswietlannie Koniec ***********
 
'**************    Przyciski  ***********
Przyciski:
Sw = Sw_port And &B11111100
 
If Sw <> &B11111100 And Stan_sw = Sw Then
    Incr Licznik_sw
    If Licznik_sw = 100 Then
      Licznik_sw = 0
      Select Case Stan_sw
        '*********************
        Case &B01111100:                                    'up
          If Tryb = 1 Then
            Select Case Poz_ust
              Case 2:
                If Licz_01s_u <= 54009 Then Licz_01s_u = Licz_01s_u + 6000
              Case 3:
                If Licz_01s_u <= 59409 Then Licz_01s_u = Licz_01s_u + 600
              Case 5:
                If Licz_01s_u <= 59909 Then Licz_01s_u = Licz_01s_u + 100
              Case 6:
                If Licz_01s_u <= 59999 Then Licz_01s_u = Licz_01s_u + 10
              Case 8:
                If Licz_01s_u <= 60008 Then Licz_01s_u = Licz_01s_u + 1
            End Select
            Licz_01s = Licz_01s_u
            Wyswietl = 1
          Else
            Gosub Zatrzymaj_liczenie
          End If
        '*********************
        Case &B10111100:                                    'right
          If Tryb = 1 Then
            Incr Poz_ust
            If Poz_ust = 9 Then Poz_ust = 2
            If Poz_ust = 4 Then Poz_ust = 5
            If Poz_ust = 7 Then Poz_ust = 8
            Wyswietl = 1
          Else
            Gosub Zatrzymaj_liczenie
          End If
        '*********************
        Case &B11101100:                                    'down
        If Tryb = 1 Then
            Select Case Poz_ust
              Case 2:
                If Licz_01s_u > 6000 Then Licz_01s_u = Licz_01s_u - 6000
              Case 3:
                If Licz_01s_u > 600 Then Licz_01s_u = Licz_01s_u - 600
              Case 5:
                If Licz_01s_u > 100 Then Licz_01s_u = Licz_01s_u - 100
              Case 6:
                If Licz_01s_u > 10 Then Licz_01s_u = Licz_01s_u - 10
              Case 8:
                If Licz_01s_u > 1 Then Licz_01s_u = Licz_01s_u - 1
            End Select
            Licz_01s = Licz_01s_u
            Wyswietl = 1
          Else
            Gosub Zatrzymaj_liczenie
          End If
 
        '*********************
        Case &B11011100:                                    'left
         If Tryb = 1 Then
            Decr Poz_ust
            If Poz_ust = 1 Then Poz_ust = 8
            If Poz_ust = 4 Then Poz_ust = 3
            If Poz_ust = 7 Then Poz_ust = 6
            Wyswietl = 1
          Else
            Gosub Zatrzymaj_liczenie
          End If
        '*********************
        Case &B11111000:                                    'start stop
          If Odliczanie = 0 Then
            Reset Triak
            Set Triak2
            Licz_01s = Licz_01s_u
            Odliczanie = 1
            Wyswietl = 2
          Else
            Gosub Zatrzymaj_liczenie
          End If
        '*********************
        Case &B11110100:                                    'podglad
          If Tryb = 1 Then
            Reset Triak
            Set Triak2
            Wyswietl = 3
          Else
            Gosub Zatrzymaj_liczenie
          End If
 
      End Select
    End If
  Else
    Stan_sw = Sw
    Licznik_sw = 70
  End If
Return
'************** Przyciski Koniec ***********
'**************    Stop  ***********
Zatrzymaj_liczenie:
  Set Triak
  Reset Triak2
  Licz_01s = Licz_01s_u
  Odliczanie = 0
  Wyswietl = 1
Return
'************** stop Koniec ***********

Poniżej przedstawione są ustawienia bitów konfiguracyjnych mikrokontrolera ATMEGA8 (zaznaczone pole odpowiada bitowi zaprogramowanemu - stan "0"):

Zdjęcia Projektu:

ZałącznikWielkość
Schemat83.98 KB
Płytka15.18 KB
Płytka (odbicie lustrzane)15.26 KB
Płytka (3 na stronie)40.34 KB
Montowanie20.63 KB
Kod Źródłowy6.84 KB
Program po kompilacji (BIN)2.6 KB
Program po kompilacji (HEX)7.34 KB
Kod Źródłowy (2009.04.25, dodano zapis do EEPROM)7.18 KB
Program po kompilacji (BIN) (2009.04.25)2.8 KB
Program po kompilacji (HEX) (2009.04.25)7.9 KB
Kod Źródłowy (2013.07.25, czas do 12h co 1s) nie kompilowany i nie testowany7.25 KB



Portret użytkownika gosc

Z poprzedniego zegara mam

Z poprzedniego zegara mam układ wykonawczy jak w linku: [img=http://img376.imageshack.us/img376/5319/screenhunter001aj8.th.jpg]

Z tego co mierzyłem (względem masy zasilania) na sterowniku sterującym tym układem na CON2 pinie 1 pojawia się w zależności od stanu - odliczanie - jest 5V - stop- jest 0V.
Natomiast na drugim pinie cały czas jest niespełna 2V bez względu na stan pracy.
Poprzednik był kitem z AVT o nazwie AVT-2057.

Czy mogę ten układ wykorzystać w Twoim projekcie połączając GND z OUT do 2 pinu z CON2 oraz jedno z wyjść logicznych z OUT do 1 pinu w CON2?

Portret użytkownika mirley

Re: Timer

Schemat który mi wysłałeś jest za mały aby coś zobaczyć. Znalazłem coś takiego http://www.elportal.pl/pdf/k07/22_12.pdf (schemat z rysunku 2 w tym pliku)

Aby wykorzystać układ wykonawczy z tego projektu w moim timerze musisz podłączyć GND timera do GND układu wykonawczego (pin 4 CON4), oraz port PB1 timera (złącze OUT) do pinu 1 w złączu CON4 twojego układu wykonawczego i to wszystko odnośnie sterowania. Możesz też wykorzystać zasilacz w układzie wykonawczym do zasilania timera (pin 3 złącze CON4). Obwód z tranzystorem T3 nie będzie wtedy do niczego potrzebny.

Ps. Nie dziwne że na pinie 2 złącza CON2 w sterowniku jest zawsze 2V, bo jest to wejście sygnału z obwodu z tranzystorem T3 z układu wykonawczego.

-

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

Może nie na temat... ale

Może nie na temat... ale jakie zadanie w projekcie AVT ma obwód z T3?

Portret użytkownika gosc

Podczas kompilacji programu

Podczas kompilacji programu wyskakuje komunikat:

Quote:
AT90S2313 not found
Co może być tego powodem?

Portret użytkownika mirley

Re: T3 w proj. AVT

Tranzystor T3 wraz z rezystorem na swoim kolektorze, generuje dodatnie szpilki synchronizacyjne. Dzięki rezystorom na jego bazie stan wysoki (na kolektorze T3) pojawi się gdy napięcie tętniące z mostka prostowniczego opadnie poniżej ok. 3V a stan niski powróci ponownie gdy napięcie wzrośnie ponad ta wartość i za pomocą rezystorów odetka tranzystor. Jedno ze zbocz tego sygnału (100Hz) wykorzystywane jest do odmierzania czasu (ewentualnie synchronizacji licznika).

Wartość progu włączenia którą podałem jest przyblizona i to mocno ponieważ pominąłem prądy bazy itp. przy rachunkach :)

Ps. Proszę jak to możliwe napisać kto zadaje pytanie (w polu nazwisko wpisać jakis pseudonim) bo w pewnym momencie trudno mi się zorientować czy pytanie zadał "gość" czy może "gość" albo ewntualnie "gość" :)

-

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 mirley

Re: Kompilacja Programu

Błąd o którym mowa nie może się nigdy pojawić przy kompilacji jeśli używasz mojego kodu źródłowego. Zawsze na poczętku kodu umieszczam wszystkie konfiguracje żeby nic w bascomie nie trzeba było ustawiać. Taki błąd może się pojawić gdy programujesz gotowym plikiem *.hex w bascomie a otwarty jest jakiś pusty projekt. Standardowe ustawienie w bascomie to właśnie AT90S2313 jak dobrze pamiętam. Przy programowaniu gotowym plikiem *.hex lub *.bin nie należy się tym przejmować gdyz został on już z pewnością przystosowany do tego mikrokontrolera. Gdy natomiast kompilujesz któryś z moich projektów (po wprowadzeniu zmian) także nie musisz się zajmować ustawieniami bascoma bo na początku programu są wszystkie wypisane a kod źródłowy ma priorytet nad ustawieniami w menu.

Tak na marginesie komunikat o którym mowa wskazuje na problem komunikacji mikrokontrolera z komputerem (ew. błąd programatora lub brak zasilania układu). Jeżeli bascom uzyskał komunikację z mikrokontrolerem to przeważnie jest komunikat że podłączony mikrokontroler nie zgadza się z tym zadeklarowanym w menu co przy programowaniu plikiem hex nie ma znaczenia. Proszę przeczytać artykuł o programowaniu mikrokontrolerów AVR w dziale "Artykuły Różne"

Ps. Proszę jak to możliwe napisać kto zadaje pytanie (w polu nazwisko wpisać jakis pseudonim) bo w pewnym momencie trudno mi się zorientować czy pytanie zadał "gość" czy może "gość" albo ewntualnie "gość" :)

-

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 (Tomek)

układ wykonawczy

mam pytanie,
czy ten układ wykonawczy, znaleziony na Twojej stronie: http://mirley.firlej.org/wykonawczy_triak będzie nadawał się do podłączenia do tego timer'a? i czy bedzie można potem sprawdzić działanie całego układu gdy do jego wyjścia podłączymy załóżmy zwykłą diodę, żaróweczke czy silniczek na DC??

Portret użytkownika mirley

Re: Timer

Do wyjścia OUT można dołączyć na początku diodę led szeregowo z rezystorem 330R a potem zamiast diody poprzez ten sam rezystor podłączyć wspomniany układ wykonawczy. Wszystko powinno działać bez problemó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 mirley

Timer Fotograficzny - Aktualizacja

Dodałem nową wersję programu dla timera fotograficznego. Urządzenie zapisuje teraz ostatnio używany czas jeśli przez 1s nie dotyka się klawiatury :)

-

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 serv_

A czy ta opcja nie była

A czy ta opcja nie była wbudowana już w poprzednią wersję?
Proszę bardziej opisać aktualizację bo nie rozumiem :)

-

-Mamo, zrób mi kanapkę.
-Sam sobie zrób.
-SUDO Mamo, zrób mi kanapkę.
-OK.

Portret użytkownika mirley

Re: Timer

Ta aktualizacja zapisuje czas do pamięci eeprom i przy wyłączeniu układu czas jest pamiętany. Przywraca się ponownie po włączeniu układu. W poprzedniej wersji po włączeniu timer był zawsze ustawiony na 1 min.

-

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

pytanie odnosnie fusebitow

Witaj
Dzieki za projekcik - wlasne ejstem na ukonczeniu go - tylko mam problem z ustawienie fusebitow w BASCOMIE - mam prograator zgodny z STK200/300 a nie na USB wiec zrzut z Burn-o-mat zabardzo nic mi nie mowi, czy moglbym poprosic o wskazowki jak ustawic to w Bascomie?

Pozdrawam

Portret użytkownika mirley

Re: Timer

Burn-O-Mat współpracuje z Stk 200/300 bez problemu ale jeśli chcesz w bascomie to poprostu porównaj wartości odpowiednich bitów. W bascomie przy opcjach zegara są podane wartość CKSEL i SUT wystarczy że znajdziesz taką opcje która odpowiada ustawieniu tego w bascomie. Dodatkowo CKOPT ustaw na 0 (enabled)

-

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 Asura

Problem z programem:/

Hej - zieki za odpowiedz - racja fajnie to dziala na STK:-)
jednak mam problem z ktorym nie wiem jak sobie poradzic... otóż ładując Twoj program, lecz nie zmieniając fusebitow - dziala uklad: na lcd wyswietla sie wresja i autor ale dziala baaaardzo wolno!! Po zmianie fusebitow...za pomocą Burn-O-Mat (tak jak zalączony zrzut u Ciebie) niestety - nic sie nie dzieje - na wyswietlaczu nic:/ Nie wiem z czym moze byc problem... Mam pytanie, czy nalezy jeszcze cos ustawic w tym programie - w innych zakladkach?

Pozdrawiam

Portret użytkownika mirley

Re: Timer

A jaki rezonator kwarcowy jest wlutowany w płytkę? Kondensatorki są na pewno przy nim 22pF? Czy masz możliwość przestawienia fusebitów na inne opcje, czy procesor przestaje reagować?

Na innych zakładkach nie trzeba nic ustawiać, to jest to samo tylko w innej formie zapisane. Odczytaj fusebity z procesora i porównaj czy są tak samo ustawione. Wgraj ponownie program bez przestawiania fusebitó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 Asura

tomer

Juz wszystko OK... - masz racje nie wiem jakim cudem zalozylem zle kondensatory... 222 a nie 22 i to jeszcze jak lutowalem... przylutowalem tak ze nie bylo widac napisu... są... ok... i dalej szukam p[rzyczyny...:/ Jednak trzeba wszystko na spokojnie przepatrzyc. Dzieki... Dziala super!! Teraz bedzie mozna robic odbitki:-)
Swoja drogą - bardzo fajna strona i fachowe doradzenie!! Dziekuje Ci bardzo:-)

Pozdrawiam Krzysztof

Portret użytkownika Tomcio

Ja mam takie pytanie...

Ja mam takie pytanie...
Złożyłem wszystko do "kupy" niby wszystko działa ale niedziałają strzałki w bok. Pozostałe przyciski działają bez zarzutu oprócz tych dwóch. Żadnych zwarć nie widać choć jutro sprawdze jeszcze raz dokładnie.
Co proponujecie.

PS. Czy dało by się przerobic program tak by uC nie dawał sygnału na wyjście podczas włączenia timera, tylko żeby włączał się gdy jest uruchomione odliczanie.

PS.2 A tak wogóle to super stronka.

Portret użytkownika mirley

Re: Timer

A którykolwiek inny przycisk działa poprawnie? Sprawdź czy przewodzą ścieżki od przycisku do pinu w podstawce mikrokontrolera i czynie ma między nimi zwarcia. Sprawdź czy masa (GND) dochodzi do każdego przycisku. Programu nie trzeba przerabiać gdyż układ ma dwa wyjścia: jedno jest cały czas w stanie wysokim a spada do zera przy odliczaniu, drugie natomiast jest cały czas na 0 a podnosi się do 1 podczas odliczania. Po prostu wykorzystaj to wyjście które Ci pasuje, oba są dostępne na złączu Out

-

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 Tomcio

Już zrobiłem było jednak mini

Już zrobiłem było jednak mini zwarcie.

A co do drugiego mojego pytania to wiem że są dwa wyjścia i mam podłączone do tego, które ma stan wysoki podczas odliczania.

Wcześniej troche źle się wyraziłem, ponieważ chodziło mi oto, że po włączeniu timera na tym złączu pojawiał się stan wysoki i tak zostawało póki nie wcisneło się podglądu lub gdy zakończyło się odliczanie. Lecz poradziłem sobie dodając linijke przed warunkami początkowymi:

Reset Triak2

Teraz wszystko jest OK
Pozdrawiam

Portret użytkownika mirley

Re: Timer

No faktycznie przeoczyłem ten szczegół na starcie, wystarczy tylko na początku przy ustawieniach portu przypisac tylko odpowiedni stan:

Config Portb = &B11111111 : Portb = &B11111101

-

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 piom

Witam, bardzo przydatny

Witam, bardzo przydatny projekt. Służy mi jako minutnik w kuchni, ale nie tylko. Próbowałem przerobić program (za pomocą dodatkowej pętli) by po odliczeniu do zera przypominał dodatkowo w określonych odstępach czasu o konieczności wyłączenia np. kuchenki gazowej (czyli urządzenia, które nie może być bezpośrednio sterowane).
To co osiągnąłem:
1.kilkakrotne przypomnienie (pętla z buzzerem licząca np. do 5)
lub
2.nieskończone przypomnienie (pętla z buzzerem, bez możliwości jej przerwania z klawiatury)

Próbowałem dopisywać warunki wyjścia z pętli "Loop Until PORTD.2 = 0" oraz dodałem dodatkową procedurę, którą wywoływała "Pętla główna". ale niestety dopóki pętla buzzera jest w trakcie wykonania nie można jej przerwać.

Portret użytkownika mirley

Re: Timer foto

Nie rozumiem tylko dlaczego przerabiasz timer fotograficzny na kuchenny jak kuchenny jest w projektach już gotowy. Jeżeli chciałbyś zrobic coś takiego w układzie timera fotograficznego to wystarczy w momencie gdzie normalnie włączany jest buzzer ustawić jakąś zmienna (flagę) a sprawdzać ją w przerwaniu od timera lub od biedy w pętli glównej ale tak aby nie blokowało to programu. Cały czas muszą przychodzić przerwania od klawiatury i wyświetlania

-

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 piiter

Zmniejszenie liczby przycisków

Witam. Mam pytanie czy istnieje możliwość zmniejszenia liczby przycisków sterujących tak np. do 2. Co trzeba by było zmienić w kodzie.Chciałbym wykorzystać ten timer do sterowania naświetlarką i znaczne uprościłoby sterowanie i montaż.

-

Piotr

Portret użytkownika mirley

Re: Timer

Wykonaj sobie http://mirley.firlej.org/prosty_timer dokładnie do tego celu był on zrobiony. Pewnie dało by się zrobić coś żeby przerobić to na dwa przyciski ale jest to bezsensu bo trzeba wyrzucić większość programu

-

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 SPiotr

Zmiana oprogramowania

Witam czy można byłoby zmienić tak oprogramowanie ażeby timer był przydatny w fotografowaniu. Tj chodziłoby mi o wykonanie zdjęć seryjnych np co 5 sek np 30 zdjęć, lub dowolny ustawiany przedział czasowy od np co 0.3 sek na dowolną ilość i przydałaby się funkcja BUBL czyli naciśnięcie migawki na dowolny przedział czasowy. Wyszedłby z tego "inteligentny wężyk spustowy".
Pozdrawiam serdecznie!

Portret użytkownika mirley

Re: Timer

Może by i dało radę ale nie mam za bardzo kiedy wprowadzic takich modyfikacji w programie... a w zasadzie trzeba by było napisać nowy program

-

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 SPiotr

Szkoda, w programowaniu

Szkoda, w programowaniu jestem zerem a takie urządzenie byłoby przydatne nie tylko dla mnie.
Dziękuję i pozdrawiam

Portret użytkownika mirley

Re: Timer

Napisz wątek na forum w odpowiednim dziale, opisz dokładnie co chcesz uzyskać i jak sobie to wyobrażasz we współpracy z aparatem a na pewno się znajdzie jakaś pomoc w tej sprawie.

-

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 marcinekswierski

problem

Witam!
Złożyłem ten timer i odpalił od pierwszego razu. Gdy chciałem powsadzać to wszystko w obudowe przestało mi działać. Na wyświetlaczu pojawiają się tylko kwadraciki tak jak by nie było transmisji. Wszystkie luty sa poprawne, nie ma zwarcia, atmega byla sprawdzana i wszystko ok a timer nie chodzi. Proszę o pomoc.Pozdrawiam Marcin

Portret użytkownika mirley

Re: Timer

Może przekręcił Ci się kontrast LCD albo jak masz złącze LCD to ono przestało przewodzić. Sprawdź czy jest połaczenie bezpośrednio od LCD do procesora

-

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 marcinekswierski

rozwiazanie problemu

Witam!
Problem już rozwiązany troche długo to trwało z braku czasu ale wkońcu. Problemem był uszkodzony wyświetlacz. Dzikeuje za pomoc pozdrawiam Marcin

Portret użytkownika Damian

Układ wykonawczy

Witam

Czy ten timer może współpracować z układem wykonawczym http://mirley.firlej.org/wykonawczy_triak?page=1 ? Jeśli tak to jak go podłączyć.

Z góry dziękuję za odpowiedź

Portret użytkownika mirley

Re: Timer

Można podłączyć układ wykonawczy bez kłopotu do złącza OUT. potrzebny będzie rezystor 330-470R przez który szeregowo podłączasz diode optotriaka w układzie wykonawczym do pinu pb1 lub pb2 procesora. Katode diody optotriaka dajesz do masy. Wszystkie potrzebne piny są na złączu OUT

-

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 Damian

Układ wykonawczy

Jeszcze mam takie pytanie Układ Z U2 jest po to aby móc podłączyć układ pod 12v? I ostatnie czy http://mirley.firlej.org/wykonawczy_triak?page=1 wytrzyma przy wyłączaniu i włączaniu świetlówek (4x8W) czy lepiej zastosować przekaźnik elektromagnetyczny?

Pozdrawiam i ślicznie za wszystko dziękuję :p

Portret użytkownika mirley

Re: Timer

U2 to stabilizator 5V. jesli masz stabilne źródło które daje 5V =/- 10% to możesz go pominąć. Układ z triakiem wytrzymuje tyle ile triak. Dla typowego triaka BT138-600E możesz podłączyć czajnik do gotowania wody(wtedy będzie potrzeba radiatora). Dla żarówek o tak małej mocy sam triak bez radiatora + optotriak

-

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 Damian

Układ wykonawczy

Dzięki za wszystko. Oby więcej takich pomocnych ludzi jak Ty.

Pozdrawiam

Portret użytkownika matetiau

Impulsator mechaniczny

Mirku chciałem Cię zapytać czy jest możliwość tak zmodyfikować ten projekt aby czas do odliczania był ustawiany za pomocą impulsatora mechanicznego, wydaje mi się, że będzie to praktyczniejsze niż przyciski
Pozdrawiam Mateusz

Portret użytkownika mirley

Re: Timer

Pewnie by się dało ale mam za dużo na głowie żeby to zmieniać. Szczególnie że nie mam tego układu u siebie a jego złożenie zajmie dodatkowy czas na tesy

-

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 marekszy

problem z kompilacją

Mam problem z kompilacją tego programu,wyświetla "source variable does not match the target variable [_BTMPA=SW_PORT], odnosi się do przycisków(Sw = Sw_port And &B11111100),co może być przyczyną?
pozdrawiam

Portret użytkownika mirley

Re: Timer

Jaką masz wersję kompilatora? u mnie kompiluje się bez problemu. Ściągnij najnowszą wersję ze strony producenta

-

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 marekszy

Re: Timer

Kompiluję za pomocą BASCOM-AVR 1.11.9.0, nie bardzo chciałbym nowszy,ten mam full, a na nowszym przejdę na demo.Sprawdzę jeszcze raz czy nie mam gdzieś błędów.
Dzięki

Portret użytkownika marekszy

Re: Timer

Sprawdziłem jeszcze raz kod i znalazłem przyczynę, przy konfiguracji uC w lini ...Sw_port Alias Pind.....zapomniałem _ treraz kompiluje się bez problemu, programik pracuje bardzo fajnie, tylko pogtatulować inwencji i dzięki za udostępnianie kodów źródłowych-można wiele się z nich dowiedzieć.
Pozdrawiam.

Portret użytkownika dan76

Timer Timer Timer na 99h

Witam wszystkich
Potrzebuje pilnie pomocy!
Czy można przerobić wsad do tego timera aby można było ustawić go na dłuższy czas niż 99min?

Portret użytkownika mirley

Re: timer

Wsad można przerobić.... wystarczy zmienić ograniczenie dla wartości zmiennej ustawianej przyciskami... trochę trzeba popracować, zanalizować kod... na pewno nie mam kiedy zrobić tego osobiście

-

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 dan76

Witam Jestem pełen podziwu

Witam
Jestem pełen podziwu dla twoich projektów więc zwracam się bezpośrednio do Ciebie. Rozumiem że czas to pieniądz więc podaj cenę za nowy wsad lub zleć komuś kto potrafi to zrobić lub podpowiedz jak to zrobić to spróbuję sam. Bardzo zależy mi na czasie dlatego tak nalegam.
Mam jeszcze jedno pytanie, czy można zrobić tak że załączenie będzie następowało z opóźnieniem np. 1min od wciśnięcia START ?
Pozdrawiam
Daniel

Portret użytkownika kociakkociak

minutnik

A ja mam zapytanie jak najprosciej zrobic zwykły minutnik (bez odliczania sekund, same minutyod 1 do np.: 60 z wyswietlaczem)? Potrzebuje takowego do naswietlarki, jestem poczatkujacy i nie umiem programowac, reszta ok, wytrawienie lutowanie spoko, czy ktoś mi pomoże w tej kwestii? Pozdrawiam

Portret użytkownika mirley

Re; Timer

popatrz do projektu Prosty Timer, tam jest dokładnie to co chcesz

-

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 kociakkociak

Tak wiem, tylko po co mam to

Tak wiem, tylko po co mam to wszystko wkladac zegar itp, kiedy mi jest potrzebny sam minutnik na dwusegmentowym wyswietlaczu, a ile by kosztowal u kolego zaprogramowany ten scalaczek? Pozdrawiam

Portret użytkownika mirley

Re: Timer

Projekt prosty timer to najprostsza możliwa konstrukcja... nie da się prościej. O co ci chodzi z zegarem....nawet nie popatrzyłeś co jest w tym projekcie.

-

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 matetiau

dwa kanały

Witaj Mirku!
Chciałem tylko się Ciebie zapytać czy przerobienie tego timera tak aby można było uruchomić dwa zewnętrzne odbiorniki, dla których ustawiałoby się różne czasy, start byłby w tym samym momencie, jest możliwe czy lepiej napisać program od nowa.
Widziałabym to tak:
->Menu główne
T1 T2 (np przyciskiem od klawiatury w górę wchodzimy do T1, a przyciskiem od klawiatury w dół do T2)
Czy można w tym projekcie do pętli głównej dodać jako pierwsze ustawienie T1 i T2?
T1 i T2 należałoby zdefiniować jako zmienne, dobrze myślę?
Poniżej szkielet jak ja to widzę, nie będzie to zgodne ze składnią jedynie sposób działania po koleii, :

If sw_up = 0 then gosub Wyswietlanie , set Wyswietlanie writeeeprom #01
If sw_down = 0 then gosub Wyswietlanie , set Wyswietlanie writeeeprom #02

'Petla glowna
Do
 readeeprom #01
 readeeprom #02
  If sw_start =0 then 
            Reset Triak
            Set Triak2
            Licz_01s = Licz_01s_u
            Odliczanie = 1
            Wyswietl = 2
 
  End If 
Loop
End

Jak zacząć?
Ewentulanie jaki projekt mozna by do tego przerobić?