Zegar Tekstowy


9.09091
Ocena: None Średnia: 9.1 (11 głosujących)

Układ jak sama nazwa wskazuje jest najzwyklejszym zegarem pracującym w cyklu 24-godzinnym, z tym że sama prezentacja czasu jest 12- godzinna. Nietypowy jest jedynie sposób prezentacji czasu. Godziny i minuty podświetlane są na specjalnym panelu za pomocą odpowiednio rozmieszczonych diod LED (65 sztuk). Dla przykładu godzina 12:35 reprezentowana jest przez napisy "Dwunasta", "Trzydzieści" i "Pięć". Panel główny pokazuje czas z dokładnością do 5 minut, natomiast dodatkowe 4 diody zwiększają precyzję wskazań do 1 minuty. Korzystanie z zegara może początkowo wydawać się trudne, jednak jeden dzień wystarczy aby się przyzwyczaić. Układ wyposażony jest w głośny budzik i bateryjne podtrzymanie czasu na wypadek zaniku zasilania. Całość zamknięta jest w obudowie złożonej z wypolerowanych kawałków laminatu pokrytych lakierem bezbarwnym. Do odliczania czasu wykorzystany jest popularny układ PCF8583, a całe urządzenie oparte jest o mikrokontroler ATMega16. Zegar pobiera około 100mA prądu, przy zasilaniu 5V, podczas normalnej pracy.

Działanie:

Schemat ideowy sterownika znajduje się na rysunku poniżej:

Sercem układu jest mikrokontroler U1 (ATMega16) wraz z rezonatorem kwarcowym X1 (16MHz) i kondensatorami C1 (22pF) i C2 (22pF). Przyciski S1 - S3 (uSwitch 12x12mm) stanowią klawiaturę zegara, pozwalając ustawić czas i budzik. Diody DL1 - DL4 (LED) stanowią wyświetlacz pomocniczy dla licznika minut. Złącze Prog (goldpin) służy do zaprogramowania procesora. Za odmierzanie czasu w układzie odpowiedzialny jest zegar czasu rzeczywistego U2 (PCF8583). Do jego działania wymagany jest rezonator kwarcowy X2 (32,768kHz) i kondensator C8 (33pF). Dodatkowe kondensatory C6 (100nF) i C7 (47uF) zapewniają filtrację napięcia zasilania samego układu U2. Po zaniku napięcia zasilania pomiar czasu jest podtrzymywany za pomocą baterii BAT1 (3V) i zasilacza bezprzerwowego z diodami D1 (1N4148) i D2 (1N4148). Rezystory R3 (3,3k) i R4 (3,3k) umożliwiają poprawną pracę magistrali I2C, a co za tym idzie poprawny odczyt i zapis czasu z/do układu U2. Wyświetlacz podzielony jest na dwa segmenty sterowane multipleksowo poprzez tranzystory T1 (BC327) i T2 (BC327). Rezystory R1 (3,3k) i R2 (3,3k) ograniczają prąd baz tych tranzystorów. Katody diod w segmentach wyświetlaczy sterowane są za pośrednictwem buforów inwerterów U4 (ULN2803) i U5 (ULN2803), podobnie jak sygnalizator piezo z generatorem BUZ1 (5V). Złączem wyświetlacza są listwy goldpin GP1, GP2 i GP3. Zasilanie podłączamy do złącza Z1 (ARK2), wprost na kondensator filtrujący C3 (220uF) i układ stabilizatora U3 (7805). Kondensatory C5 (100nF) i C4 (100uF) filtrują napięcie zasilania.

Schemat ideowy wyświetlacza znajduje się na rysunku poniżej:

Wyświetlacz zegara nie stanowi nic odkrywczego, rezystory R1 - R65 (220R-330R dobrać w zależności od diody) ograniczają prąd led'ów D1-D65. Diody podzielone są na dwie sekcje, pierwszą stanowią elementy D1-D30, a drugą diody D31-D65. Kontakt z płytką sterownika zapewniają złącza goldpin GP1, GP2 i GP3.

Budowa:


Sterownik z powodzeniem można zbudować w oparciu o płytkę drukowaną dostępną tutaj. Rysunek w odbiciu lustrzanym dostępny jest tutaj. Montaż płytki nie jest skomplikowany i należy go rozpocząć od wlutowania trzech zworek. Kolejne powinny być rezystory i podstawki pod układy scalone i procesor. Zamiast zwykłych diod D1 i D2 można zastosować diody Schottkiego. Stabilizator U3 powinien być zamontowany w pozycji leżącej, bez radiatora, chyba że napięcie wejściowe będzie większe niż 9V-12V wtedy moc tracona w stabilizatorze może być duża. Obudowę rezonatora kwarcowego X1 warto podłączyć do masy gdyż bez tego może czasami zdarzyć się zawieszenie mikrokontrolera U1. Najłatwiej jest to wykonać lutując odcinek przewodu od nóżki kondensatora C2 do obudowy kwarcu. Przyciski S1 - S3 mogą być uSwitchami o dłuższej ośce co potem ułatwi obsługę zegara. Złącza szufladkowe GP1, GP2 oraz GP3 muszą zostać przylutowane od spodu płytki, w postaci jednego kawałka listwy precyzyjnej. Rezonator kwarcowy X2 należy wlutować w pozycji leżącej, tak aby znajdował się nad wytrawionym polem masy (fotografia). Diody DL1-DL4 montujemy pod kontem 90 stopni zgodnie z fotografiami projektu, gdyż będą one wystawały przez obudowę zegara. Cały układ najlepiej zasilać z ładowarki od telefonu (dostępna na aukcjach internetowych) lub z klasycznego zasilacza wtyczkowego. Pomocą w konstrukcji może okazać się schemat montażowy dostępny tutaj.

Wyświetlacz można zbudować na podstawie płytki dostępnej tutaj. Rysunek w odbiciu lustrzanym dostępny jest tutaj. Płytka wyświetlacza jest równie prosta w montażu, największy problem sprawią montowane od spodu goldpiny GP1, GP2 i GP3. Diody powinny być wlutowane maksymalnie blisko płytki. Warto zastosować diody o podwyższonej jasności i szerokim kącie świecenia. Rezystory powinny być o małych gabarytach, można zamiast nich wlutować rezystory SMD od strony ścieżek. Wartości rezystorów należy dobrać do posiadanych diod aby jasność była zadowalająca a jednocześnie pobór prądu nie był duży. Pomocą w konstrukcji może okazać się schemat montażowy dostępny tutaj.

Wykaz Elementów:

Sterownik:

1x Złącze Śrubowe ARK2(podwójne)
1x Listwa Goldpin 1x5
3x Złącze szufladkowe 1x8
1x Bateria 3V(CR2032) + Podstawka
3x uSwitch 12x12mm

4x 3,3k
4x 470R

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

1x Rezonator Kwarcowy 16MHz
1x Rezonator Kwarcowy 32768Hz
2x 1N4148
4x Dioda LED
2x BC327
1x Stabilizator 7805
1x Mikrokontroler ATMEGA16 + Podstawka
2x Bufor Inverter ULN2803
1x Układ RTC PCF8583
1x Buzzer z Generatorem 5V

Wyświetlacz:

3x Listwa Goldpin 1x8
65x 220R (lub 330R, dobrać we własnym zakresie)
65x Dioda LED

Programowanie:


Kod Źródłowy został napisany w BASCOM AVR firmy MCS Electronics (http://www.mcselec.com/). Program przedstawiony jest poniżej:

'************* Konfiguracja uC *****************
'***********************************************
$regfile = "m16def.dat"
$crystal = 16000000
 
Config Porta = &B11111111 : Porta = &B00000000
Config Portb = &B11111000 : Portb = &B11111111
Config Portc = &B11111111 : Portc = &B00000111
Config Portd = &B11111111 : Portd = &B11111111
 
Config Scl = Portd.6
Config Sda = Portd.5
I2cinit
 
Config Timer0 = Timer , Prescale = 256
Enable Timer0 : On Timer0 Prztimer0
 
Enable Interrupts
 
Sw_port Alias Pinb
Buzzer Alias Portc.3
L1 Alias Portb.3
L2 Alias Portb.4
L3 Alias Portb.5
L4 Alias Portb.6
 
'********** Konfiguracja uC Koniec  ************
'******************  Zmienne *******************
'***********************************************
 Dim Godziny As Byte , Minuty As Byte , Sekundy As Byte
 Dim Godziny_bcd As Byte , Minuty_bcd As Byte , Sekundy_bcd As Byte
 Dim Godziny_budz As Byte , Minuty_budz As Byte
 Dim Sw As Byte , Stan_sw As Byte , Licznik_sw As Byte
 Dim Poz_ust As Byte , Poz_wysw As Byte
 Dim Zapisz_czas As Bit
 Dim Alarm_en As Bit , Al_buz As Bit , Beep_buz As Bit , Beep As Byte
 Dim Wysw(2) As Word
 Dim Mux As Bit
 Dim Helpbyte(1) As Byte
 Dim Mig As Bit , Godz24 As Bit
 Dim Dzielnik(1) As Byte
 Dim Flaga_4ms As Bit , Flaga_500ms As Bit
'*************  Zmienne Koniec  ****************
'************ Warunki Poczatkowe ***************
'***********************************************
 Poz_wysw = 1
'*******  Warunki Poczatkowe Koniec  ***********
'**************  Petla glowna ******************
'***********************************************
Do
  If Flaga_4ms = 1 Then
    Flaga_4ms = 0
 
    Gosub Przyciski
    Gosub Wyswietlanie
 
    If Beep <> 0 Then
      Beep_buz = 1
      Decr Beep
    Else
      Beep_buz = 0
    End If
 
    If Al_buz = 1 Or Beep_buz = 1 Then Buzzer = 1 Else Buzzer = 0
 
  End If
 
 
  If Flaga_500ms = 1 Then
    Flaga_500ms = 0
 
    Toggle Mig
 
    If Poz_wysw <> 1 Or Poz_ust = 0 Then
      If Zapisz_czas = 1 Then
        Gosub Zapis_rtc                                     'jednorazowo zapisuje po wyjściu z ustawień
        Zapisz_czas = 0
      Else
        Gosub Odczyt_rtc                                    'odczytuje czas
      End If
    Else
      Zapisz_czas = 1
    End If
 
    Select Case Poz_wysw
      Case 1:
        Wysw(1) = Godziny
        Wysw(2) = Minuty
      Case 2:
        Wysw(1) = Godziny_budz
        Wysw(2) = Minuty_budz
    End Select
 
    Gosub Przelicz
    Gosub Alarm
 
  End If
 
Loop
End
'************ Petla glowna Koniec **************
 
 
'************ Przerwanie timer 0 ***************
'***********************************************
Prztimer0:
  Timer0 = 5
  Set Flaga_4ms
  Incr Dzielnik(1)
  If Dzielnik(1) = 125 Then
    Dzielnik(1) = 0
    Set Flaga_500ms
  End If
Return
'******** Przerwanie timer 0 Koniec ************
 
'****************** Zapis RTC ********************
Zapis_rtc:                                                  'zapisuje czas g,m i s do układu RTC
  Godziny_bcd = Makebcd(godziny)
  Minuty_bcd = Makebcd(minuty)
  Sekundy_bcd = Makebcd(sekundy)
 
  I2cstart
  I2cwbyte 162
  I2cwbyte 0                                                'rejestr kontrolny
  I2cwbyte 8                                                'ustawienie rejestru zapisu daty
 
  I2cstop
  I2cstart
  I2cwbyte 162
  I2cwbyte 2
 
  I2cwbyte Sekundy_bcd
  I2cwbyte Minuty_bcd
  I2cwbyte Godziny_bcd
  I2cstop
Return
'************* Zapis RTC Koniec *****************
'****************** Odczyt RTC ********************
Odczyt_rtc:                                                 'odczytuje czas z RTC do zmiennych
  I2cstart
  I2cwbyte 162                                              'adres zapisu
  I2cwbyte 2                                                'rejestr sekund
  I2cstart
  I2cwbyte 163                                              'adres odczytu
  I2crbyte Sekundy_bcd , Ack
  I2crbyte Minuty_bcd , Ack
  I2crbyte Godziny_bcd , Nack
  I2cstop
  Sekundy = Makedec(sekundy_bcd)
  Minuty = Makedec(minuty_bcd)
  Godziny = Makedec(godziny_bcd)
Return
'************** Odczyt RTC Koniec *****************
'************** Przelicz *****************
Przelicz:
  If Wysw(1) > 12 Then Godz24 = 1 Else Godz24 = 0
  Wysw(1) = Wysw(1) Mod 12
 
    Select Case Wysw(1)
       Case 0 : Wysw(1) = &B0000000100000000
       Case 1 : Wysw(1) = &B0000000000000001
       Case 2 : Wysw(1) = &B0000000000000010
       Case 3 : Wysw(1) = &B0000010000000000
       Case 4 : Wysw(1) = &B0000000000100000
       Case 5 : Wysw(1) = &B0000000000000100
       Case 6 : Wysw(1) = &B0000000001000000
       Case 7 : Wysw(1) = &B0000000000001000
       Case 8 : Wysw(1) = &B0000000010000000
       Case 9 : Wysw(1) = &B0000001000000000
      Case 10 : Wysw(1) = &B0000000000010000
      Case 11 : Wysw(1) = &B0000100000000000
      'Case 12 : Wysw(1) = &B0000000100000000
    End Select
 
    Helpbyte(1) = Wysw(2) Mod 5
    Wysw(2) = Wysw(2) / 5
 
    Select Case Wysw(2)
       Case 0 : Wysw(2) = &B0000000000000000                '0....4
       Case 1 : Wysw(2) = &B0000000000001000                '5...9
       Case 2 : Wysw(2) = &B0000010000000000                '10...14
       Case 3 : Wysw(2) = &B0000000000000001                '15...19
       Case 4 : Wysw(2) = &B0000100000000000                '20...24
       Case 5 : Wysw(2) = &B0000100000001000                '25...30
       Case 6 : Wysw(2) = &B0000000001000000                '31...34
       Case 7 : Wysw(2) = &B0000000001001000                '35...39
       Case 8 : Wysw(2) = &B0000000010000000                '40...44
       Case 9 : Wysw(2) = &B0000000010001000                '45...49
      Case 10 : Wysw(2) = &B0000000000100000                '50...54
      Case 11 : Wysw(2) = &B0000000000101000                '55...59
    End Select
 
    Select Case Helpbyte(1)
       Case 0 :
         L1 = 1 : L2 = 1 : L3 = 1 : L4 = 1
       Case 1 :
         L1 = 0 : L2 = 1 : L3 = 1 : L4 = 1
       Case 2 :
         L1 = 0 : L2 = 0 : L3 = 1 : L4 = 1
       Case 3 :
         L1 = 0 : L2 = 0 : L3 = 0 : L4 = 1
       Case 4 :
         L1 = 0 : L2 = 0 : L3 = 0 : L4 = 0
    End Select
 
    If Poz_ust <> 0 Then
      If Poz_ust = 1 Then
        If Mig = 1 Then
          Wysw(1) = 0 : L1 = 1 : L2 = 1 : L3 = 1 : L4 = 1
        Else
          If Godz24 = 1 Then
            L1 = 1 : L2 = 1 : L3 = 1 : L4 = 0
          Else
            L1 = 1 : L2 = 1 : L3 = 0 : L4 = 1
          End If
        End If
      End If
      If Poz_ust = 2 Then
        If Mig = 1 Then
          Wysw(2) = 0 : L1 = 1 : L2 = 1 : L3 = 1 : L4 = 1
        End If
      End If
      Wysw(2).4 = 1
      If Poz_wysw = 1 Then Wysw(2).1 = 1
      If Poz_wysw = 2 Then Wysw(2).2 = 1
    Else
      If Poz_wysw = 2 Then Wysw(2).2 = 1
    End If
Return
 
'************** Wyswietlanie *****************
Wyswietlanie:
  Toggle Mux
  If Mux = 1 Then
    Set Portc.2
    Porta = Wysw(1)
    Portc.4 = Wysw(1).8
    Portc.5 = Wysw(1).9
    Portc.6 = Wysw(1).10
    Portc.7 = Wysw(1).11
    Reset Portc.1
  Else
    Set Portc.1
    Porta = Wysw(2)
    Portc.6 = Wysw(2).10
    Portc.7 = Wysw(2).11
    Reset Portc.2
  End If
Return
 
'**************   Alarm   *****************
Alarm:
 If Alarm_en = 1 Then
   If Godziny = Godziny_budz And Minuty = Minuty_budz Then Toggle Al_buz Else Al_buz = 0
 Else
   Al_buz = 0
 End If
Return
 
'************** Przyciski *****************
Przyciski:
Sw = Sw_port And &B00000111
If Sw <> &B00000111 And Stan_sw = Sw Then
    Incr Licznik_sw
    If Licznik_sw = 158 Then
      Licznik_sw = 0
      Select Case Stan_sw
        Case &B00000110:                                    'incr
        '***********************************************************
          Select Case Poz_wysw
            Case 1:
              Select Case Poz_ust
                Case 0:
                  Poz_ust = 1
                Case 1:
                  Incr Godziny
                  If Godziny = 24 Then Godziny = 0
                  Sekundy = 0
                Case 2:
                  Incr Minuty
                  If Minuty = 60 Then Minuty = 0
                  Sekundy = 0
              End Select
 
            Case 2:                                         'dotyczy budzika
              Select Case Poz_ust
                Case 0:
                  Poz_ust = 1
                Case 1:
                  Incr Godziny_budz
                  If Godziny_budz = 24 Then Godziny_budz = 0
                Case 2:
                  Incr Minuty_budz
                  If Minuty_budz = 60 Then Minuty_budz = 0
              End Select
 
          End Select
 
        Case &B00000011:                                    'decr
        '***********************************************************
          Select Case Poz_wysw
            Case 1:
              Select Case Poz_ust
                Case 0:
                  Toggle Alarm_en
                  If Alarm_en = 1 Then Beep = 125 Else Beep = 20
                Case 1:
                  Decr Godziny
                  If Godziny = 255 Then Godziny = 23
                  Sekundy = 0
                Case 2:
                  Decr Minuty
                  If Minuty = 255 Then Minuty = 59
                  Sekundy = 0
              End Select
 
            Case 2:                                         'dotyczy budzika
              Select Case Poz_ust
                Case 0:
                  Toggle Alarm_en
                  If Alarm_en = 1 Then Beep = 125 Else Beep = 20
                Case 1:
                  Decr Godziny_budz
                  If Godziny_budz = 255 Then Godziny_budz = 23
                Case 2:
                  Decr Minuty_budz
                  If Minuty_budz = 255 Then Minuty_budz = 59
              End Select
 
          End Select
 
        Case &B00000101:                                    'next menu
        '***********************************************************
          If Poz_ust > 0 Then
            'jeśli ustawinia
             Incr Poz_ust
             If Poz_ust >= 3 Then Poz_ust = 0
          Else
             'jesli wyswietlanie
             Incr Poz_wysw
             If Poz_wysw = 3 Then Poz_wysw = 1
          End If
 
      End Select
    End If
  Else
    Stan_sw = Sw
    Licznik_sw = 145
  End If
 
Return
'***********************************************

Ustawienia fusebitów dla ATmega 16:

Część Mechaniczna:

Duży problem może stanowić konstrukcja mechaniczna zegara gdyż nie jest ona prosta do wykonania i wymaga odrobiny cierpliwości. Najważniejszy jest panel czołowy, wykonany z cienkiego laminatu jednostronnego (czym cieńszy tym lepszy, dobry mógłby być 0.5mm lub 0.8mm). Wydruk do wprasowania musi być idealny bo każde podtrawienie po oświetleniu diodami będzie potem widać. Panel przedni można zrobić odrobinę większy niż proponowany rysunek, zaklejając obrzeża płytki taśmą klejącą aby się nie podtrawiły. Zawsze łatwiej będzie podszlifować panel do reszty obudowy niż robić nowy, odrobinę większy.

Drugim etapem montażu jest zrobienie przegródek z tyłu panelu przedniego za pomocą pasków laminatu o szerokości 1-1.5cm. Każdy napis na wyświetlaczu oddzielony jest od drugiego przynajmniej jedną literą "fałszywą", która nie powinna być podświetlana, a umożliwi wklejenie dwóch przegródek i lepsze oddzielenie jednego napisu od drugiego. Najprościej narysować od tyłu panelu przedniego w którym miejscu powinny być zamocowane paski laminatu. Klejenia dokonujemy za pomocą Super Glue lub podobnego kleju, zważając aby nie było szpar między przegródkami oraz panelem a przegródkami. Wszystkie szpary i niedociągnięcia zaowocują przeświecaniem jednego znaku na drugi. Pomocą przy klejeniu będą fotografie projektu u dołu strony. Po przyklejeniu przegródek szlifujemy drobnym papierem ściernym panel przedni, a następnie malujemy lakierem bezbarwnym w sprayu.

Płytka sterownika z płytką wyświetlacza powinna być skręcona za pomocą śrubek 3mm, gdyż w innym przypadku po naciśnięciu przycisku goldpiny lub złącze szufladkowe mogą się wyłamać z płytek. Jeśli wszystko jest dobrze wykonane, a przegródki poprawnie wklejone to płytka wyświetlacza powinna przyłożyć się prosto do panelu przedniego a diody schować się w przegródkach. W zależności od długości napisu przegródki mają różne długości i różną ilość podświetlających je diod. Przymocowanie płytki wyświetlacza do panelu z napisami można wykonać w dowolny sposób, np wiercąc w płytce wyświetlacza małe dziurki 1mm i przekładając kawałki drutu przylutowane uprzednio do laminatu w przegródkach.

Boki i górę obudowy także wycinamy z pasków laminatu, szlifujemy i lakierujemy podobnie jak panel przedni, jeśli chodzi o tył obudowy to ja pozostawiłem odkryty aby można było podziwiać budowę zegara :)

Obsługa:

Zegar obsługujemy za pomocą klawiatury z trzema przyciskami. Podczas normalnego wyświetlania czasu, przyciskiem S1 włączamy i wyłączamy obsługę budzika, krótki pisk potwierdza wyłączenie, natomiast długi świadczy o tym że budzik będzie działał. Naciskanie na przycisk S2 powoduje cykliczne przechodzenie do widoku ustawionego czasu budzenia lub aktualnego czasu. Przyciśnięcie S3 na odpowiednim widoku wejdzie w tryb ustawiania, bądź to zegara bądź budzika. Przyciski S3 i S1 działają wtedy odpowiednio jako + i -, natomiast poprzez S2 przechodzimy do ustawień minut, a potem do normalnej pracy.

Podczas ustawiania godzin, miganie diody DL2 mówi o tym że jest to godzina poranna AM, natomiast miganie DL1 świadczy o porze popołudniowej (PM). Gdy zegar pokazuje czas nie ma możliwości podglądu czy jest to godzina AM, czy PM, ale uważam że pomylenie 6 rano z 18 było by trudne :)

Zdjęcia Projektu:

ZałącznikWielkość
Sterownik Schemat62.97 KB
Sterownik Płytka22.47 KB
Sterownik Płytka (odbicie lustrzane) 22.35 KB
Sterownik Płytka (3 na stronie)61.83 KB
Sterownik Montowanie30.32 KB
Wyświetlacz Schemat82.01 KB
Wyświetlacz Płytka 29.79 KB
Wyświetlacz Płytka (odbicie lustrzane) 29.67 KB
Wyświetlacz Płytka (2 na stronie) 56.76 KB
Wyświetlacz Montowanie57.81 KB
Kod Źródłowy (*.bas)10.41 KB
Program po kompilacji (*.bin)3.59 KB
Program po kompilacji (*.hex)10.12 KB
Panel Przedni (*.pdf)29.57 KB
Panel Przedni (*.svg)5.57 KB



Portret użytkownika matrix

Re: Zegar Tekstowy

pokaż jak to działa?

Portret użytkownika White

zegarek

Mirek świetnie nareszcie się doczekaliśmy polskiej wersji.Już wiem co będę robił w najbliższym czasie.Bardzo ładnie to wykonałeś zegarek świetny.Już myślę jak się zabrać za to, myślę że dobrze było by czymś zabezpieczyć przedni panel nie wiem może cienką plexi.? Się zobaczy.

-

Co cie nie zabije to cie wzmocni.
(Nie dotyczy kondensatora 230V)

Portret użytkownika gosc

zegarek

fajna sprawa
ale mam pytanko - czemu służą literki pomiędzy poszczególnymi wyrazami (np. pierwszaMdrugaDtrzeciaB)?
i jedna mała uwaga: pięćdziesiąt, zabrakło jednej literki ;)
pozdrawiam

Portret użytkownika mirley

Re: Zegar

Przedni panel zegara dobrze jest polakierować, najładniej wygląda i bez kłopotu.

Dodatkowe litery są po to aby bez problemu można było wkleić przegródki od tyłu, nawet podwójne, tak jak widać na fotografii. Wbrew pozorom nie jest to takie proste do zrobienia. Z tą pięćdziesiątką no to faktycznie straszny FAIL mi się przytrafił, a wiele osób ten panel widziało przed wykonaniem. Niestety przeróbka tego teraz jest niemożliwa do wykonania. Przez kilka miesięcy nie na to patrzyłem a błędu nie widziałem, dzięki za zwrócenie uwagi.

-

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 White

zegar

Tak sobie myślę jak by ugryźć ten projekt bo jak wiesz Mirek zawsze moje brzydkie łapy coś muszą zmodyfikować. Głownie to chciał bym zrobić inaczej front panel bo jakoś nie przemawia do mnie ten laminat.Myślę nad wygrawerowaniem na wylot na grawerce liter na to plekxa z tyłu kalka albo jakiś mleczny materiał żeby ładnie rozpraszało.Hm.. będę w fazie testów dam znać co się ładnie prezentuje.

-

Co cie nie zabije to cie wzmocni.
(Nie dotyczy kondensatora 230V)

Portret użytkownika grizz

Laminat pociągnięty lakierem

Laminat pociągnięty lakierem w sprayu, wygląda na żywo naprawdę całkiem ładnie. Jednak jak masz możliwość pociągnięcia na grawerce liter w jakimś grubszym materiale, to efekt może być bardzo ciekawy.

Portret użytkownika mirley

Re: Zegar

Pamiętaj że musisz zrobić sobie panel przedni we własnym zakresie bo na moim jest niestety błąd. Jeśli będziesz cos frezował na wylot to pamiętaj o specjalnych literach żeby nie wypadły środkowe części np z litery "O"

-

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 White

zegar

Tak o błędzie wiem, zrobie sobie najpierw kilka próbek i zobaczę jak to będzie wyglądać/świecić.Jak coś pójdzie nie tak to zrobię normalnie na laminacie. Pozdrawiam.

-

Co cie nie zabije to cie wzmocni.
(Nie dotyczy kondensatora 230V)

Portret użytkownika Michał

Projekt

Projekt bardzo pozytywny :)
Gdyby jakoś ciekawiej wykonać przedni panel i zastosować diody o różnych kolorach, zegar mógłby robić duże wrażenie (zresztą i tak robi, ale zapewne, lepiej prezentuje się w półmroku).

Portret użytkownika mirley

Re: Zegar

W nocy nie widać niejednorodności podświetlania... tak wogóle to w projekcie dobrze jest zastosować diody o jak największym kącie świecenia

-

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

Taktowanie Atmegi

Witam.Mam pytanie jakiej konkretnie Atmwge użyłeś ??Czy jeżeli zastosuje 16pu która ma maksymalne taktowanie wewnętrzne 16Mhz to mozna zrezygnować z zewnętrznego kwarcu??oczywiście przy odpowiednim ustawieniu fusebitów.

Portret użytkownika mirley

Re: M16

Możesz zrezygnować z kwarca bo nie jest on potrzebny ale taktowanie jest maksymalne 8MHz wewnętrznie. nie wiem skąd masz info że 16MHz. Musisz zmodyfikowac program tak żeby działał na 8MHz

-

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

Taktowanie Atmegi

Datasheet Atmega16-16pu

Portret użytkownika mirley

Re: M16

W karcie wyraźnie napisane są zalecane tryby pracy w tabelce na stronie 27. Oczywiście uzywajać rejestrów kalibracyjnych da się to zwiekszyć ale takie działanie nie jest gwarantowane. Sam nigdy tego nie sprawdzałem więc się nie wypowiadam. W każdym bądź razie jeśli chcesz sobie tak ustawić to nikt Ci nie zabroni :)

-

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

Ustawienie Fusebitów

Witam.Mam prośbe możesz podać dokładne ustawienie fusebitów jakie zaprogramowałeś.Dzięki

Portret użytkownika mirley

Re: Fusebity

ustawienia dodałem do opisu

-

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 dragonmaster

Witam ,zegar prezentuje się

Witam ,zegar prezentuje się naprawdę ładnie ,ale ma troszkę duże gabaryty ,no chyba że takie były zamierzenia projektowe. Zamiast literek podświetlanych ,nie prościej by użyć matryc LED (segmenty) i tam wyświetlać napis, pozdrowki.

P.S. Mnie się troszkę kojarzy z nagrobkiem ,ale to akurat jest na PLUS !!! i dzięki temu taka konstrukcja ma w sobie to "coś" ;)

Portret użytkownika mirley

Re: Zegar

jakby użyć wyświetlaczy led to wtedy zrobił by się efekt taki jak wyświetlacz w miejskim autobusie :) Cała idea w podświetlaniu liter właśnie dała początek tej konstrukcji

-

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 wilus

zegar

witam jakie wymiary ma przedni panel??

Portret użytkownika grizz

Otwórz pdf'a i sam zobacz...?

Otwórz pdf'a i sam zobacz...?

Portret użytkownika podgladaacz

Prośba o zmiane softu

Witam.Mam wielką prośbę i pytanie czy udało by się i czy jest to wielki problem abyś zmienił soft tak aby diody z minut zapalały się pojedyńczo??
Zmątowałem sobie ten zegarek jednak na planszy dałem opis do minut w kolejności I II III IV oczywiscie po wszystkim sie zoriętowałem ze przeciez koleno się nie będą zapalać tylko świecą razem.I stad wielka prośba czy mógłbyś wprowadzić taką zmianę do softu?aby się zapalały pojedyńczo w zależnosci od minut??Był bym wielce rad:)))Z góry dziękuję

Portret użytkownika mirley

Re: Zegar

Co to znaczy zapalały się po kolei, co i jak umieściłeś dokładnie na tej planszy? Chcesz żeby zapalało sie 60 diod po kolei? chyba nie bo takie coś jest niemożliwe do zrealizowania w tym projekcie

Co do zmiany softu, to jaka ona by nie była, w najbliższych dwóch tygodniach będzie ciężko znaleźć czas na cokolwiek

-

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 podgladaacz

Prośba o zmiane softu

Źle mnie zrozumiałeś.Chodzi mi tylko o 4 diody odpowiedzialne za same minuty.Czyli jak jest 3 minuty po ktorejś godzinie to się pala wszystkie cztery a chciałbym by paliła się tylko jedna która jest przypisana do liczby 3.Załączyłbym zdjęcie tego cuda ale nie bardzo wiem jak:)

Portret użytkownika mirley

Re: Zegar Tekstowy

W takim razie zmień sobie ten fragment w programie:

Select Case Helpbyte(1)
       Case 0 :
         L1 = 1 : L2 = 1 : L3 = 1 : L4 = 1
       Case 1 :
         L1 = 0 : L2 = 1 : L3 = 1 : L4 = 1
       Case 2 :
         L1 = 0 : L2 = 0 : L3 = 1 : L4 = 1
       Case 3 :
         L1 = 0 : L2 = 0 : L3 = 0 : L4 = 1
       Case 4 :
         L1 = 0 : L2 = 0 : L3 = 0 : L4 = 0
    End Select

W case 0 , case 1 itd są kolejne wrtości minut wynikające z reszty z dzielenia przez 5.
L1, L2 to kolejne diody

-

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 podgladaacz

Dokonałem zamiany zer na jedynki

Dokonałem zamiany zer na jedynki w odpowiednich miejscach w programie, kompiluę program i wgrywam.Jest ok z minutami(wyświetla tylko po jednej diodzie) ale godziny wariują.Wyświetla mi jednoczesnie jedenasta i siódmą.Lub różne losowo wybrane znaki jak dziesięć dwadzieścia pięć budzik.

W czym może być problem??Może ta zmiana wpływa na taki stan

Portret użytkownika mirley

Re: Zegar Tekstowy

To wróć do poprzedniego programu i sprawdź czy tez występują problemy z resztą wyświetlacza. Jak popatrzysz na schemat to jedne diody nie mają nic wspólnego z drugimi. Jak orginalny program działa to ten zmodyfikowany też powinien

-

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 podgladaacz

Właśnie wgrałem mu oryginalny

Właśnie wgrałem mu oryginalny i jest wszystko cacy.Czy może być wina programu kompilującego??
Kommpilowałem w bascomie

Portret użytkownika mirley

Re: Zegar

W niczym innym tego nie skompilujesz więc to normalne że kompilowałeś w bascomie? Jak dokłądnie wygląda ten fragment programu co pozmieniałeś?

-

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 podgladaacz

Zmieniłem program w taki

Zmieniłem program w taki sposób:

Select Case Helpbyte(1)
Case 0 :
L1 = 1 : L2 = 1 : L3 = 1 : L4 = 1
Case 1 :
L1 = 0 : L2 = 1 : L3 = 1 : L4 = 1
Case 2 :
L1 = 1 : L2 = 0 : L3 = 1 : L4 = 1
Case 3 :
L1 = 1 : L2 = 1 : L3 = 0 : L4 = 1
Case 4 :
L1 = 1 : L2 = 1 : L3 = 1 : L4 = 0
End Select

Portret użytkownika mirley

Re: Program

Jeśli nie przestawiałeś nic więcej to nie powinno się dziać nic złego. Diody podłączone są bezpośrednio do procesora więc nie powinny wpływać na resztę układu. możesz jeszcze wgrać twoją wersję programu i odłączyć diody

-

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 podgladaacz

Niestety to samo.Diody może i

Niestety to samo.Diody może i są podłączone osobno ale czy zmiana programu nie wpływa na jego inną część?i to podowduje nieprawidłowe działanie??Z programowania jestem noga wiec sam nie stwierdzę ale na to wygląda jeżeli po zmianie softu wszystko wraca do normy a układ pod względem mechanicznym jest w takim samym stanie.

Portret użytkownika osol159

Witam! Czy zamiast diody

Witam!
Czy zamiast diody można zastosować listwy LED: http://www.h-tech.pl/Listwy+LED-1.html

Portret użytkownika mirley

Re: Zegar tekstowy

Popatrz na schemat...możesz sobie użyć dowolnych diod i czego tam chcesz o ile będzie to na 5V pracowało. Nie wiem tylko jak chcesz to tak przyciąć aby było na konkretne długoś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 osol159

z tym będzie mały problem one

z tym będzie mały problem one działają na 12V. Najmniejsze odcinki dostępne na rynku to 5 cm.

Portret użytkownika mirley

Re; Zegar tekstowy

To będziesz musiał przerobić sobie układ żeby działał wyświetlacz na 12V, tranzystory T1 i T2 należy zastapić dwoma tranzystorami, jeden PNP podłączony do 12V a drugi NPN do masy aby dopasować poziomy logiczne 12V do 5V. Ponadto wyświetlacz musi byc przerobiony, program pozostanie bez większych zmian, tylko trzeba zanegowac stan idący na tranzystory T1 i T2

-

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 Filiqp

zegarek

http://rapidshare.com/#!download|69l35|435056839|Front_Zegar.pdf|101
tu jak ktoś chce przerobiłem przedni panel (błąd z Ć)
a czym go zasilić? jakim napięciem? Pomiędzy 5V a 9V?

Portret użytkownika mirley

Re: Zasilanie

Zasilanie DC pomiędzy 7V a 12V raczej... stabilizator musi mieć na czym pracowac

-

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 Filiqp

jeszcze jedno pytanie. Po co

jeszcze jedno pytanie. Po co jest ten goldpin pod baterią?

Portret użytkownika mirley

Re: Zegar textowy

Podłączenie zasilania podczas programowania

-

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 kosh

czy jest możliwość

czy jest możliwość użycia atmegi 32? akurat ją posiadam.

trzeba zastosować jakieś zmiany?

Portret użytkownika mirley

Re: Zegar textowy

Nie trzeba nic w układzie zmieniać... przekompiluj tylko program ze zmianą w deklaracji procka z m16def.dat na m32def.dat

-

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 maniek

Ta fota fuse bitów z jakiego

Ta fota fuse bitów z jakiego programu z Burn-O-Mat?? Jak wygląda ustawianie fusebitów w BASCOM-ie??

Portret użytkownika mirley

Re: Bascom

Nie zrobię zrzutu fusebitów z bascoma bo bascom potrzebuje podłączonego procka aby pokazać tabelkę z fusebitami. Zrzut jest z burn-o-mata i wystarczy porównać opcja ustawione w tabelce z tabelką w bascomie. CKOPT przełaczyć na 0 a wszystkie bity CKSEL i SUT na 1 (wybierasz taką opcję że CKSEL=1111 i SUT=11)

-

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 Filiqp

Działa!

Robiłem ten zegar juz jakis czas tem, ale w pewnym momencie zrobilem sobie przerwe. Coś nie chcial chodzic, dzialaly tylko diody górne ( dokladnie polowa w całym panelu). Przy pomocy nauczyciela w szkole znalazłem błąd. jedna z nóg Atmegi nie wysyłała sygnału(24 noga). Akurat ona byla odpowiedzialna za podswiatlanie polowy panelu. Rozwiązaniem problemu okazało sie ponowne przeprogramowanie Atmegi. Od tego czasu juz dziala ladnie, bez problemów. teraz pozostala mi kwestia obudowy. myśle nad zrobileniem boków i tyłu z plexi. jak skonczy to podeśle zdjęcia ;)

Portret użytkownika dudi69

Czy jest możliwość?...

Witam.
Całkiem fajowy, powiedzmy..., inny nietuzinkowy projekcik. Bo od cyferek to mi już wszystko mruga;))
Mirley, jaka jest możliwość budowy zegara, żeby czas wskazywany był bardziej dokładny?
Tzn. jeszcze większe polszczenie projektu, w trybie 24-tero godzinnym.
Tak aby wskazywał np: dziewiętnasta czterdzieści dwie (19:42)???
Jak wykonać rozbudowę, oprócz tej oczywistej?... panelu przedniego.

Portret użytkownika mirley

Re: Zegar tekstowy

No to cały problem w tym żeby siąść i wymyślić układ wyrazów na panelu. Reszta się da zrobić na pewno

-

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 dudi69

No to mnie Kolega nie

No to mnie Kolega nie zrozumiał :))))
Chodzi mi właśnie o stronę elektroniczną + logika, bo że tak powiem, sam projekt panelu to pikuś,
powiedzmy..., Pan pikuś
Troszkę więcej wyrazów *czcionka* X wariacji, zawsze czytanych z lewej do prawej z góry do dołu.
Z nieśmiertelnym It's angole nie mają problemu.
Jak się coś ruszy u mnie w temacie układanki to dam znać, bo telepie mi się po głowie takie totalne spolszczenie, co by każdy się nauczyć czytać mógł. Chcąc nie chcąc spoglądając na zegar.

Portret użytkownika dudi69

"Pan pikuś"

Oczywiście kombinacji wyrazów na panelu jest wiele jak pisałem wcześniej...

#DWUDZIESTA##JEDENASTA##DZIEWIĄTA#
##SIÓDMA##DZIEWIĘTNASTA#TRZYNASTA#
#SZESNASTA##CZWARTA##SIEDEMNASTA##
#DZIESIĄTA##TRZECIA#SZÓSTA##DRUGA#
#OSIEMNASTA##PIERWSZA##CZTERNASTA#
#PIĄTA##ÓSMA##PIĘTNASTA##DWUNASTA#
TRZYDZIEŚCI#JEDENAŚCIE#DWADZIEŚCIA
PIĘĆDZIESIĄT#DZIESIĘĆ#CZTERDZIEŚCI
USTAW#BUDZIK#CZAS#OSIEMNAŚCIE#TRZY
#DWIE#TRZYNAŚCIE#SIEDEM#DWANAŚCIE#
SZEŚĆ#DZIEWIĘTNAŚCIE#SIEDEMNAŚCIE#
#DZIEWIĘĆ#CZTERNAŚCIE#JEDEN#OSIEM#
PIĘTNAŚCIE#CZTERY#SZESNAŚCIE#PIĘĆ# ...sprawdzone i nawet w miarę poukładane, wizualnie cool:)

Oczywiście wyrazy można dowolnie przestawiać w ramach wiersza, żeby stworzyć swoją nie powtarzalną wersję zegara. W miejsce "#" wiadomo... przegrody, wstawiamy dowolną literę alfabetu, co czyni Nasz
"cyferblat" mało czytelnym na pierwszy rzut oka. I dobrze.

Może on wyglądać np. tak:

KDWUDZIESTANYJEDENASTARTDZIEWIĄTAW
GLSIÓDMABRDZIEWIĘTNASTAKTRZYNASTAU
ASZESNASTAOPCZWARTAFRSIEDEMNASTAED
HDZIESIĄTADFTRZECIAISZÓSTABNDRUGAC
ZOSIEMNASTAKLPIERWSZAGKCZTERNASTAF
RPIĄTAŚUÓSMAMIPIĘTNASTATKDWUNASTAI
TRZYDZIEŚCIÓJEDENAŚCIEWDWADZIEŚCIA
PIĘĆDZIESIĄTUDZIESIĘĆWCZTERDZIEŚCI
USTAWGBUDZIKECZASKOSIEMNAŚCIEDTRZY
FDWIESTRZYNAŚCIEBSIEDEMGDWANAŚCIEO
SZEŚĆNDZIEWIĘTNAŚCIEĘSIEDEMNAŚCIEG
MDZIEWIĘĆWCZTERNAŚCIEMJEDENZOSIEMK
PIĘTNAŚCIEBCZTERYZSZESNAŚCIEHPIĘĆJ

... w sumie to pikuś. A przecież można dodać jeszcze dodać sekundy, datę , fazy księżyca, i dni płodne :)))))))))))

Mirley, moje pytanie brzmi.
Czy jest możliwość ustawienia procesora tak aby wskazanie T -5s, zaczęło mrugać przed zmianą czasu?
Na przykład wyświetla: 23.58, cztery sekcje ( dwudziesta, trzecia, pięćdziesiąt, osiem )i ósemka zaczyna migać na pięć sekund przed zmianą czasu na 23.59 itd.
Istniała by wtedy możliwość synchronizacji innych czasomierzy podług "text clocka", albo nawet przycięcia czegoś w ostatniej sekundzie na A..drogo:)

Portret użytkownika dudi69

Qrcze, jak wklejałem

Qrcze, jak wklejałem układankę w posta to było fajnie i prosto.
A jak kliknąłem "zachowaj", to się trochę poprzestawiało.
Mam nadzieje ,że Koledzy wybaczą.
Wszedłem w edycję, i na podglądzie jest wszystko jak należy.

Portret użytkownika mirley

Re: Zegar tekstowy

Da się sprawdzać coś w stylu czy sekundy sa >54 lub cos w tym stylu. Większy problem będzie z tym jak to do wyświetlania włożyć. Widze tu taki problem że jak będzie np 10:12 to musi całe "dwanaście" migać. Można by zrobić żeby całe sekundy migały

-

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.