Termometr Uniwersalny


9.28571
Ocena: None Średnia: 9.3 (14 głosujących)

Termometr ten pracuje w zakresie temperatur od -50.0 do +99.9 stopni lub w drugiej wersji oprogramowania aż do +125 stopni. Układ został zaprojektowany do mierzenia temperatury w akwarium ale z powodzeniem można dla niego znaleźć wiele innych zastosowań. Na płytce znajduje się miejsce na dwa przyciski oraz dodatkowe złącze ogólnego przeznaczenia. Po zmianie oprogramowania urządzenie może pełnić funkcję prostego termostatu, lub bardziej złożonego regulatora temperatury. Układ został zbudowany w oparciu o popularny, często stosowany czujnik DS18B20 i mikrokontroler AT89C2051 co znacznie uprościło jego konstrukcję i zmniejszyło wymiary. W układzie można też bez większego trudu zastosować mikrokontroler ATTiny2313, wymaga to tylko wprowadzenia kilku prostych modyfikacji.

Działanie:


Schemat termometru przedstawia poniższy rysunek:

Sercem urządzenia jest mikrokontroler U2 (AT89C2051) wraz z rezonatorem kwarcowym X1 (12MHz) i dwoma kondensatorami C4 (33pF) i C5 (33pF). Kondensator C3 (1uF) resetuje procesor po włączeniu napięcia zasilającego, a C1 (220uF) filtruje to napięcie. Do złącza zas podłączamy napięcie zasilające o wartości 5V. Rezystory R9 - R16 (330R) ograniczają prąd wyświetlaczy. Tranzystory T1 - T3 (BC557B) wraz z rezystorami R1 - R6 (3,3k) sterują anodami wyświetlaczy.

Budowa:


Termometr można zbudować z wykorzystaniem dostępnej tutaj płytki drukowanej. Wersja płytki w odbiciu lustrzanym dostępna jest tutaj. Montaż elementów można dokonać w dowolnej kolejności, najlepiej od najmniejszych do największych. Pod wyświetlacz dobrze jest wlutować kawałek podstawki DIP40, natomiast pod mikrokontroler podsatwka jest bezwzględnie konieczna. Od strony druku należy wlutować rezystor 4,7k podciągający magistralę 1-Wire (nóźka 9 układu U2) do plusa zasilania. Złącze GP1 w wersji podstawowej służy do podłączenia diody sygnalizującej ujemną temperaturę (katodą do portu procesora, anodą do VCC) gdyby miało być wykorzystywane w inny sposób należy usunąć z kodu programu linijkę: P3.7 = Not Minus. Przód obudowy można z powodzeniem wykonać z kawałka laminatu. Płytkę termometru mocujemy do panelu przedniego za pomocą dwóch przylutowanych do niego śrub. Pomocą przy konstrukcji może okazać się schemat montażowy dostępny tutaj.

Jeżeli w układzie będzie zastosowany mikrokontroler ATTiny2313 zamiast AT89C2051, nie należy montować kondensatora C3, a kondensatory C4 i C5 powinny mieć wartość 22pF.

Wykaz Elementów:

8x 330R
6x 3,3k

2x 33pF
1x 1uF
1x 220uF

1x Rezonator Kwarcowy 12MHz
1x AT89C2051 (lub ATTiny2313)
3x BC557B
1x DS18B20
1x AT5636BG-B Pb-free (TOT-5362BG-B) Wyświetlacz potrójny

Programowanie:


Oprogramowanie do termometru zostało napisane w wersji demo programu BASCOM 8051 firmy MCS Electronics (http://www.mcselec.com/). Program w całości przedstawiony jest poniżej:

'****************************
           '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
Dim Tempa As Word
Dim Mux As Byte
 
Dim Zezw_wysw As Bit
Dim Pomiar_odczyt As Bit
Dim Minus As Bit
Dim Ur As Bit
'****************************
      'Wartosci Poczatkowe
'****************************
Reset Pomiar_odczyt
Reset Ur
Wysw1 = 191
Wysw10 = 191
Wysw100 = 191
'****************************
      'Petla glowna
'****************************
Do
 
If Zezw_wysw = 1 Then
  Reset Zezw_wysw                                             'co 4ms
  Wysw = Tempa
 
  If Ur = 1 Then Gosub Przelicz
  Gosub Wyswietl
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 < 1000 Then
   Wysw1 = Wysw Mod 10
   Wysw = Wysw / 10
   Wysw10 = Wysw Mod 10
   Wysw = Wysw / 10
   Wysw100 = Wysw Mod 10
 
   If Wysw100 = 0 Then Wysw100 = 10                           'wygaszenie zera wiodcego
 
   Wysw1 = Lookup(wysw1 , Tabela)
   Wysw10 = Lookup(wysw10 , Tabela2)
   Wysw100 = Lookup(wysw100 , Tabela)
 
 Else
   Wysw1 = 175                                                'r
   Wysw10 = 175                                               'r
   Wysw100 = 134                                              'E
 End If
 
Return
 
Wyswietl:
  Incr Mux
  If Mux = 3 Then Mux = 0
  P3.7 = Not Minus
 
  Select Case Mux
    Case 0:
     Set P3.0
      P1 = Wysw100
     Reset P3.2
 
    Case 1:
     Set P3.2
      P1 = Wysw10
     Reset P3.1
 
    Case 2:
     Set P3.1
     P1 = Wysw1
     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
 
Tabela2:
    Data 64 , 121 , 36 , 48 , 25 , 18 , 2 , 120 , 0 , 16 , 255
'znak:    0.    1.  2.    3.   4.   5.  6.   7.   8.  9.    pusty

Ustawienia Fusebitów dla mikrokontrolera ATTiny2313:

Zdjęcia Projektu:

ZałącznikWielkość
Schemat87.5 KB
Płytka11.03 KB
Płytka (odbicie lustrzane)11.01 KB
Płytka (6 na stronie)61.72 KB
Montowanie15.44 KB
Kod źródłowy (wersja podstawowa)4.46 KB
Program po kompilacji (BIN) (wersja podstawowa)1.03 KB
Program po kompilacji (HEX) (wersja podstawowa)2.96 KB
Kod źródłowy (obsługuje temperatury powyżej 100 stopni)4.91 KB
Kod Źrodłowy (wersja z termostatem) (jeszcze nie testowana)7.57 KB
Program po kompilacji (wersja z termostatem) (BIN)1.72 KB
Program po kompilacji (wersja z termostatem) (HEX)4.85 KB
Kod Źródłowy (dla ATTiny2313, Bascom AVR)4.43 KB
Kod Źrodłowy (wersja z termostatem, dla ATTiny2313, Bascom AVR) (jeszcze nie testowana)7.28 KB
Program po kompilacji (BIN) (dla ATTiny2313, Bascom AVR)1.59 KB
Program po kompilacji (HEX) (dla ATTiny2313, Bascom AVR)4.49 KB
Kod źródłowy (dla ATMega8, Bascom AVR)4.6 KB
Nadruk na obudowę64.22 KB



Portret użytkownika mirley

Re: Rezystory

Z prostych wyliczeń wydaje się że tak, wydzielana moc na rezystorze 330R to ok 0,075W max(w praktyce mniej) Pozostałe rezystory są bez znaczenia ze względu na znikomy prąd

-

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

[img][/img]Witam super

Witam super projekt, ale mam pytanie czy można za miast 12 khz ustawić attiny2313 na kwarc wewnętrzny? Jeżeli nie to mugłbyś dać sccren z fuse bit z bascoma avr?

Portret użytkownika mirley

Re: Fusebity

Nie czytasz uważnie pytań i odpowiedzi. Juz pisałem:

Quote:
Fusebity dla bascoma są bardzo proste. Wystarczy wyłączyć dzielenie przez 8 (Devide by 8 -> Disabled) oraz ustawić na rezonator kwarcowy dużej częstotliwości (External Crystal Resonator.. 8MHz- ) taki gdzie wartości CKSEL=1111 SUT=10

Screen'a nie mam bo nie używam już programatora STK200, a to on ma takie łopatologiczne ustawienia fusebitów. Jeśli dalej nie wiesz co ustawić to zainstaluj sobie avrdude + Burn-O-Mat, opis znajdziesz u mnie na stronie tutaj. Potem fusebity ustawisz według screena w opisie termometru.

-

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

ten Kod źródłowy (dla

ten Kod źródłowy (dla ATTiny2313, Bascom AVR) to jest tylko termometr, tak? i nie trzeba wprowadzać żadnych zmian na płytce używając attiny2313 i tego programu dla bascoma avr?
A i ten wyświetlacz to ze wspólną anodą tak?

Portret użytkownika mirley

Re: Termometr

Kod pod attiny to tylko termometr. Tylko kilka elementów jest innych ale płytka ta sama (patrz opis w rozdziale budowa). Wyświetlacz ze wspólną anodą i segmentami zwartymi wewnątrz (porównaj wyprowadzenia swojego wyświetlacza z moim zanim wlutujesz)

-

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

A czy ten termometr nadaje

A czy ten termometr nadaje się do sprawdzania temperatury roztworu b327?
Aby zabezpieczyć styki termometru myślałem o koszulce termo kurczliwej i teraz moje pytanie. Czy takiej koszulce nic się nie stanie pod wpływem wytrawiacza? I czy ten termometr wytrzyma temperaturę ognia z zapalniczki?

Portret użytkownika mirley

Re: Termometr

możesz mierzyc tym temp wytrawiacza, koszulkę złóż na pół tak aby oba jej końce wystawały nad wytrawiacz (tak jest lepiej, zalewanie silikonem czujnika w termokurczliwce nie jest dobre bo wytrawiacz się tam dostaje), czujnik wytrzymie czas zgrzewania bo to tylko kilka sekund, jak będziesz trzymał dłużej w ogniu to wiadomo że się uszkodzi :)

-

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

Wersja kodu dla Atmega8

Witam jestem początkujący, a chciałbym zrobić ten termometr na pracownię elektroniczną, u mnie w technikum. Przeczytałem książkę, wyposażyłem się w płytkę testową edukacyjną i zrobiłem kilka przykładowych projektów, które edytowałem do swoich potrzeb, ale przerobienie tego kodu z ATTiny2313 na AtMege8 mnie przerasta. Mirley mam wielką prośbę o przerobienie tego kodu. Nawet nie potrzebuje żeby mi tłumaczy co gdzie podłączać, co jak działa bo to rozumiem i odczytuje w locie (z konfiguracji portów), tak samo rzecz ma się z przerobieniem kodu pod wyświetlacza segmentowy anodowy i katodowy. Ustawienie oscylatora zewnętrznego też kumam. Trochę nie rozumiem tych stosów ale mniejsza o to.
Proszę o pomoc. Widzę że znasz się na sprawie a ja już kilka godzin siedzę i utknąłem. Może ktoś inny to czytający ma ochotę się tym zająć?

Portret użytkownika mirley

M8 termometr

Mogę takie cos napisać ale dopiero końcem września zabieram się za takie sprawy.... mam tego trochę w kolejce.

-

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

Dziękuje za zainteresowanie

Będę z niecierpliwością oczekiwał Twojej pomocy pod koniec września.

Portret użytkownika Tom

Pytanie o więcej czujników

Czy można tak zrobić ten układ aby można było podłączyć do niego 3 czujniki które byłyby zmieniane przyciskiem i trzy diody które oznaczały by który aktualnie czujnik jest aktywny

Portret użytkownika mirley

Re: termometr

Teretycznie da się podłaczyc 3 czujniki i diody multipleksując je razem z wyświetlaczem... jednak juz przy jednym czujniku Ds jest problem z obsługą wyświetlacza led a co dopiero jak trzeba wysyłać numery seryjne do kilku czujników. Wymaga to duzych sztuczek programistycznych i o wiele prościej jest zastosować wyświetlacz LCD, a ponadto nowszy procesor z rodziny AVR.

-

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 Tom

Więcej czujników

Dziękuje za odpowiedź, myślałem o zastosowaniu termometru z wyświetlaczem LCD jednakże dość długo szukałem układu na układach DS ze względu na dość dużą odległość od czujników oraz na wyświetlaczach LED ze względu na lepszą widoczność na LED. Tak więc widzę że pozostaje mi LCD

Portret użytkownika mirley

Re: termometr

Nie twierdzę że nie da sie zrobić termometru na 3 czujnikach i LED, poprostu program będzie musiał być nakombinowany bo bascom jest jaki jest i wszystkiego się w nim nie da napisać. Jeśli musi być wyświetlacz LED to można zrobić prosty trik z dwoma procesorami. Na jednym będzie pomiar ds18b20 a drugi będzie sobie wyświetlał i nic nie będzie migać. Łączność między prockami zapewni rs232, odbiornik do takiego czegoś już mam zrobiony, popatrz na projekt wyświetlacz LED na rs232.

-

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 BIGjack

temp ujemna

Witam, mam problem z wyświetlaniem znaku minus. Odczyt jest na wyświetlaczu 4-ro cyfrowym i nie wiem jak dostosować kod aby minus wyświetlany był multipleksowo jako pierwszy znak. Układ oparty jest na ATTiny2313.

Portret użytkownika mirley

W tym fragmencie kodu należ

W tym fragmencie kodu należ zmienić pozycję case 0 na taką jak poniżej

Select Case Mux
    Case 0:
     Set Portd.0
      if Minus = 1 then Wysw100.6 = 0
      Portb = Wysw100
     Reset Portd.2
 
    Case 1:
     Set Portd.2
      Portb = Wysw10
     Reset Portd.1
 
    Case 2:
     Set Portd.1
     Portb = Wysw1
     Reset Portd.0
  End Select

Nie sprawdzałem tego w praktyce, ale powinno działać. Jak będzie np -10 to powinien się minus zaświecić razem z pierwszą 1, jak będzie więcej niż -19.9 to minus się nie wyświetli bo go zasłoni np 2 lub 3 na początku

-

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 BIGjack

Dzięki wielkie za szybka

Dzięki wielkie za szybka odpowiedź.
Oczywiście zadziałało, ale czuję jeszcze niedosyt ;) czy da się bez wielkiej przeróbki programu zrobić tak aby przy temp powyżej 9,9 minus przeskoczył na pierwszą pozycję wyświetlacza a na 2,3 i 4-tej pozycji wyświetlana byłaby temperatura?

Portret użytkownika mirley

Chyba się da zrobić tylko

Chyba się da zrobić tylko musisz dołożyć kolejny wyświetlacz podłączony np do Portd.6 a na początku musisz zrobić nową zmienna wysw1000. Nie wiem czy to zadziała bo wyjechałem na święta i cały sprzęt testowy został.

Przelicz:
 If Wysw < 1000 Then
   Wysw_pomoc = Wysw Mod 10
   Wysw1 = Wysw_pomoc
   Wysw = Wysw / 10
   Wysw_pomoc = Wysw Mod 10
   Wysw10 = Wysw_pomoc
   Wysw = Wysw / 10
   Wysw_pomoc = Wysw Mod 10
   Wysw100 = Wysw_pomoc
 
   Wysw1 = Lookup(wysw1 , Tabela)
   Wysw10 = Lookup(wysw10 , Tabela2)
   Wysw100 = Lookup(wysw100 , Tabela)
 
   Wysw1000 = 255
   If Wysw100 = 0 Then 
     Wysw100 = 255                         'wygaszenie zera wiodšcego
     if Minus = 1 then Wysw100.6 = 0
   else
     if Minus = 1 then Wysw1000.6 = 0
   end if
 
 
 Else
   Wysw1 = 175                                              'r
   Wysw10 = 175                                             'r
   Wysw100 = 134                                            'E
   Wysw1000 = 255
 End If
 
Return
 
 
Wyswietl:
 
  Incr Mux
  If Mux = 4 Then Mux = 0
 
  Select Case Mux
    Case 0:
     Set Portd.6
      Portb = Wysw100
     Reset Portd.2
 
    Case 1:
     Set Portd.2
      Portb = Wysw10
     Reset Portd.1
 
    Case 2:
     Set Portd.1
     Portb = Wysw1
     Reset Portd.0
 
    Case 3:
     Set Portd.0
     Portb = Wysw1000
     Reset Portd.6
 
  End Select
 
Return

-

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

pomoc

witam!

czy jak nie mam wyświetlacza trzy cyfrowego to mogę zastosować jeden dwu cyfrowy i jeden jedno cyfrowy?
czy wszystko będzie dobrze diałało?
wiem że na pewno coś będzie trzeba inaczej podłączyć, ale co?
jak mógłby mi pan to wytłumaczyć to było by dobrze.

Pozdrawiam.

Portret użytkownika mirley

Re: Termometr

Można zastosować dowolne wyświetlacze ze wspólną anodą tylko wyświetlacze podwójne i pojedyńcze nie mają zwartych ze sobą segmentów wewnetrznie i trzeba wszystko ręcznie połączyć. Segmenty a wszystkich wyświetlaczy muszą być spięte do tych samych segmentów w pozostałych wyświetlaczach, tak samo wszystkie b do siebie, c,d....i punkty dp. Uzyskasz wtedy takie połączenie jak na schemacie wyżej gdzie z jednego potrójnego wyświetlacza wychodzą tylko pojedyncze sygnały a...g. Ten wywietlacz co ja zastosowałem ma te połaczenie wewnątrz obudowy. Popatrz na jego schemat http://sklep.avt.pl/photo/product_info/f/c/2/1_fc2b1cb390bd.jpg , tak samo muszą być podłaczone twoje wyświetlacze. Wyprowadzenia swoich wyświetlaczy znajdziesz internecie

-

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 BIGjack

Twoja Boskość mnie przytłacza

Twoja Boskość mnie przytłacza ;-)
Wszystko działa idealnie od pierwszego odpalenia!
Dzięki wielkie i jeszcze raz SZACUN!

Przy okazji Życzę Wszystkim Zdrowych, Pogodnych i Wesołych Świąt Bożegona Narodzenia.

BIGjack

Portret użytkownika BIGjack

Jednak nie działa tak jak bym

Jednak nie działa tak jak bym tego oczekiwał :( tzn. jak temeperatura podejdzie bliżej zera t/j - 9.9 stopnia to minus pozostaje na swoim miejscu a zero nie gaśnie. Wyświetla tak -09,9 dlaczego nie wygasza zera? i minus nie przeskakuje na drugą cyfrę? moje próby modyfikacji softu zawiodły.

Portret użytkownika mirley

Re: Termometr

Jasne że nie wygasza bo się pomyliłem... zmień w tym fragmencie:

Wysw1000 = 255
   If Wysw100 = 0 Then   '<<<<<<<<<<<<<<<<<<<<<tu zmień
     Wysw100 = 255                         'wygaszenie zera wiodšcego
     if Minus = 1 then Wysw100.6 = 0
   else
     if Minus = 1 then Wysw1000.6 = 0
   end if

Zamiast "If Wysw100 = 0 Then" wpisz "If Wysw100 = 192 Then". Przeoczyłem fakt że przecież zamieniam zmienną Wysw100 z zakresu 0-9 na kod wyświetlacza pare linijek wyżej za pomocą Lookup i zero to właśnie 192

-

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 BIGjack

Czy mógłbyś trochę jaśniej

Czy mógłbyś trochę jaśniej opisać

jak zamieniłeś tą zmiennna?

Quote:
zamieniam zmienną Wysw100 z zakresu 0-9 na kod wyświetlacza pare linijek wyżej za pomocą Lookup i zero to właśnie 192

ps. działa super.

Portret użytkownika mirley

Re: Termometr

Na samym dole programu jest tabela przeliczeniowa:

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

Za pomocą polecenia:

Wysw100 = Lookup(wysw100 , Tabela)

Zmienna Wysw100 mająca na początku nadpisuje się wartością z tabelki. To znaczy jeśli wysw100 ma wartość 0 to po poleceniu lookup przyjmie wartość zerowej komórki tabelki czyli 192, jeśli np wysw100 równa się 9 to zostanie wpisana wartość z tabeli na pozycji 9 czyli 144

Te kody to przeliczone na reprezentacje dziesiętna wartości na porcie które zaświecają konkretne segmenty. Kody zależą od podłączenia segmentów wyświetlacza 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 BIGjack

Termometr

Bardzo dziękuję, już wszystko jasne, pozdrawiam
BIGjack
ps. W planach widziałem frezarkę CNC kiedy start? Ja mam juz prawie ukończoną mechanikę małej frezareczki i zastanawiam się nad sterowaniem i napędem.

Portret użytkownika BIGjack

Próbuje dostosować Twój soft

Próbuje dostosować Twój soft z termorególatorem i napotykam na; Dziwny objaw; jak wstawię cokolwiek w pętlę główną do-loop np. jakis warunek to na wyświetlaczu pozostają wartości początkowe i tak sobie świecą w nieskończoność, DLACZEGO????

Portret użytkownika mirley

Re: Termostat

Jakie warunki dopisujesz w pętli głównej... zauważ że u mnie nie ma w pętli głównej nic co działa cały czas.. procedury wykonują się w ściśle określonych odstępach czasu po ustawieniu zmiennych bitowych, tak zwanych "flag" w przerwaniach ? napisz co dodałeś i gdzie

-

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 Piotr

Przewód do DS18B20

Witam !!!

Czy długość przewodu łączącego DS18B20 z płytką układu w jakiś sposób wpływa na dokładność wskazań.
Lub inaczej jaki długi maksymalnie może być ten przewód.
Dzięki za odpowiedź !!!.

---

To znowu ja.

Przeczytałem kilka postów wyżej gdzie dyskutujecie nad wygaszaniem pierwszego zera przy wskazaniach np -09,9 stopnia. MIRLEY czy możesz dołożyć do załączników te poprawione programy. Ja nie mam jak tego przerobić, zwykły brak wiedzy w tym temacie.
DZIĘKI !!!

Portret użytkownika mirley

Re: Ds18B20

DS18B20 jest czujnikiem cyfrowym, cały pomiar temperatury odbywa się w jego wnętrzu a to co odczytuje procesor to liczba określająca wynik temperatury. Długość przewodu nie wpływa w żadnym stopniu na pomiar ale może spowodować błędny odczyt temperatury. Objawi się to bzdurami na wyświetlaczu typu -10 stopni w lecie lub napisem Err. Nie wiem jaki jest maksymalny zasięg 1-wire ale tak 20-30m nie będzie problemem. Obowiązkowo podłącz czujnik w konfiguracji trójprzewodowej z podłączonym zasilaniem.

Co do modyfikacji programu to nie ma żadnych kodów źródłowych, wszystko napisałem bezpośrednio na stronie. Wystarczy że ściągniesz program termometru (dla ATTINY2313) po czym zamienisz fragmenty kodu na te które napisałem wyżej w postach. Chodzi tu o zamianę istniejącej procedury Przelicz i wyświetl na ta z wpisów wyżej

-

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 Kamil

Witam Czy mógłbym prosić o

Witam

Czy mógłbym prosić o płytkę wraz ze złączem programującym ATtiny (nie musi być KANDA)? Z góry dziękuję... A no i Szczęśliwego Nowego Roku życzę ;)

-

Są ludzie i parapety, ale żeby klamką się urodzić to jest sztuka.

Portret użytkownika mirley

Re: Złacze Termometr

Narazie nie jestem wstanie nic dodawać do płytek, więc musisz po prostu dolutować przewody od spodu... tak na marginesie to złącze dodatkowo zwiększy rozmiary płytki, która i tak nie jest mał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.

Portret użytkownika Norcio

Wyświetlacz

Witam mam pytanie wykonałem termometr i uzyć chciałem wyświetlacza innego niż ten co został użyty w projekcie gdyż nie mogłem takiego znaleźć mój ma symbol AT-05636BMR-B RoHS i jak złożyłem wszystko do kupy i jak podałem zasilanie to nić się nie zaświeciło jest on martwy.Mikro-kontroler (ATTiny2313)programowałem przy użyciu programatora z Twojej strony i wszystko jest ok.Ale jak sprawdzam czy poszczególne segmenty się zaświecają zwierając w podstawce nóżki P3.0, P3.1 i P3.2 do masy a następnie wszystkie piny portu P1 do masy to nie zaświecają się wszystkie we wszystkich segmentach.Zaświecają się tylko segmenty w pierwszym.Co może być przyczyną??>Czy ma na to wpływ ten wyświetlacz,jak tak to jak to przerobić żeby działało.Za informacje bardzo będę bardzo wdzięczny i jestem pełen podziwu wiedzy naprawdę podziwiam.
Pozdrawiam Norcio12

Portret użytkownika White

wyświetlacz

Quote:
wykonałem termometr i uzyć chciałem wyświetlacza innego niż ten co został użyty w projekcie gdyż nie mogłem takiego znaleźć mój ma symbol AT-05636BMR-B RoHS i jak złożyłem wszystko do kupy i jak podałem zasilanie to nić się nie zaświeciło jest on martwy.

Podłącz według pinologi wyświetlacza który posiadasz zgodnie z pinologią wyświetlacza który użył Mirley.
Wszystko w tej kwestii.Pobierz datasheeta twojego wyświetlacza i podłącz tak by się zgadzało.

-

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

Portret użytkownika Norcio

Ale wyprowadzenia są takie

Ale wyprowadzenia są takie same jak sprawdzałem w nocie katalogowej a nie działa mi on.Co może być przyczyna.Dziękuje za informacje pozdrawiam norcio12

Portret użytkownika White

Termometr

W tak prostym układzie prawie nie ma co nie działać ale od czegoś trzeba zacząć.
Nigdy nie bądź 100% pewny że wszystkie połączenia są ok- Sprawdź ścieżki i elementy.
Wyjmij z podstawki bo mam nadzieje że go w niej masz uC i sprawdź czy jest zasilanie.Nóżka 10 i 20.
Jeżeli zasilanie jest to coś z połączeniem pomiędzy wyświetlaczem a uC lub sam uC sprawdź czy jest dobrze zaprogramowany ewentualnie przeprogramuj.Sprawdź czy jest poprawny kwarc no i mam nadzieję że Fusebity ustawiłeś.
Napisz co zdziałałeś.

-

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

Portret użytkownika mirley

Re: Wyświetlacz

Masz problem z podłączeniem między wyświetlaczem a procesorem... narazie zostaw procesor w spokoju, wyświetlacz musi swiecić(wszystkie segmenty) jak zwierasz odpowiednie piny. jeśli nie wiesz jak sprawdzić wyświetlacz to poczytaj http://mirley.firlej.org/budowa_ukladow_elektronicznych punkt 7. Może rezystory mają złą wartość i nie wszystkie są jednakowe itp. Lub tranzystory sterujące anodami nie wszystkie są sprawne

-

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 emilo

Termometr

Witam Więc tak udało mi się to odpalić była ścieżka przerwana (choć gołym okiem tego nie był widać dopiero miernikiem doszedłem).Ale powracając do tematu po podłączeniu zasilania na wyświetlaczu pokazuje mi się 0.0 i nic więcej.Myślałem że czujnik temperatury (DS18B20)i wymieniłem go i nadal nic.Co do wartości rezystorów to nie powinny być za duże gdyż mierzyłem je przed montażem.gdzie teraz mogę szukać problemu???Dziękuje za pomoc pozdrawiam

Portret użytkownika sensei

Termometr

Witam,
Moje pytanie brzmi: Czy da się w jakiś prosty sposób dodać obsługę jeszcze jednego czujnika? Zmiana wyświetlanej temp. następowałaby np. po naciśnięciu switcha.
Czy w uC jest wystarczająco dużo pamięci na dodanie takiej procedury?
Pozdrawiam.

-

Trzy najpopularniejsze słowa na świecie:
MADE IN CHINA ;D

Portret użytkownika BIGjack

RE: Termometr

Czy podłączyłeś rezystor 4k7 pomiędzy plus i 1wire czujnika?
Czy w programie w linijce config 1wire podałeś port do którego jest podpięty czujnik w Twoim urządzeniu?

Portret użytkownika mirley

Re: Dodatkowe czujniki

Dorobienie drugiego czujnika jest mozliwe ale trudno jest to zrobić aby wyświetlacz nie migał. Nigdy nie podłączałem więcej niż jednego czujnika jednocześnie multipleksując wyświetlacz. Potrzebna jest prawie całkowita zmiana programu na inny.

Co do problemów z temperaturą, to dodaj rezystor tak jak napisano wyżej

-

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 BIGjack

Re:re:Dodatkowe czujniki

Wydaje mi się że w sytuacji kiedy użyjemy dwóch czujników zamiennie t/j w jednym czasie odczytujemy temp. tylko z jednego czujnika a po naciśnięciu przycisku z drugiego a z pierwszego nie to nie powinno mieć wpływu na multiplexowanie wyświetlaczy. Jeżeli się mylę to proszę mnie sprostować.

Portret użytkownika Piotr

Programowanie ATTINY

Witam !!!

Mam pytanie odnośnie programowania ATTINY [ może to trochę nie w temacie termometru ].
Do programowania używam podstawki programującej http://mirley.firlej.org/podstawka_programujaca
Po zaprogramowaniu ATTINY a dokładniej po ustawieniu FUSE BITÓW procesor przestał się komunikować z komputerem [ umarł ]. Dodam że dobrze się zaprogramował bo termometr śmiga super.
Czy już nie można go przeprogramować na coś innego.
Dzięki za odpowiedź.

Portret użytkownika BIGjack

re: Programowanie Attiny

Prawdopodobnie wyłączyłeś komunikację szeregową. Jeżeli tak to zmienisz wsad tylko programatorem równoległym.

Portret użytkownika Piotr

Przestawiłem tylko CKSEL,

Przestawiłem tylko CKSEL, SUTO i CKDIV8 reszta została na fabrycznych. Które oznaczenie odpowiada za komunikację szeregową i ewentualnie jak je ustawić żeby tej komunikacji nie wyłączyć.

Portret użytkownika BIGjack

Jakiego programu używasz do

Jakiego programu używasz do programowania procka?
Prawdopodobnie ustawiłeś inne taktowanie.
Napisz jaki masz kwarc, i wklej zrzut screen-a z ustawieniami fusse bit.

Portret użytkownika emilo

Termometr

Witam panowie mam taki problem że nadal mi wyświetla 0.0 Wymieniłem dzisiaj tranzystory bo myślałem że ich wina i nadal nici z tego.Gdzie mogę szukać przyczyny??Pozdrawiam

Portret użytkownika BIGjack

Nie piszesz czy dołożyłeś

Nie piszesz czy dołożyłeś rezystor 4k7 do czyjnika.

Portret użytkownika mirley

Re: Pytania

Quote:
Wydaje mi się że w sytuacji kiedy użyjemy dwóch czujników zamiennie t/j w jednym czasie odczytujemy temp. tylko z jednego czujnika a po naciśnięciu przycisku z drugiego a z pierwszego nie to nie powinno mieć wpływu na multiplexowanie

Właśnie tak nie jest... jeden czujnik nie potrzebuje sprawdzania numeru seryjnego a jeśli są dwa podłączone to trzeba do każdego zamiast komendy Skip Rom wysłać cały 8 bajtowy numer seryjny co zajmuje czas i daje jeszcze większe miganie wyświetlacza. Problem da się rozwiązać na drodze programowej odpowiednio sterując wysyłaniem danych ale narazie tego nie pisalem

Quote:
Prawdopodobnie wyłączyłeś komunikację szeregową. Jeżeli tak to zmienisz wsad tylko programatorem równoległym.

Programując szeregowo nie da się wyłączyc możliwości programowania szeregowego (Jest to bit SPIEN, SPI Enable), a przynajmniej nigdy mi sie tego nie udało zrobić mimo tego że chciałem specjalnie to sprawdzić

-

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 emilo

Rezystor

Wiec tak dałem rezystor równolegle 1k2 (tj.miedzy 1wire a gnd)i mierzy teraz ale jak dam 4k7 to nie tylko kreski się pokazują i nie wiem jaki on jest dokładny i czy pomiar jest teraz wiarygodny.Chyba że źle podłączam ten rezystor bo może ma być szeregowo z 1wire.Prosił bym o podpowiedz pozdrawiam dzięki za informacje