logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Bardzo prosty termometr na ATMedze

ghost666 27 Sty 2017 20:16 15015 21
  • Bardzo prosty termometr na ATMedze
    Poniższy opis prezentuje jak, krok po kroku, skonstruować prosty termometr oparty na mikrokontrolerze. Układ ten mierzy i wyświetla temperaturę powietrza. Nie jest to może najdokładniejszy termometr świata, ale jest dobrym projektem który zrealizować można w domu ucząc się jednocześnie np. programowania.


    Krok 1: Potrzebne elementy

    Do skonstruowania układu potrzebne będą:

    1 x Mikrokontroler ATMega8
    2 x wyświetlacz siedmiosegmentoiwy LED
    1 x opornik 1800 Ω
    7 x opornik 160 Ω
    1 x termometr KTY-13-5

    Krok 2: Układ

    Bardzo prosty termometr na ATMedze


    Autor starał się, aby układ był możliwie prosty, ale też nie wymagał napisania skomplikowanego programu. Schemat termometra widać na rysunku powyżej. Projekt płytki drukowanej w pliku Eagla znaleźć można tutaj.

    Krok 3: Program

    Jeśli używamy innego termometru w układzie lub innych oporników musimy zmienić ich wartości zapisane w programie i wykorzystywane do obliczania temperatury.

    Poniżej znajduje się kod programu - temp_sensor.c:

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Krok 4: Wykorzystanie

    Bardzo prosty termometr na ATMedze


    Po skompilowaniu powyższego programu należy wgrać go do pamięci mikrokontrolera i już można z niego korzystać. Jakie zastosowanie może mieć tego rodzaju termometr? Można z jego pomocą mierzyć temperaturę np. wewnątrz obudowy komputera PC, wystarczy wstawić w obudowie okienko z pleksi, aby widoczne były liczny wyświetlane przez układ. Można mierzyć nim także temperaturę w pokoju, szklarni itp.

    Źródło: http://www.instructables.com/id/DIY-Digital-Thermometer/?ALLSTEPS

    Fajne? Ranking DIY
    O autorze
    ghost666
    Tłumacz Redaktor
    Offline 
    Fizyk z wykształcenia. Po zrobieniu doktoratu i dwóch latach pracy na uczelni, przeszedł do sektora prywatnego, gdzie zajmuje się projektowaniem urządzeń elektronicznych i programowaniem. Od 2003 roku na forum Elektroda.pl, od 2008 roku członek zespołu redakcyjnego.
    https://twitter.com/Moonstreet_Labs
    ghost666 napisał 11960 postów o ocenie 10197, pomógł 157 razy. Mieszka w mieście Warszawa. Jest z nami od 2003 roku.
  • #2 16234127
    anonimg3
    Poziom 10  
    Taki projekt ląduje na głównej? Elektrodo quo vadis ? Przecież tutaj powinien pojawić się tytuł jak NIE należy robić prostego termometru. Brak żadnego filtrowania napięcia, brak rezystora podciągającego pin reset, brak dławika mimo, że jest wykorzystywany przetwornik ADC. Jednym słowem masakra. Jeszcze takie coś pojawia się na facebooku z waszego profilu.
  • #3 16234410
    Aroni525
    Poziom 9  
    No przyznam rację przedmówcy. Termometr niby prosty, ale ten projekt aż razi. Naprawdę dorzucenie tutaj paru kondensatorów, rezystorów, dławika, może jakiegoś źródła prądowego dla czujnika by go specjalnie nie skomplikowało, a projekt byłby bardziej profesjonalny.

    No może i będzie to działać, choć może okazać się, że nie u każdego.
  • #4 16235098
    Konto nie istnieje
    Konto nie istnieje  
  • #5 16235176
    tronics
    Poziom 38  
    R-MIK napisał:
    goreckidiy napisał:
    (...)płytkę mającą same otwory - można przerabiać projekt i dodawać nowe połączenia.

    To sprzętowa FPG'a :-)
    Nie wiem czemu bardzo dużo projektów powstaje na Atmega8 zamiast na Atmega88. Jest dużo lepszy i przeważnie tańszy, o debugowaniu nie wspomnę.

    Debugowanie debugwire to nie jest ani proste, ani tanie. Nie wiem gdzie kolega widział mega88 taniej niż mega8 - te drugie chińczycy albo dobrze podrabiają, albo sprzedają jakieś "defective" natomiast kupowałem dawno temu po 3PLN z marżami (gdy mega88 tqfp była 2x drożej) i wszystkie działały ok. Jedna zaleta 88mki - wbudowany termometr :) tylko trzeba się przełączyć na wewnętrzne źródło iirc. Druga - 4MHz więcej max taktowanie. Inna sprawa, że w tej aplikacji MCU będzie się jednak grzał więc wbudowany termometr na niewiele się przyda.
    Ogółem przedstawiona przez kolegów lista zarzutów długa, ale średnio poważna przy małym prostym projekciku.
  • #6 16235519
    Konto nie istnieje
    Konto nie istnieje  
  • #7 16236073
    mkpl
    Poziom 37  
    Schemat uproszczony do granic ale to się da naprawić programowo!.


    Pin reset ma wewnętrzny pullup ~40k tak więc do środowiska bez większych zakłóceń może pracować. Tak samo jest w przypadku wykorzystania resetu jako pin IO.

    Podciągnięcie jest istotne w środowisku gdzie panują duże zakłócenia.

    Zasilanie uP powinno być odfiltrowane by zniwelować indukcyjności połączeń. Głównie ze względu na spadki napięć orac emisję zakłóceń.

    Jeśli zasilanie przetwornika nie jest krytyczne gdy ref też jest dołączony do Avcc i jeśli sygnał pomiarowy też jest odniesiony do tego napięcia. Upadek napięcia będzie tak samo oddziaływał na zasilanie przetwornika, ref i sygnał mierzony a więc się skompensuje (kto jest przeciw niech wyprowadzi wzory i przeliczy).

    Filtrowanie zakłóceń samego przetwornika da się wykonać jako średnią kroczącą np z 256 próbek.

    Sam wykonałem podobny układ na attiny2313 i działa bezproblemowo już któryś rok z rzędu :).
  • #8 16236205
    Konto nie istnieje
    Konto nie istnieje  
  • #9 16236366
    domin122
    Poziom 16  
    Żeby się coś nauczyć programowania przy takim przykładzie to niemożliwe. Żeby chociaż były komentarze w programie i to po Polsku. Skoro umiał przetłumaczyć tekst to i komentarze w programie też mógł.
  • #10 16236385
    Konto nie istnieje
    Konto nie istnieje  
  • #11 16236589
    Konto nie istnieje
    Poziom 1  
  • #13 16236660
    mkpl
    Poziom 37  
    R-MIK napisał:
    mkpl napisał:

    Sam wykonałem podobny układ na attiny2313 i działa bezproblemowo już któryś rok z rzędu :).

    Zrób 10.000 szt i będziesz miał 100 reklamacji, użytkownicy będą reklamować, taka darmowa reklama. To, że działa na stole u autora, nie znaczy , że zadział na innym stole, a skąpienie wzrostu ceny o 1% na elementach to, delikatnie mówiąc, przesada.
    Kolega daje kondensatory przy oscylatorze tak jak w nocie napisali czy nie?


    Trochę tego zrobiłem. Rezystor od resetu oczywiście też mam. Czujnik też nieco inny bo DS18B20 i na około 50 powstałych sztuk działają wszystkie. Układ zasilany z baterii 9V wystarcza spokojnie na pół roku (zima zabija baterie). Sam układ aktywowany jednym przyciskiem robi pomiar, wyświetla przez 10s i odcina się całkowicie od baterii.

    Ja po prostu ratowałem konstrukcję w obecnym układzie. Pomijam już kwestię, że główne piny zasilające wyświetlacz powinny być obciążone max 25mA więc 3.5mA na segment.
  • #14 16236700
    DziadzioMiecio
    Poziom 27  
    Bardzo dobrze że ten projekt tu się znalazł. Można sporo się nauczyć, dzięki komentarzom. Szkoda tylko że wylana krytyka nie zaowocowała schematami poprawek układu z opisem, dlaczego tak? Co do kodu się nie wypowiem.
  • #15 16236736
    Konto nie istnieje
    Konto nie istnieje  
  • #16 16236753
    Konto nie istnieje
    Poziom 1  
  • #17 16236770
    DziadzioMiecio
    Poziom 27  
    Ja się z tą krytyką zgadzam . Wychodzę z założenia że to nie polityka (wystarczy krytykować bez podania rozwiązań) i jakieś schematy co zrobić żeby to poprawić. Ja sobie poradzę ale wielu początkujących jak słusznie zauważyłeś nie .
  • #18 16237911
    domin122
    Poziom 16  
    drobok napisał:
    Totalna głupota, rozumiem gdyby rozmiar miał znaczenie - czyt. attiny13 smd, 2wyświetlacze, czujnik i pcb wielkości wyświetlaczy - olewamy dokładność kosztem rozmiaru. Ale, bierzesz przerośniętego proca po to by większość pinów zostawiać wolnych. Ani to dokładne, ani kompaktowe, ani nawet niezawodne - a redaktor "tłumaczy" jakże skomplikowany projekt którego alternatywy są lepsze tutaj :P

    PS. kto tu widzi skomplikowany kod ?


    Jest napisane że kod jest dobrym do nauki, a skoro tak to powinien być dobrze opisany. Dla Ciebie może nie jest skomplikowany, ale dla tych co umieją zapalać tylko diody led to na pewno jest skomplikowany. Opis bibliotek też by się przydał, albo przynajmniej jednej.
    Co to jest "//Prikazi drgo stevilko" albo to "//prepreci premocno gorjenje druge"?
  • #19 16238244
    mariano79
    Poziom 11  
    Liczy sie checi zrobienia czegoś samemu, popieram kolego ghost666. Pozdrawiam
  • #20 16238276
    Konto nie istnieje
    Poziom 1  
  • #21 16238812
    Slawek K.
    Poziom 35  
    mariano79 napisał:
    Liczy sie checi zrobienia czegoś samemu, popieram kolego ghost666. Pozdrawiam

    Przecież to jest przekopiowany opis z instructables, kolega tego nie zrobił.

    Pozdr
  • #22 16240151
    mkpl
    Poziom 37  
    drobok napisał:
    mkpl napisał:
    ...

    Twój czujnik jest cyfrowy - więc nie masz adc i poprawne zasilanie, czy porządne napięcie odniesienia cię nie interesuje. Wyświetlacz działa chwilę - więc i nie przeciążasz zanadto tranzystorów (chociaż nie neguję że da się te wyświetlacze podłączyć w ten sposób na stałe, tyle że nie każde). Dodając podciąganie pinu rst twój układ jakoś dziwnym trafem staje się zgodny z zasadami*. No może poza kondensatorem odsprzęgajacym (który pewnie też masz, albo siejesz zakłócenia).


    Co do resetu to zobacz sobie jak jest fizycznie zbudowany w procesorze. Z tego co pamiętam to w trybie portu jest tam wystawiany tranzystorem stan niski a stan wysoki powstaje przez podciągnięcie wewnętrznym rezystorem, który jest tym samym rezystorem co dla funkcji RESET. Można tam oczywiście dołączyć też kondensator do masy i zrobić opóźnienie startu.


    Kondensator na zasilaniu to obligatoryjnie trzeba zastosować i o tym też pisałem.


    Sam przetwornik ADC też będzie poprawnie pracować. Wraz z zmianami zasilania zmienia się też Vref tak wiec w w/w układzie przetwornik tak w zasadzie bada dzielnik. Gdyby było mierzone zewnętrzne napięcie to wtedy jest to błąd kardynalny.

    Pomiaru za pomocą NTC nie stosuję bo termistory są zwyczajnie ciężko dostępne. Mnogość typów i charakterystyk mnie zwyczajnie odrzuca (trzeba kupować dokładnie jeden wybrany i przebadany typ). Do celów masowych oczywiście bym je stosował ale dla celów prywatnych mogę się szarpnąć na DS18B20 i jest ok.
REKLAMA