(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 2x 33pF 1x Rezonator Kwarcowy 12MHz 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:
|
|||
termometr
Mam ten sam problem.Z czujnikiem lub bez wyświetlacz pokazuje [---] .mam rezystor 4,7k dolutowany do nóżki sygnałowej ds18b20 i plusa zasilania. Nie mam pojęcia co może być nie tak, źle zaprogramowany procesor?
Termometr
Czujnik jest podłączony i rezystor podciągający również jest. Jeśli nie będzie czujnika to według opisu powinien pojawić się napis "Err" a takiego nie ma przy odłączonym DS-ie. Niezależnie od tego czy jest czy go nie ma migają tylko kreski na przemian.
Re: Termometr
A co pokazuje jak nie ma czujnika w ogóle..... powinno pokazać dokładnie to samo. Coś jest nie tak z podłączeniem czujnika albo samym czujnikiem. Gdyby był problem z zaprogramowaniem to by nie wyświetlał nic. Znaki --- wyświetlają się na samym początku a znikną jak pierwszy raz temperatura zostanie odczytana z czujnika. Skoro nie znikają to coś jest z czujnikiem. Poszukaj zwarcia, wymień ds na nowego i sprawdź ten rezystor i napięcie na czujniku
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.
działa!!
wszystko jasne:)
odwrotnie przylutowany ds18b2. Virus przelutuj czujnik i daj znać czy działa
Mirley dzięki za pomoc.
Pozdrawiam
Działa - ale !?
Panowie - czujnik sprawdzony po raz n-ty czy jest właściwie podłączony i jest Ok! Niestety niezależnie jak bym go podłączał to i tak na wyświetlaczu migają tylko środkowe kreski. Postanowiłem wyjąć z zupełnie innego układu mikrokontroler AT89C2051 i sprawdzić jak on będzie się zachowywał w termometrze. Zaprogramowałem i podłączyłem tylko kondensator resetujący. Tych przy kwarcu nie wymieniałem na 33pF bo nie mam akurat. Układ ruszył ale pokazał "Err" więc pierwsza myśl a jednak walnięty DS. Nówka ze sklepu nie lutowana bo wyjścia pod zasilanie i czujnik mam na listwie ze śrubkami. Jednak przypomniałem sobie że na elektrodzie dość często czytałem o rezystorze 3,3k jako podciągnięcie ( oczywiście dużo osób używa 4,7k ) Zamieniłem więc rezystor i ..... pokazała mi się temperatura! Układ termometru w tej chwili działa prawidłowo ( nie mam zwykłego termometru aby sprawdzić temperaturę ) ale tylko na AT89C2051. Jak wstawię Attiny2313 to dalej tylko migają kreseczki. Dziwna sprawa no ale cóż mam zrobić. Jedynie coś przekaźnik mi nie załącza tylko nie wiem czy powinno poniżej ustawionej czy powyżej ustawionej go włączać?
Termometr - Klimatyzator
Mam wielką prośbę o pomoc w przerobieniu sterowania przekaźnikiem. Chciałbym wykorzystać termometr do sterowania klimatyzatorem domowym ale nie daje sobie rady z przeróbką programu. Przykładowo ustawiam temperaturę 20 stopni i histerezę 2 stopnie więc termometr włącza klimę aż do uzyskania 18stopni i włącza ja ponownie dopiero po przekroczeniu 20 stopni. Kombinuje od kilku godzin ale coś nie daje sobie rady z bascomem. Pewnie to drobnostka dla niektórych ale mnie ciągle kompilator wywala jakieś błędy. Za pomoc z góry dziękuję.
Re: Termometr
Kod do termostatu jest przecież w załącznikach.... sprawdzałeś czy 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.
Re: Termostat
Jeśli chodzi o kod to w Twoim termostacie jest podgrzewanie a mnie chodziło o chłodzenie i rozwiązanie okazało się banalnie proste. Drobna przeróbka i działa jak powinno:
Układ jest już zmontowany i od dzisiaj zaczął swoją pracę. Teraz zobaczymy jak będzie się sprawował. Bardzo dziękuję za wszelką pomoc.
Złącze GP1
Witam
jak odwrócić stan na wyjściu Gp1?
Re: Termometr
W linijce "P3.7 = Not Minus" wywalić słówko "Not"
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.
Attiny2313
Wstyd się przyznać ale w końcu wiem dlaczego mój termometr nie chciał działać na Attiny2313. Używam programatora pożyczonego z pracy UniProg48 podłączonego pod lpt. Nie znam go zbyt dobrze i okazało się, że ustawiłem fusebity ale nie zaznaczyłem odpowiedniego okienka. Podczas programowania wczytywał program ale nie ustawiał fusebitów i Attina ciągle była na ustawieniach domyślnych. Programowałem układ do zupełnie innych zadań gdzie dużo poleceń jest opartych na timerach. Po uruchomieniu nie zgadzały mi się czasy i dopiero po przeliczeniach wyszło, że układ pracuje na parametrach jak z fabryki.
znak minusa
czemu jak temperatura na + to znak minusa(u mnie dioda) się świeci a jak temp - to nie świeci?
Re: Dioda
A jak podłączyłeś tą diodę? Dioda powinna być anodą do +5V i przez rezystor katodą do portu procka
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.
Zapamiętywanie ustawień
Już ze dwa tygodnie mija jak mam zamontowany termoregulator w aucie. Jak wcześniej wspomniałem wstawiłem układ AT89C2051 ale chcę zmienić na Attiny2313 ponieważ posiada on pamięć eeprom. Chciałbym aby ustawienia które dokonam zostały wpisane do tej pamięci aby przy wyłączaniu auta i ponownym włączeniu nie ustawiać parametrów na nowo. Powiem szczerze, że jeśli chodzi o programowanie jestem cienki więc jeśli ktoś zechciałby mnie chociaż nakierować jak to zrobić to byłbym wdzięczny.
Re: Termostat
Do procka zapisujesz poleceniem writeeeprom a czytasz na początku programu readeeprom. Poszukaj informacji o tych poleceniach w helpie do bascoma. Tam wszystko jest opisane.
W miejscu gdzie skończysz ustawienia wykonaj polecenie zapisu do eeprom a na samym początku przed do loop wczytaj dane.
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.
Re: Zapamiętywanie ustawień
Poniżej podaję kod w którym użyłem instrukcji zapisywania i odczytu z pamięci eeprom. Gdybyś rzucił na to okiem czy ma to rację bytu.
Przy okazji to jeszcze jedno pytanie. Jeśli dobrze wyczytałem to istnieje możliwość użycia tej samej końcówki jako wejścia oraz jako wyjścia. Pytanie więc czy rzeczywiście mogę np jedno w wejść jednego z przycisków użyć również jako sterowanie wskazaniem minusa temperatury?
Re: Termostat
Chyba dobrze z tym że musisz zmienić adresy zapisu i odczytu na:
zmienna Tempu jest typu word i zapisanie jest do adresu 1 powoduje defakto zapis do 1 i 2, tak samo z odczytem
Port można konfigurować podczas pracy za pomocą bezpośredniego wpisu do rejestrów ddr ale wciśnięcie przycisków w momencie jak piny są wyjściami spowoduje zwarcie. Trzeba by nad tym pomyśleć trochę ale to nie jest takie proste
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.
Re: Termostat
Dzięki za podpowiedź ze zmianą adresów. W swoim układzie zastosowałem wyświetlacz 4 cyfrowy bo taki miałem w swoich zasobach. Jak już wcześniej wspomniałem termometr jest zamontowany w aucie i dlatego chciałbym aby była możliwość wyświetlania minusa. Przyda się szczególnie zimą. Muszę jeszcze tylko popracować nad przyciskami bo mi teraz brakuje wejść ale już widziałem jak to rozwiązać od strony elektroniki. Troszkę trzeba będzie się na główkować nad kodem ale jest to do zrobienia.
Dwa przysiski na jednym porcie
Ostatnio chciałem wpisywać ustawienia do pamięci EEPROM ale sposób jaki podałem według mnie nie jest właściwy. Rozkaz wpisu jest w pętli głównej a jak wiadomo ilość dokonywania wpisów do pamięci jest ograniczona. Należałoby tak zmienić program aby wpis został dokonany tylko w przypadku zmiany wartości. Jednak teraz mam inne pytanie związane z programem. Używam go do sterowania klimy więc używam wyjścia PD7 do sterowania przekaźnikiem. Dodatkowo chcę sterować wyjściem PD3 do wskazywania minusa. Zostaje mi tylko wejście PD4 do kontroli przycisków. Wiem że można podłączyć przyciski do jednego wejścia separując je diodami a minus do sterowania brać z segmentów wyświetlaczy. W takim przypadku jeśli pojawi się stan niski na PD4 wystarczy sprawdzić który segment jest sterowany i wiadomo jaki przycisk był naciśnięty. Z programowania jestem cienki jednak spróbowałem to jakoś ogarnąć. Poniżej podaję kod z moją propozycją. Proszę o opinie czy to zadziała czy też zmieniać kod.
Re: Zapis
Po pierwsze to zapis dobrze jest zrobić tutaj:
zmieniając na:
Co do działania przycisków to powinno działać tak jak masz o ile dodasz diody katodami do portów procka sterujących anodami wyświetlacza. potem 3 przyciski poprzez te diody do wspólnego pinu procka. Port powinien być ustawiony jako wejście i stan logiczny 1 (wewnętrzny pull up)
Aha... nie może być If Portd.4 = 0 ...... tylko musi być If Pind.4 = 0 ....
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.
Re; Dwa przyciski na jednym porcie
Niestety w realu termometr nie reaguje w ogóle na przyciski. Sprawdzałem czy na pewno diody są prawidłowo podłączone. Mierzyłem miernikiem czy po naciśnięciu dowolnego przycisku pojawia się stan niski ( miernik wskazywał spadek do około 3,7V ale trzeba pamiętać, że zero pojawia się co 16ms więc zwykły miernik tego nie pokaże tylko wartość średnią ) Zmieniałem kod na Twoje wskazówki jak również zmieniałem na swoje jakieś pomysły i niestety ale nic z tego. Jedyną różnicą jaką zaproponowałeś jest to, że ja mam diody podłączone do wyjść sterujących Attiny a nie do anod wyświetlacza. Taki sposób podłączenia znalazłem u gościa w zegarze i myślę, że to bez różnicy skoro jemu to działa. Przy okazji to w kodzie który zaproponowałem jest namieszane wyświetlanie bo jak podłączyłem to nic nie pokazywał dopiero po zmianach ruszył. Teraz mam pytanie - jak na razie nie sprawdzę minusa bo za ciepło ale na wyświetlaczu który będzie go wskazywał mam cały czas lekko podświetlone cyfry ( tak jakby cały czas było 8 ale bardziej widoczna jest cyfra taka jak na pierwszym wyświetlaczu ) Jak się tego pozbyć ? Przy okazji to anodę tego segmentu mam podłączoną bezpośrednio do Attiny nie jak w pozostałych segmentach przez tranzystor.
Re; Dwa przyciski na jednym porcie
Po długiej przerwie wrócę do tematu. Wszystkie zmiany które chciałem wprowadzić w programie nie były możliwe do zrealizowania w bascomie. Po dopisaniu wszystkiego okazywało się, że program jest za długi. Postanowiłem go przerobić na asemblera i uprościć pewne procedury. Teraz wszystko śmiga jak należy i zmieściło się do Attiny. Jeśli chodzi o to podświetlanie na czwartym wyświetlaczu który miał tylko wyświetlać minus okazało się, że skoro nie dałem tranzystora sterującego to trzeba sterować plusem a nie minusem. Po dokonaniu tej zmiany wyświetlacz jest pusty a dopiero jak temperatura schodzi poniżej zera ( użyłem zmrażacza ) ukazuje się tylko minus. Projekt został zakończony pomyślnie i można rozglądać się za nowym.
Zasilanie z linii danych
Witam, nie mogę nigdzie doczytać czy próbował ktoś podłączać czujnik do układu przez zasilanie pasożytnicze? Nie ma żadnych dziwnych zachowań układu?
Zasilanie pasożytnice
Witam! jak zachowuje się układ przy zasilaniu pobieranym z linii danych? sprawdzał ktoś? mam 3 czujniki ds w metalowych obudowach które są już zalane żywicą i troszkę mnie kosztowały, więc nie chcę robić czegoś co mi nie będzie działało :/
Re: Czujniki Ds18b20
A czemu miały by nie działać.... w ostateczności zwiększysz w programie czas między odczytami bo na zasilaniu 2 przewodowym będzie on dłużej mierzył. Sprawdź podłączając jakiś czujnik na 3 przewodach a potem inny na 2 przewodach
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.
Ok, dzięki ale wolałem się
Ok, dzięki ale wolałem się upewnić bo jeden czujnik kosztował mnie ok 40zł (tokarz, czujnik i czujnik temp. od opla - dla wtyczki) a wszystko już jest zalane żywicą więc nie rozebrał bym tego :)
wyświetlacz
Witam!
Wyświetlacz jaki ma być zastosowany to ze wspólną katodą czy anodą?
Pozdrawiam!
Re: Termometr
Wspólna anoda... ze schematu przecież to widać
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.
pytanko
Witam jak widze moje wpisy sie posypały . Więc powtarzam pytanko ..czy termostat działa na attiny2313 bo wgrałem tą wersje i nic :(
Wyświetlacz
Witam!
Mam mały problem z wyświetlaczem led :( ponieważ mój wyświetlacz jest 4-pozycyjne ze wspólną anodą ale ma aż 14 wyprowadzeń anie 12 jak jest w projekcie. Niestety zasugerowałem się PDF'em :
http://sklep.avt.pl/p/pl/47225/wyswietlacz+zielony+4+cyfry+14-2mm+wa.html
http://sklep.avt.pl/photo/_pdf/TOF5462.pdf
gdzie jest tylko 6 wyprowadzeń.
Czy istnieje jakiś sposób podłączenia tego wyświetlacza? czy trzeba projektować płytkę od początku ?
Z góry dziękuję za odpowiedź!
Pozdrawiam!
Hej wydaje mi sie ze bez
Hej wydaje mi sie ze bez problemu podłaczysz ten wyswietlacz porównaj piny wyswietlacza i podłacz na tasmie tak jak ja zrobilem wyprowadzenie 12 wyswietlacza u ciebie bedzie wyprowadzeniem 11 ,9-10, 6-8 to wyprowadzenia anod wyswietlacza a zreszta tak samo zrób
Wyświetlacz
Porównałem wyprowadzenie i nóżki na moim wyświetlaczu o numerze 8 i 7 są niepotrzebne prawda? ponieważ są one odpowiedzialne za dwie środkowe kropki.
Tylko mam ostatni problem hehe która nóżka to pierwsza nóżka ? W jaki sposób je liczyć? :)
Jakoś to podłączyłem ale nie do końca wszystko się zgadza bo podłączyłem 11 pinów czyli jeden segment z pinem 6 nie świeci.
Zaprogramowałem mikroklocka attiny2313 wybierając opcję kod źródłowy dla attiny2313. Program skompilowałem i ustawiłem fuse bity zgodnie z tym co jest podane wyżej :)
Po podłączeniu zasilania pojawiły się tylko 2 poziome kreski w segmencie pierwszym i trzecim.
Proszę mi powiedzieć gdzie jest błąd? Na pewno trzeba przerobić program tylko do końca nie wiem jak :( chciałbym aby temperatury ujemne poprzedzał znak minus.
Pozdrawiam!
Wprowadziłem poprawki czyli zauważyłem że odwrotnie zamontowałem czujnik DS i teraz na wyświetlaczu pojawia się na pierwszym segmencie cyfra "2" a na trzecim jest odliczanie od cyfry "9" do cyfry "0" i tak bez przerwy. W czym tkwi problem?
Z góry dziękuję za odpowiedź!
Re: Wyśiwetlacz
Prawdopodobnie nie podłączyłeś jednej z anod lub źle podłaczyłeś. Sprawdź najpierw wszystkie segmenty czy świecą. Wyjmij procka z podstawki i weź dwa kawałki drutu. Przeczytaj to punkt 7 na temat wyświetlacza LED i sprawdź podobnie swój
-----
co do termostatu to program jest w załączniku
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.
Wyświetlacz
Z godnie z Twoja radą posprawdzałem wszystkie luty jeszcze raz oraz ścieżki i okazało się że miałem jedno zwarcie. Po usunięciu problemu wszystko działa bardzo ładnie ale nie do końca.
Z godnie z pdf'em wyświetlacza:
http://sklep.avt.pl/photo/_pdf/TOF5462.pdf
temperatura pokazywana jest na pozycji DIG1, DIG2, DIG3.
Pozostał mi jeszcze jeden wolny pin w procesorze czyli mogę go podłączyć za pomocą tranzystora i rezystora tak aby DIG4 także uczestniczył w wyświetlaniu temperatury? Ponieważ chce to całe wyświetlenie przesunąć a segment DIG1 służył by tylko za wyświetlanie znaku ujemnego.
Prawdopodobnie to kwestia zmiany programu gdzie problem był już wspominany w poście numer: #15 na stronie 4 tego tematu ale proszę o wyjaśnienie jak dokładnie podłączyć ostatnią pozycję wyświetlacza?
Pozdrawiam!
Re: Termometr
Dokładnie tak samo masz podłączyć za pomocą tranzystora jak inne segmenty. W programie trzeba tylko zmienić kilka linijek w procedurze wyświetlania, wprowadzić tam dodatkowego case, który włącza ostatni tranzystor i wyświetla na nim znak -
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.
program
Napisałem taki program lub inaczej mówiąc przerobiłem Twój program :) Czy teraz jest dobrze i odpowiednio będzie wyświetlana temperatura? Znak minus ma być wyświetlany na pierwszym od lewej segmencie czyli DIG1.
Dzięki za pomoc!
Pozdrawiam!
P.S.
Dopiero teraz miałem możliwość sprawdzenia programu i niestety się nie chce skompilować :( Gdzie jest błąd?
Re: Program
A jaki jest komunikat i w której linii??
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.
program
Program zmieniłem dodałem zmienną Wysw1000
ale jeszcze chciałbym aby temperatura była wyświetlana na pierwszej drugiej i trzeciej pozycji (licząc od prawej) co muszę pozmieniać ?
Z góry dzięki :)
już wiem gdzie był błąd :) wszystko działa wyśmienicie :)
P.S.
Chciałbym się dowiedzieć jaki jest pobór prądu takiego wyświetlacza 7-segmentowego??
Czasy ?
Witam !
Chciałbym się dowiedzieć coś na temat tego fragmentu kodu:
Nie mogę się doliczyć skąd się biorą 4ms a co za tym idzie 1sekunda ?
Po obliczeniach wychodzą mi 3mili sekundy.
Bardzo proszę o wyjaśnienie.
Pozdrawiam. Stefan
Re: termometr
Pobór prądu to 8*(5V-2V)/330 [A]= 73mA, tyle co jeden wyświetlacz pojedynczy bo praca jest multipleksowana. Przerwanie policzone jest dla kwarca 12MHz, mowa tutaj o programie dla tiny2313. 12MHz, dzielone jest przez 64 i jeszcze przez 250 w timerze. W zasadzie jak teraz patrzę to powinno być Timer0 = 6 a nie 5. Daje to częstotliwość przerwań 750Hz, potem jeszcze zmienna liczy do 3 uzyskując 250Hz czyli 4ms. Reszta podziałów jest zmiennymi, do 25 liczenie daje 100ms a potem do 7 daje defakto 700ms, nazwa 1s została z wcześniejszej wersji
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.
Wygaszanie
Dziękuję Ci bardzo za odpowiedź :)
Mam jeszcze jedno pytanie dotyczące tego termometru. Chciałbym się doradzić jak rozwiązać problem wygaszania wyświetlacza. Ponieważ to urządzenie będzie działać na zasadzie gdy ktoś do niego podejdzie to powinno pokazać temperaturę i tutaj moje pytanie czy nie uszkodzi to w jakimś stopniu urządzenia jak nie będzie pracować ciągle tylko raz pojawi się zasilanie a po 15 minutach zniknie i tak z jakąś częstotliwością? Czy może lepiej zrobić tak że termometr non stop pracuje a jest wygaszany sam wyświetlacz??
Które rozwiązanie lepsze?
Mam nadzieję że zrozumiale to opisałem :)
Re: Termometr
Nie ma to znaczenia z punktu widzenia uszkodzenia układu, jednak pamiętaj że po włączeniu zasilania pomiar temperatury zawsze trochę trwa. Więc jak po kliknięciu chciałbyś od razu wynik uzyskać to termometr musi pracować cały czas.
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.
Witam. Czy mógłbyś wstawić
Witam. Czy mógłbyś wstawić program pod Attiny2313 do wersji z termostatem?
Pozdrawiam
Re: Termometr
Przecież jest takowy w załącznikach.... innych programów nie posiadam
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.
W załącznikach z programów
W załącznikach z programów jest taki > Program po kompilacji (HEX) (dla ATTiny2313, Bascom AVR) (tylko nie wiem czy jest to wersja z termostatem).
Re: Termostat
To jest wersja zwykła... ściągnij sobie kod źródłowy z termostatem, otwórz i skompiluj 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.
Witam zbudowałem ten
Witam zbudowałem ten termometr i po uruchomieniu pojwiły mi się 3 kreski na wyświetlaczu.Po przestawieniu fusebitow dalej to samo a teraz źle zaznaczyłem i ustawiłem procek na 128Khz i programator mi nie widzi procesora. Programatora używam uspasp pomóżcie rozwiązać ten problem
Re: Fusy
Teraz nic nie zrobisz poza dołaczeniem tych 125kHz do procka. Jak świecą się kreski na wyświetlaczu to trzeba sprawdzić czy czujnik jest dobrze podłączony i czy nie brakuje mu rezystora zewnętrznego 4,7k
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.
zmiana kodu
Witam.
Jak i gdzie trzeba zmienić kod aby wyświetlanie było na 3 wyświetlaczach i na płytkę taką ja w pierwszym projekcie, może mi to ktoś to wytłumaczyć?
*************************************
Sub Pobr_znaku(cyfra As Byte) 'pobiera znak
If Cyfra < 10 Then
Portb = Lookup(cyfra , Liczba)
Else
Portb = 127 'w przeciwnym razie wygas wyswietlacz
End If
End Sub
'*************************************
Wyswietlacz:
Load Timer0 , 125
Set Portd.0
Set Portd.1
Set Portd.2
Set Portd.3
Select Case Nr_wys
Case 3:
Call Pobr_znaku(a)
Reset Portd.3 'dziesiatki
Nr_wys = 0
Case 2:
Call Pobr_znaku(b)
Reset Portd.2 'jednosci
Nr_wys = 3
Case 1:
Portb = 28
Reset Portd.1
Nr_wys = 2
Case 0:
Portb = 70
Reset Portd.0
Nr_wys = 1
End Select
Flaga = 1
Return
Liczba:
Data 64 , 121 , 36 , 48 , 25 , 18 , 2 , 120 , 0 , 16
' znak: 0 1 2 3 4 5 6 7 8 9
Re: Termometr
Co to ma wspólnego z termometrem wyżej? Pytania nie związane z artykułami mają być an forum
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.