Termometr Domowy


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

Urządzenie jest prostym termometrem zbudowanym w oparciu o czujnik DS18S20 i sterujący nim mikrokontroler AT89C2051. Układ przystosowany jest do wskazywania temperatury na zewnątrz, obsługuje ujemne wartości. Umożliwia wyłączenie wskazań na wyświetlaczu (w celu oszczędności energii) w dwóch trybach, nie przerywając pomiaru temperatury. Za pomocą zworki dokonujemy wyboru trybu wyświetlania (czasowy lub ręczne wł/wył w którym każde kolejne wciśnięcie przcisku cyklicznie włącza i wyłącza pokazywanie temperatury). Dzięki podłączeniu wyświetlacza "do góry nogami" możliwe jest wyświetlenie znaku stopnia Celsjusza wykorzystując kropkę u dołu cyfry.

Działanie:


Schemat ideowy termometru przedstawia poniższy rysunek:

Sercem układu jest mikrokontroler U2 (AT89C2051) wraz z rezonatorem kwarcowym X1 (12MHz) i kondensatorami C4 (33pF) i C5 (33pF). W obwodzie resetu procesora pracuje kondensator C3 (4,7uF), zapewnia on poprawną pracę mikrokontrolera po włączeniu zasilania. Przycisk S1 i zworka GP sterują funkcjami termometru. Napięcia dla całego obwodu dostarcza zasilacz zbudowany na stabilizatorze U1 (7805) oraz elementach C1 (1000uF) i C2 (47uF). Do złącza zas podłączamy transformator zasilający. Rezystory R9 - R16 (510R) ograniczają prąd wyświetlaczy led. Anodami wyświetlaczy sterują tranzystory T1 - T4 (BC557) wraz z rezystorami R1 - R8 (3,3k).

Budowa:


Termometr można zbudować w oparciu o płytkę drukowaną dostępną tutaj. Rysunek w odbiciu lustrzanym dostępny jest tutaj. Montaż należy rozpocząć od wlutowania dwóch zworek. Kolejność pozostałych elementów jest dowolna ale dobrze jest lutować elementy w kolejności od najmniejszych do największych. Pod wyświetlacz i procesor dobrze jest zastosować podstawki. Pod mikrokontroler jest ona bezwzględnie konieczna. Wyświetlacz jest zamontowany "do góry nogami" ze względu na łatwe wyświetlenie znaku stopnia Celsjusza. Czujnik DS18S20 należy zamontować na kawałku przewodu. Pomocą w konstrukcji może okazać się schemat montażowy dostępny tutaj.

Wykaz Elementów:


1x Złącze ARK2
2x Listwa goldpin 1x3
1x uSwitch

8x 510R
8x 3,3k

2x 33pF
1x 4,7uF Elektrolit
1x 47uF Elektrolit
1x 1000uF Elektrolit

1x Rezonator Kwarcowy 12MHz
1x Mostek Prostowniczy 1A
1x 7805
1x AT89C2051 + Podstawka
4x BC557B
1x Wyświetlacz poczwórny 7 segmentowy
1x DS18S20

Programowanie:


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

Config Timer0 = Timer , Gate = Internal , Mode = 2            'okres Timera0 250*12*Tosc=250us
Load Timer0 , 250
On Timer0 Przerwanie
Enable Interrupts
Enable Timer0
Start Timer0
 
P1 = 255
P3 = 255
Config 1wire = P3.5
'*******************************************************************************
                                  'Zmienne
'*******************************************************************************
Dim Lsb As Byte
Dim Msb As Byte
Dim Co4ms As Byte , Co100ms As Byte , Co1s As Byte
Dim Wysw As Byte , Wysw1 As Byte , Wysw10 As Byte
Dim Tempa As Byte
Dim Mux As Byte
Dim Autooff As Word
Dim Przycisk As Byte
 
Dim Zezw_przyc As Bit , Zezw_wysw As Bit
Dim Pomiar_odczyt As Bit
Dim Minus As Bit
Dim Pokaz As Bit
Dim Przyc As Bit
'*******************************************************************************
                                  'wartosci
'*******************************************************************************
Reset Pomiar_odczyt
Set Pokaz
Autooff = 1500
'*******************************************************************************
                                  'Petla glowna
'*******************************************************************************
Do
 
If Zezw_wysw = 1 Then                                         'wyswietlanie
  Reset Zezw_wysw
  '*****************************************      'co 4ms
  If P3.4 = 0 Then
    Incr Przycisk
    If Przycisk = 200 Then
      Przycisk = 0
      Set Przyc
    End If
  Else
    Przycisk = 180
    Reset Przyc
  End If
 
  If P3.7 = 0 Then
 
   If Przyc = 1 Then
    Reset Przyc
    Pokaz = Not Pokaz
   End If
 
  Else
 
   If Przyc = 1 Then
    Reset Przyc
    Set Pokaz
    Autooff = 1500
   End If
 
   If Autooff > 0 Then
    Decr Autooff
   Else
    Reset Pokaz
   End If
 
  End If
 
  If Pokaz = 1 Then
    Wysw = Tempa
    Gosub Przelicz
    Gosub Wyswietl
  Else
    P1 = 255
  End If
 
  '*****************************************
End If
 
Loop
End
'*******************************************************************************
                                  'Przerwanie Timera
'*******************************************************************************
Przerwanie:                                                   'co 250us
 Incr Co4ms
 If Co4ms = 16 Then
   Co4ms = 0
   '***************************************  co 4ms
   Set Zezw_wysw
   Incr Co100ms
   If Co100ms = 25 Then
     Co100ms = 0
     '*************************************** co 100 ms
     Set Zezw_przyc
     Incr Co1s
     If Co1s = 10 Then
       Co1s = 0
       '*************************************** co 1s
       Pomiar_odczyt = Not Pomiar_odczyt
 
       Disable Interrupts
       1wreset
 
       If Pomiar_odczyt = 1 Then
        1wwrite &HCC
        1wwrite &H44
       Else
        If Err = 0 Then
 
          1wwrite &HCC
          1wwrite &HBE
          Lsb = 1wread():
          Msb = 1wread():
 
          If Msb = 0 Then
            Reset Minus
            Tempa = Lsb / 2
          Else
            Set Minus
            Lsb = Not Lsb
            Tempa = Lsb / 2
            Tempa = Tempa + 1
          End If
 
        Else
          Tempa = 255                                         'Er wyswietli wyswietlacz potem
        End If
       End If
 
       Enable Interrupts
       '***************************************
     End If
     '***************************************
   End If
   '***************************************
 End If
Return
'*******************************************************************************
Przelicz:
 If Wysw < 100 Then
   Wysw1 = Wysw Mod 10
   Wysw1 = Lookup(wysw1 , Tabela)
   If Wysw > 9 Then
     Wysw10 = Wysw / 10
     Wysw10 = Lookup(wysw10 , Tabela)
   Else
     Wysw10 = 255                                             ' znika 0 na pierwszym miejscu
   End If
 Else
   Wysw1 = 175                                                'r
   Wysw10 = 134                                               'E
 End If
 
Return
'*******************************************************************************
Wyswietl:
  Incr Mux
  If Mux = 4 Then Mux = 0
 
  Select Case Mux
    Case 0:
     Set P3.0
 
     If Minus = 1 Then
       If Wysw10 = 255 Then
        P1 = 255
       Else
        P1 = 191
       End If
     Else
       P1 = 255
     End If
 
     Reset P3.3
    Case 1:
     Set P3.3
 
     If Minus = 1 Then
       If Wysw10 = 255 Then
        P1 = 191
       Else
        P1 = Wysw10
       End If
     Else
      P1 = Wysw10
     End If
 
     Reset P3.2
    Case 2:
     Set P3.2
 
     P1 = Wysw1
 
     Reset P3.1
    Case 3:
     Set P3.1
 
     P1 = 70
 
     Reset P3.0
  End Select
 
Return
'*******************************************************************************
                           'Tabela do wyswietlania na wyswietlaczu
'*******************************************************************************
Tabela:
    Data 192 , 249 , 164 , 176 , 153 , 146 , 130 , 248 , 128 , 144
'znak:    0     1     2     3     4     5     6     7     8     9
'*******************************************************************************

Zdjęcia Projektu:

ZałącznikWielkość
Schemat82.26 KB
Płytka13.95 KB
Płytka (odbicie lustrzane)13.94 KB
Płytka (3 na stronie)37.22 KB
Montowanie19.15 KB
Kod źródłowy5.69 KB
Program po kompilacji (BIN)931 bajtów
Program po kompilacji (HEX)2.61 KB



Portret użytkownika mirley

Re: Termometr

W tym fragmencie trzeba ustawić w zmiennej odpowiedni bit:


   If Wysw100 = 0 Then Wysw100 = 10                           'wygaszenie zera wiodcego
 
   Wysw1 = Lookup(wysw1 , Tabela2)
   Wysw10 = Lookup(wysw10 , Tabela)
   Wysw100 = Lookup(wysw100 , Tabela)
   Wysw1000 = Lookup(wysw1000 , Tabela)
 
   Wysw1000.6 = not Minus '<<<< dopisać
 
 Else
   Wysw1 = 175     

linijka:

Wysw1000.6 = not Minus '<<<< dopisać    

ustawi na 6 bicie (segment g) stan niski kiedy minus = 1. Można jeszcze dopisać żeby minus pojawiał się na pierwszym wyswietlaczu gdy jest < niż -10 i na drugim gdy jest > -10. Nie musisz przy tym rezygnować z wyświetlania części po przecinku. Są 4 wyświetlacze więc najlepiej jest zrobić, np tak: -10.0 i zrezygnować ze znaku stopnia celsjusza na wyświetlaczu. Drugą wersją jest ograniczenie się do -19.9 stopnia i znak - będzie wyświetlany razem z 1 na pierwszym wyswietlaczu w przypadku < -9.9

Poza tym zadumaj się nad procedurą wyświetl bo coś jest nie tak:

.....
    Case 3:
     Set P3.3
     P1 = Wysw1000
     Reset P3.3

nie powinno byc w jednym case, set i reset tego samego portu, w kolejnych case ma być zawsze set poprzedniego i reset tego na którym chcesz coś wyświetlić. Całą sprawą tego co jest wyświetlane ma się zajmować procedura przelicz

-

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 jakimov

Częstotliwość odświeżania

Po pierwsze bardzo dziękuję za pomoc. Pozmieniałem trochę listing programu, dodałem Twoją poprawkę. W tej chwili już działa z temperaturą ujemną bez żadnego problemu.

Mam teraz jeszcze jeden problem. Chodzi o odświeżanie wyświetlacza. Mam zrobione takie cztery termometry. Wyświetlacze są w czterech różnych kolorach. Mam zamiar je złożyć w jedną obudowę i wspólne zasilanie.
Czy możliwe jest to, że wyświetlacze różnych producentów będą miały różne czasy odświeżania?. W moim przypadku czerwony, zielony jest w miarę ok, natomiast na żółtym i niebieskim widać z bliska dość znaczne migotanie. Jest jakiś sposób na zlikwidowanie tego problemu?.

Poniżej, w pełni działający program, z obsługą temperatur ujemnych:

'****************************
           'Konfiguracja
'****************************
$crystal = 12000000                                           '12MHz
$regfile = "89C2051.DAT"
 
Config 1wire = P3.5
 
Config Timer0 = Timer , Gate = Internal , Mode = 2
On Timer0 Przerwanie0
Load Timer0 , 250
Enable Timer0
Start Timer0
 
Enable Interrupts
'****************************
      'Zmienne
'****************************
Dim Lsb As Byte
Dim Msb As Byte
Dim Co4ms As Byte , Co100ms As Byte , Co1s As Byte
Dim Wysw As Word , Wysw1 As Byte , Wysw10 As Byte , Wysw100 As Byte , Wysw1000 As Byte
Dim Tempa As Word
Dim Mux As Byte
Dim Autooff As Word
Dim Zezw_wysw As Bit
Dim Pomiar_odczyt As Bit
Dim Minus As Bit
Dim Ur As Bit
Dim Przycisk As Byte
Dim Pokaz As Bit
Dim Przyc As Bit
'****************************
      'Wartosci Poczatkowe
'****************************
Reset Pomiar_odczyt
Reset Ur
Wysw1 = 191
Wysw10 = 191
Wysw100 = 191
Wysw1000 = 191
'*******************************************************************************
                                  'wartosci
'*******************************************************************************
Reset Pomiar_odczyt
Set Pokaz
Autooff = 1500
'****************************
      'Petla glowna
'****************************
'*******************************************************************************
                                  'Petla glowna
'*******************************************************************************
Do
 
If Zezw_wysw = 1 Then                                         'wyswietlanie
Reset Zezw_wysw
'*****************************************      'co 4ms
  If P3.4 = 0 Then
    Incr Przycisk
    If Przycisk = 200 Then
      Przycisk = 0
      Set Przyc
    End If
  Else
    Przycisk = 180
    Reset Przyc
  End If
 
  If P3.7 = 0 Then
 
   If Przyc = 1 Then
    Reset Przyc
    Pokaz = Not Pokaz
   End If
 
  Else
 
   If Przyc = 1 Then
    Reset Przyc
    Set Pokaz
    Autooff = 1500
   End If
 
   If Autooff > 0 Then
    Decr Autooff
   Else
    Reset Pokaz
   End If
 
  End If
 
  If Pokaz = 1 Then
    Wysw = Tempa
    Gosub Przelicz
    Gosub Wyswietl
  Else
    P1 = 255
  End If
 
'*****************************************
End If
 
Loop
End
'****************************
      'Przerwanie timer0
'****************************
Przerwanie0:
Incr Co4ms
 If Co4ms = 16 Then
   Co4ms = 0
   '***************************************  co 4ms
   Set Zezw_wysw
   Incr Co100ms
   If Co100ms = 25 Then
     Co100ms = 0
     '*************************************** co 100 ms
     'ew flaga obslugi przyciskow
     Incr Co1s
     If Co1s = 7 Then
       Co1s = 0
       '*************************************** co 1s
       Pomiar_odczyt = Not Pomiar_odczyt
 
       Disable Interrupts
       1wreset
 
       If Pomiar_odczyt = 1 Then
        1wwrite &HCC
        1wwrite &H44
       Else
        If Err = 0 Then
 
          1wwrite &HCC
          1wwrite &HBE
          Lsb = 1wread():
          Msb = 1wread():
 
          Minus = Msb.7
 
          Tempa = Msb * 256
          Tempa = Tempa + Lsb
 
 
          If Minus = 1 Then
            Tempa = Not Tempa
            Tempa = Tempa + 1
          End If
 
          Tempa = Tempa * 10                                  'temperatura *10
          Tempa = Tempa / 16
 
          If Ur = 0 Then Ur = 1
 
        Else
          Tempa = 10000                                       'Er wyswietli wyswietlacz potem
        End If
       End If
 
       Enable Interrupts
       '***************************************
     End If
     '***************************************
   End If
   '***************************************
 End If
 
Return
'****************************
      'Inne Etykiety
'****************************
Przelicz:
 If Wysw < 10000 Then
   Wysw1 = Wysw Mod 10
 
   Wysw = Wysw / 10
   Wysw10 = Wysw Mod 10
 
   Wysw = Wysw / 10
   Wysw100 = Wysw Mod 10
 
   Wysw = Wysw / 10
   Wysw1000 = Wysw Mod 10
 
 
   If Wysw100 = 0 Then Wysw100 = 10                           'wygaszenie zera wiodcego
   If Wysw1000 = 0 Then Wysw1000 = 100                        'wygaszenie zera wiodcego
 
   Wysw1 = Lookup(wysw1 , Tabela)
   Wysw10 = Lookup(wysw10 , Tabela)
   Wysw100 = Lookup(wysw100 , Tabela)
   Wysw1000 = Lookup(wysw1000 , Tabela)
   Wysw1000.6 = Not Minus                                     '<<<< dopisa?
 
 Else
   Wysw1 = 175                                                'r
   Wysw10 = 175                                               'r
   Wysw100 = 175                                              'r
   Wysw1000 = 134                                             'E
 End If
 
Return
 
Wyswietl:
  Incr Mux
  If Mux = 4 Then Mux = 0
  P3.7 = Not Minus
 
  Select Case Mux
    Case 0:
     Set P3.0
     P1 = Wysw1000
     Reset P3.3
 
    Case 1:
     Set P3.3
      P1 = Wysw100
     Reset P3.2
 
    Case 2:
     Set P3.2
      P1 = Wysw10
     Reset P3.1
 
    Case 3:
     Set P3.1
     P1 = 70
     Reset P3.0
 
  End Select
Return
 
                         'Tabele do wyswietlania na wyswietlaczu
Tabela:
    Data 192 , 249 , 164 , 176 , 153 , 146 , 130 , 248 , 128 , 144 , 255
'znak:    0     1     2     3     4     5     6     7     8     9     pusty

Portret użytkownika mirley

Re: Wyświetlacze LED

Spróbuj zwiększyć prąd jaki płynie na każdy z segmentów LED zmniejszając rezystory R9-16 np do 330R lub 470R... nie wiem jednak czy to coś pomoże. Procedura obsługi Ds jest tutaj napisana w najprostszy sposób i dlatego powstaje migotanie. Możesz jeszcze spróbować z inną częstotliwością odświeżania w programie. Sam wyświetlacz nie ma czegoś takiego jak odświeżanie bo to poprostu zbiór diod led w jednej obudowie. Ewentualnie czas reakcji diody mógłby dawać różnicę ale nie zastanawiałem się nad tym nigdy dokładnie.

-

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 jakimov

Wyświetlacze LED rozwiązanie

Zrobiłem drugi termometr, tym razem podwójny. Poczwórny zrobiłem, złożyłem i działa na razie bez zmian.
W nowym zmieniłem rezystory R9-R16 na 470R, tak jak wspomniałeś. Dodatkowo ponieważ nie miałem kwarców 12 Mhz, dałem 16 Mhz. Co ciekawe, nie zmieniałem częstotliwości w programie, pozostawiłem ją tak jak było wcześniej. Działa teraz idealnie. Pytanie co pomogło, co tutaj miało wpływ?, zmiana kwarca?, czy rezystorów?, a może wszystko razem?.

Portret użytkownika ELEKTROLAND

CIEKAWE ale warte rozbudowy !!!

Termometry na rynku sa bardzo tanie i łatwo dostępne natomiast koszt elementów a głównie czujnika DS 18xx sprawiaja że układ jest mało atrakcyjny dlatego proponuję dokonać przeróbki układu na REGULATOR temperatury i jako czujnik zastosować jakiegoś KTYa co prawda aplikacja nieco sie rozbuduje ale i tak koszt sie nie zwiększy natomiast użyteczność tego typu układu jest w wielu miejscach nie oceniona i znajdzie zastosowanie w wielu miejscach w każdym domu np.Hobby Akwarystyka ,Modelarstwo,czy regulacja temperatury w domu itd....
Oczywiście nic nikomu nie nażucam ale doszedłem do takiego wniosku rozglądając sie po pracowni gdzie jestem obstawiony termometrami i zegarami.
POZDRAWIAM WSZYSTKICH ODWIEDZAJACYCH FORUM

-

Elektroland

Portret użytkownika jakimov

CIEKAWE ale warte rozbudowy !!!

Po pierwsze niepotrzebnie wyrażasz swoje myśli krzycząc. Po drugie, akurat zastosowanie czujnika ds18b20 bardzo mi pasuje. Jest on na tyle popularny, tak rozpowszechniony, że nie mamy o czym mówić. Pozatym nie jest wcale taki drogi. Można go kupić za mniej niż 4 zł np. na allegro, a nie potrzebujemy przecież tych czujników aż tyle, żeby to było nieopłacalne, a jeśli już, to coś co mocno nadszarpnie nasz budżet. Przy obecnym zalewie produktów z Chin, mało co staje się opłacalne. O jakości większości tych produktów przemilczę, każdy wie jak sprawa się przedstawia. Osobiście nie robię takich rzeczy na sprzedaż, tylko dla własnej satysfakcji.

Portret użytkownika mirley

Re: Termometr

jakimov:
Dwa efekty które zrobiłeś poprawiają pracę wyświetlacza więc trudno powiedzieć... to że działa z innym kwarcem to raczej przypadek ale działa więc nie ma co kombinować.

ELEKTROLAND:
Nie uważam czujników rezystancyjnych wcale za takie atrakcyjne, trzeba zrobić źródło prądowe, potem wzmacniacz pomiarowy, na końcu przetwornik ADC, pociąga to za sobą zastosowanie uC z przetwornikiem (rozwiązanie najtańsze ale dokładność kiepska) lub zewnętrzny przetwornik (duża cena). Tak czy inaczej mija się to z celem przy aktualnej cenie i dodatkowej wygodzie ze stosowania DS'ów. Poza tym sprawa ztermostatem... jest wersja programu dla termometru uniwersalnego z mojej strony... ten akurat nie posiada specjalnego oprogramowania bo ma mniej popularny układ w wersji S. Poza tym nie jest normalne jeśli robię termometr zaokienny żeby pakować do niego termostat

-

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 jakimov

Re: Termometr

Quote:
Dwa efekty które zrobiłeś poprawiają pracę wyświetlacza więc trudno powiedzieć... to że działa z innym kwarcem to raczej przypadek ale działa więc nie ma co kombinować.

Masz świętą rację Mirley, dlatego już więcej nic w nim nie będę zmieniać.

Portret użytkownika Chester

Lampy LC-513

Witam!

Czy istnieje możliwość aby zamiast wyświetlacza led podłączyć lampy LC-513??
Czy wiąże się to z wielkimi przeróbkami??

Pozdrawiam!

Portret użytkownika mirley

Re: Termometr

Popatrz na projekt zegara nixie na mojej stronie.... trzeba zrobić nowy projekt bo 2051 ani tiny2313 tego nie uciągnie ze względu na piny, a dodatkowo obwody wyjściowe są inne

-

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 mateuszrjzr

ma ktoś może podstawkę

ma ktoś może podstawkę programującą na ten uc?
i jeszcze pytanie ponieważ mam programator stk 200/300 na lpt ciężko mi znaleść instrukcję, albo jak zacząć programować od podstaw bo mnie to nie idzie.
acha, wszystkie wyświetlacze spotykane przeze mnie mają 12 pinów a nie14.Jaki zastosować?
z góry dziękuję

Portret użytkownika mirley

Re; Termometr

Poszukaj sobie w internecie kursu "mikroprocesorowa ośla łączka". Tego procka AT89C2051 nie zaprogramujesz w STK200. Musisz mieć wersję AT89S2051. Opis programowania procków tej rodziny przedstawiony jest u mnie na stronie w artykułach: "Programowanie 89SXX...."

Wyświetlacz musi mieć zgodne wyprowadzenia z tym co na schemacie. Inaczej będziesz musiał podłączyć piny w inny sposób niz na płytce

-

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 mateuszrjzr

jak zmienie uc to nie musze z

jak zmienie uc to nie musze z mieniać programu? (jak zmienie na serie "c")

Portret użytkownika mirley

Re: Program

Jak zamienisz procesor z serii C na S i odwrotnie to program powinien działać dokładnie ten sam

-

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 Kamilox

Zasilanie

Witam. Rozumiem, ze można zasilać baterią np 9V 6LR61 poprzez usunięcie mostka prostowniczego i połączeniu ścieżek pozostałych po mostku? Jeśli się mylę to poprawcie mnie. Ewentualnie może inna baterią zasilany być ale jaką? Proszę o pomoc.

Portret użytkownika mirley

Re: Termometr

Bateria 9V będzie chyba najlepsza. Pamiętaj że układ pobiera trochę prądu i może sie bateria szybko wyładować. Mostek możesz usunąć tak jak piszesz

-

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 M

Programator

Witam
W jakim programatorze mogę zaprogramować ten układ?
Zrobiłem STK200 z twojego schematu, ale niestety posiadam AT89C2051 :/
A drugie pytanie: mogę zastąpić BC557B tranzystorem C557C?

Portret użytkownika mirley

Re: Termometr

Do C2051 potrzebujesz programatora równoległego..... STK200 nie da rady, chyba że kupisz procka z literką S to na podstawie mojego opisu programowanie AT89SXX poradzisz sobie za pomocą STK200.

Tranzystor wydaje sie być zwykłym BC557 więc nie powinno być problemu a juz napewno w takiej konfiguracji gdzie tranzystor działa jak klucz

-

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 M

W takim razie jaki

W takim razie jaki programator da radę(jakiś najprostrzy)?

Portret użytkownika mirley

Re: Programator

Ja mam coś takiego http://sklep.avt.pl/p/pl/48061/programator+procesorow+89cx051.html Nie wymaga programowania procków do sterowanie programatorem

-

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 Kamilox

układ

Da się zastąpić ten układ innym?

Portret użytkownika mirley

Re: Program

Da się zastąpić tiny2313 ale trzeba przepisać program pod tiny2313

-

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

Portret użytkownika marcin1828

Z tego co wiem Mirley nie ma

Z tego co wiem Mirley nie ma niestety czasu, ale jeśli ktoś inny przerobił ten kod na attiny2313, albo wie jak to bardzo proszę o udostępnienie(marcin1828@poczta.onet.pl).

Portret użytkownika grizz

A ja proszę, ze jak ktoś, coś

A ja proszę, ze jak ktoś, coś przerabia, to niech udostępni tutaj (a raczej w nowym wątku na forum, bo w odpowiedziach się zagubi) ew. na jakims publicznym repozytorium (np. github), zeby inni tez mogli skorzystać.

Portret użytkownika M

W jaki sposób można sprawdzić

W jaki sposób można sprawdzić ten termometr(bez procesora)? Które piny należy złączyć?

Portret użytkownika mirley

Re: Termometr

-

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 japan

fuse bity??

witam , jak wyglada sprawa z fusebitami jak je trzeba ustawic??

Portret użytkownika mirley

Re: Fusebity

Mam specjalny artykuł na ten temat -> patrz artykuły rózne. Odpowiedni zrzut ustawień dla tiny2313 masz tutaj:
http://mirley.firlej.org/files/ART_fuseT2313_02B.gif

-

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 jajen

korekcja temperatury

Jak zrobić korekcję temperatury o jeden stopień w dół? Dzięki z góry za pomoc.

Portret użytkownika jajen

re: korekcja temperatury

Chodzi o wersję z ds 18S20.

Portret użytkownika mirley

Re: Termometr

Np w linii:

Wysw = Tempa

wpisać:
Wysw = Tempa - 1

-

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

Portret użytkownika Chester

Wyświetlacz LED

Witam!

Czy istnieje możliwość aby ten wyświetlacz zamontować odwrotnie? Chciałbym aby mierzył standardowo od -50 stopni Celsjusza do 120 stopni Celsjusza. Bez wyświetlania tego znaku tylko pierwsza cyfra powinna wskazywać w znak "-" przy ujemnych temperaturach np.: -12,3 stopnia Celsjusza. Oraz czy zamontowanie drugiego wyświetlacza i czujnika to duży problem? Pokazywanie temperatury miałoby się odbywać bez przerwy :)
Mam nadzieję że dobrze się wyraziłem :)

Pozdrawiam!

Portret użytkownika mirley

Re: termometr

Popatrz na http://mirley.firlej.org/termometr_uniwersalny gdzieś już pisałem wyświetlanie - na wyświetlaczu, jednak nie pamiętam dokładnie, co do drugiego czujnika to w programie który tu jest nie za bardzo da się to zrobić. Trzeba całkiem inaczej to napisać

-

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 Marcin_130189

Witam, Czy można zastosować

Witam,

Czy można zastosować w/w program dla ATmega8? Posiadam dużo wywietlaczy 1-segmentowych i chciałbym ich do czegoś użyć, rozumiem, żeby ich użyć powinienem połączyć wszystkie kadody razem, a anody sterować tranzystorami osobno dla każdego wyświetlacza?

Pozdrawiam,
Marcin

Portret użytkownika mirley

Re: Termometr

Popatrz na projekt termometr domowy tam jest kod pod tiny2313, po przekompilowaniu powinno zadziałać tez na M8.

Co do wyświetlaczy to masz połączyć wszystkie te same segmenty wszystkich wyświetlaczy razem.... a z a, b z b itd. - powinno działać

-

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.