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

Pierwszy projekt na Atmega - Termometr,Zegarek,Woltomierz

vigorado89 24 Kwi 2013 10:54 10674 47
Najlepsze odpowiedzi

Jak zacząć budowę prostego termometru na ATmedze z dwoma czujnikami temperatury?

Na początek zbuduj prosty termometr na czujniku DS18B20 i oprzyj cały projekt na notach katalogowych mikrokontrolera oraz czujnika, bo tam masz dokładne podłączenie i obsługę [#12233796] DS1820 nie jest tym samym układem co DS18B20 — starszy DS1820 ma 9-bitową rozdzielczość, a DS18B20 9–12 bit [#12242840] Przy DS18B20 pamiętaj o zewnętrznym rezystorze podciągającym 4,7 kΩ na linii danych, a przy samej ATmedze o poprawnym zasilaniu i filtracji zgodnie z dokumentacją [#12249915][#14144981] Jeśli później chcesz dodać pomiar napięcia, użyj dzielnika napięcia, bo wejście ADC nie może dostać więcej niż 5 V [#14169902]
Wygenerowane przez model językowy.
  • #1 12233732
    vigorado89
    Poziom 16  
    Posty: 377
    Pomógł: 6
    Ocena: 2
    Witam, chciałbym sam na atmedze złożyć termometr i zaprogramować. Wcześniej trochę się bawiłem Arduino a niestety zaprogramować sama Atmege ciężko mi sie samemu nauczyć (chyba ze polecicie mi jakieś genialne książki to chętnie się w nie zaopatrzę.). Chodziłem na praktyki związane z konstruowaniem systemów wbudowanych ale praktyki się skończyły a ja się nauczyłem lutować i testować złożone układy.

    Chciałbym skonstruować termometr z dwoma czujnikami, od czego miałbym zacząć ?
  • #3 12233786
    vigorado89
    Poziom 16  
    Posty: 377
    Pomógł: 6
    Ocena: 2
    Znam ten temat, w wiele rzeczy z tej listy jestem już zaopatrzony. Jak również C i C++ znam. Po południu skonstruuje schemat oraz model w fritzing. Myślę ze zacznę to składać na płytce prototypowej.
  • #4 12233796
    Dople
    Poziom 19  
    Posty: 291
    Pomógł: 29
    Ocena: 20
    Tu nie chodzi o listę, ale o cały portal (serwis, blog, stronę?).

    Skoro znasz język, masz elementy to czego Ci jeszcze brakuje? Jeżeli nie odpowiada Ci wspomniany DS18B20 poszukaj innego czujnika temperatury (w sumie DS18B20 sam w sobie jest termometrem wg dokumentacji) i poczytaj noty katalogowe i - jeżeli są - jakieś artykuły.
  • #5 12234527
    vigorado89
    Poziom 16  
    Posty: 377
    Pomógł: 6
    Ocena: 2
    Posiadam DS1820 (bez B w środku) czy to to samo ?

    Pytanie czy starczy atmega8 ? Chcialbym dotego podpiac wszystkiego wyswietlacz 16x2

    http://helion.pl/ksiazki/jezyk-c-dla-mikrokon...nsowanych-aplikacji-tomasz-francuz,jcmikr.htm mam ta książkę i szczerze mówiąc uważam ze nie jest ona o podstawach (moze musze sie glebiej wczytac)

    http://helion.pl/ksiazki/avr-i-arm7-programow...awel-borkowski,avrar7.htm?nr=5314.&url=avrar7 zastanawiam się nad tym a nie chce pieniędzy w błoto wyrzucić
  • #6 12234634
    dondu
    VIP Zasłużony dla elektroda
    Posty: 13906
    Pomógł: 1292
    Ocena: 809
    vigorado89 napisał:
    http://helion.pl/ksiazki/avr-i-arm7-programowanie-mikrokontrolerow-dla-kazdego-pawel-borkowski,avrar7.htm?nr=5314.&url=avrar7 zastanawiam się nad tym a nie chce pieniędzy w błoto wyrzucić

    Moją opinię znajdziesz tutaj: http://mikrokontrolery.blogspot.com/2011/03/recenzja-ksiazki-avr-arm-borkowski.html
  • #7 12242686
    vigorado89
    Poziom 16  
    Posty: 377
    Pomógł: 6
    Ocena: 2
    dondu napisał:
    vigorado89 napisał:
    http://helion.pl/ksiazki/avr-i-arm7-programowanie-mikrokontrolerow-dla-kazdego-pawel-borkowski,avrar7.htm?nr=5314.&url=avrar7 zastanawiam się nad tym a nie chce pieniędzy w błoto wyrzucić

    Moją opinię znajdziesz tutaj: http://mikrokontrolery.blogspot.com/2011/03/recenzja-ksiazki-avr-arm-borkowski.html


    Przejrzałem nie tylko Twoja opinie ale również Twój poradnik związany z pierwszymi krokami na Twojej stronie, muszę przyznać ze własnie tego szukałem ;) Na pewno wiecej czasu spedze na Twoim blogu.

    Jednak ponawiam pytanie czy DS1820 to prawie to samo co DS18B20 ?
  • #8 12242840
    Pablo2015
    Poziom 18  
    Posty: 468
    Pomógł: 6
    Ocena: 42
    Witam,
    To nie to samo. Główna różnica, oprócz ceny, to rozdzielczość pomiaru.

    O ile się nie mylę to 1820- rozdzielczość pomiaru 9 bit, natomiast 18b20- rozdzielczość od 9 do 12 bit

    Pozdrawiam Pablo201_5


    Ponadto wszystko znajdziesz w notach katalogowych obu elementów dostępnych w sieci.
  • #9 12244916
    vigorado89
    Poziom 16  
    Posty: 377
    Pomógł: 6
    Ocena: 2
    Zaznajomiłem się już z tym kursem: http://mikrokontrolery.blogspot.com/2011/03/drzaskowy-pamietnik-wstep.html wiele mi rozjaśnił. Ale wciąż mam problem z ds1820, poszukałem na forum ale wszystko jest dla bascoma, a co znalazłem przydatnego to albo widzę wszystkie znaki ASCI na wyświetlaczu albo nic.

    Nie wiem czy jest sens zamieszczać kod i schemat jest bardzo podobny jak na tej stronie: http://mikrokontrolery.blogspot.com/2011/03/adc-prezentacja-wyniku-na-lcd.html

    Kurcze siedze dumam nad tym od 3 godzin i nic :( stoje w martwym punkcie
  • #10 12245626
    dondu
    VIP Zasłużony dla elektroda
    Posty: 13906
    Pomógł: 1292
    Ocena: 809
    vigorado89 napisał:
    Nie wiem czy jest sens zamieszczać kod i schemat jest bardzo podobny ...
    Kurcze siedze dumam nad tym od 3 godzin i nic :( stoje w martwym punkcie

    Jeżeli nie dasz nam materiałów do analizy, to także będziemy tylko dumali :)
    Znany slogan: "Prawie ... robi wielką różnicę ..."
  • #11 12245819
    vigorado89
    Poziom 16  
    Posty: 377
    Pomógł: 6
    Ocena: 2
    dondu napisał:
    vigorado89 napisał:
    Nie wiem czy jest sens zamieszczać kod i schemat jest bardzo podobny ...
    Kurcze siedze dumam nad tym od 3 godzin i nic :( stoje w martwym punkcie

    Jeżeli nie dasz nam materiałów do analizy, to także będziemy tylko dumali :)
    Znany slogan: "Prawie ... robi wielką różnicę ..."


    W sumie święte słowa ;) Z rana wszystko wrzucę.
  • #12 12246702
    vigorado89
    Poziom 16  
    Posty: 377
    Pomógł: 6
    Ocena: 2
    Pierwszy projekt na Atmega - Termometr,Zegarek,Woltomierz

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


    Mam pytanie, niezbyt rozumiem tej inicjacji ADC, w Arduino wystarczyło zadeklarować analogowe wejście pod jakaś zmienna i gdy podłączyłem załóżmy LM35 to wiedziałem ze w tej zmiennej mam wartość z czujnika temp (oczywiście odpowiednim wzorem to dalej przeliczałem) a w tym przypadku nie widzę gdzie mam ta zmienna z wartością z pinu PC5.
  • #13 12246738
    płetwa
    Poziom 33  
    Posty: 1963
    Pomógł: 164
    Ocena: 544
    Chyba nie bardzo czytałeś, jeżeli masz to tak połączone jak na schemacie to już nigdy nie zadziała (stabilizator 8V), filtrowanie zasilania ( żadnego kondensatora) linia danych ds1820 nie podciągnięta do plusa przez rezystor 4,7K. Reset nie podciągnięty.... Wróć do lektury.
  • #14 12246817
    vigorado89
    Poziom 16  
    Posty: 377
    Pomógł: 6
    Ocena: 2
    Stabilizator 8v ? to mi Atmege spali wsadziłem 5v, przecież jest kondensator 1000uF, a Reset nie rozumiem po co podciągać ? jak wpinam od programatora reset i wszystko się programuje. Nie chodzi o to ze chce robić po swojemu na pale tylko chce zrozumieć po co mam do + podciągać reset, na moja logikę to procesor non stop będzie w stanie resetu.
  • #16 12248421
    vigorado89
    Poziom 16  
    Posty: 377
    Pomógł: 6
    Ocena: 2
    Przeczytałem, przebudowałem (jak i również zrobiłem porządek), pogrzebałem trochę w kodzie i gdy zamiast DS1820 wsadzę potencjometr to ładnie mi się wszystko wyświetla, z DS1820 mam 0 a gdy dotknę go palcem to dochodzi do 2(taki sam objaw jest gdy mam podciągnięty do + rezystorem czy nie.).

    dodaje schemat i kod:

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



    Pierwszy projekt na Atmega - Termometr,Zegarek,Woltomierz

    Jest jednak jedna rzecz która mnie intryguje: w 2 linii wyświetlacza chciałem wyświetlacz 3 rzeczy = liczbę 1, liczbę z PC5 oraz liczbę losowa(taki od test) jednak na wyświetlaczu mam w tym polu kompletnie nic, żadnych znaczków ani liczb.
  • #17 12249915
    dondu
    VIP Zasłużony dla elektroda
    Posty: 13906
    Pomógł: 1292
    Ocena: 809
    Zacznijmy od schematu:

    1. Regulator napięcia wymaga elementów zewnętrznych - sprawdzałeś datasheet regulatora? Pomijam już fakt, że na schemacie masz pokazany 7808, a opis 5V :)
    Przeczytaj także: http://mikrokontrolery.blogspot.com/2011/04/zasilanie-mikrokontrolera.html

    2. Skąd wziąłeś wartości kondensatorów przy kwarcu? Sprawdzałeś datasheet tego mikrokontrolera lub chociażby kwarcu? Jeżeli nie to sprawdź.

    3. Skąd wytrzasnąłeś 2x100uF na pinie AVcc? Na pewno nie z tego linku, który podał kol. płetwa.

    4. AREF łączysz z AVcc - możnatak robić, ale nie jest to wskazane. W dodatku, nie wykorzystujesz przetwornika ADC, więc L1 jest niepotrzebne.
    Więcej na ten temat: http://mikrokontrolery.blogspot.com/2011/03/avr-adc-podlaczenie.html

    5. Zamiast SCK podłączyłeś do złącza programatora SS: http://mikrokontrolery.blogspot.com/2011/04/isp-co-to-takiego.html

    6. Niepotrzebnie dajesz symbole łączenia (kropki) w wielu miejscach. Używaj narzędzia NET zamiast WIRE, a symbole połączeń same będą się ustawiać w miejscach w których powinny się znaleźć.

    7. Zrób więc schemat od nowa w taki sposób: http://mikrokontrolery.blogspot.com/2011/04/kicad-projektowanie-schematow-i-pytek.html

    Na razie tyle. Gdy zrobisz schemat jeszcze raz, to go sprawdzimy i dopiero zajmiemy się programem.
  • #18 12269973
    vigorado89
    Poziom 16  
    Posty: 377
    Pomógł: 6
    Ocena: 2
    1. Nie mogłem znaleźć innego w eagle wiec wrzucilem taki jaki mi podpasowal a nie sporjzalem po oznaczeniach, poszukałem głębiej i znalazłem odpowiedni. Wiadomo ze 8v zabiłoby atmege.

    2. Nie sprawdzałem ale już to zrobiłem. W datasheet znalazłem taka o to tabelkę:
    Pierwszy projekt na Atmega - Termometr,Zegarek,Woltomierz
    Ponieważ na chwile obecna dysponuje kondensatorem najmniejszym o wartości 10uF to póki nie kupie odpowiednich kondensatorów, z płytki wywalę kwarc.

    3. Tak z tego linku ale źle spojrzałem, uroiło mi się ze tam jest złączenie obu pinów.

    4. Tak jak pkt 3 :P

    5. Na płytce miałem podłączony pin z programatora pod SCK a na schemacie połączyłem w SS mój błąd.




    Schemacik ;)
    Pierwszy projekt na Atmega - Termometr,Zegarek,Woltomierz



    Pytania:

    1. Czy kwarc jest mi potrzebny tylko wtedy gdy chce robić za pomocą atmegi precyzyjny zegar ? Czy również do innych celów służy ?

    2. Lepsze jest zastosowanie kostki RTCC/RTC czy kwarcu do takiego samego zastosowania jak wyżej ?

    3. Gdy juz mam kwarc wsadzony to czy muszę go włączyć fusebitem "CKSEL" ?

    4. Obecnie gdy cały układ pracuje trochę dłużej to stabilizator się grzeje (aż przykręciłem do niego radiator) Czy gdzieś mogę mieć zwarcie ? Czy po prostu całość więcej pobiera prądu ze stabilizator się robi cieplejszy ?
  • #19 12284164
    vigorado89
    Poziom 16  
    Posty: 377
    Pomógł: 6
    Ocena: 2
    Widze że wasze chęci pomocy i edukacji poczatkujacego już się skończyły.
  • #20 12284222
    dondu
    VIP Zasłużony dla elektroda
    Posty: 13906
    Pomógł: 1292
    Ocena: 809
    Dobrze że się przypomniałeś, bo przeoczyłem ten temat wśród wielu innych, w których się udzielam.

    1. Kwarc to element, który przydaje się w wielu sytuacjach. Na przykład w przypadku zegara o którym piszesz. Ale są i inne sytuacje:
    - chcesz taktować mikrokontroler inną częstotliwością niż może to zrobić wewnętrzny generator RC.
    - potrzebujesz większej stabilności w przypadku zmiany temperatury mikrokontrolera, np przy komunikacji szeregowej,
    - gdy potrzebujesz mierzyć dokładnie częstotliwość lub czasy impulsów,
    - itp.

    2. To już Ty musisz zadecydować co rozumiesz przez słowo "lepsze"? Do zegarka wystarczy kwarc zegarkowy 32,768kHz - tańszy niż zewnętrzny RTCC/RTC.

    3. CKSEL to kilka fusebitów i faktycznie trzeba je odpowiednio ustawić. Zależy to od kwarcu który wybrałeś.

    4. Patrząc na Twój schemat, nie widzę powodu, żeby się grzał. Coś jest nie tak. Jeżeli masz multimetr, to sprawdź jaki jest pobór prądu na wyjściu 7805.


    Pozostałe uwagi do poprawionego schematu:

    5. Kondensatory przy 7805 (C7 i C1) nie są zgodne z tym co Ci podałem - przeczytaj jeszcze raz.

    6. Kondensatory C2 i C6 także złe.

    7. Złącze ISP podłącz do GND także piny 4,6 i 8 - niektóre programatory niezgodne ze standardem mogą mieć pin 10 niepodpięty do gnd.

    8. DS18B20 wymaga zewnętrznego rezystora pull-up - sprawdź w datasheet.

    9. Szkoda, że nie narysowałeś schematu według wytycznych, które Ci podałem.
  • #21 14131421
    vigorado89
    Poziom 16  
    Posty: 377
    Pomógł: 6
    Ocena: 2
    Witam po bardzo długiej przerwie. Ponieważ na zajęciach pojawił się przedmiot podstawy elektroniki to powróciły mi chęci na dokończenie mojego cudownego układu (oraz rozbudowanie go). Na start odpaliłem stary układ który wciąż działa perfekcyjnie (wersja przerobiona na zasilanie z baterii 9v) Niestety stary miernik nie nadaje się już do niczego i zastanawiam się nad kupieniem czegoś lepszego za większe pieniądze i żeby służyło mi lata. Kolejna sprawa a wiec czujniki DS1820, na szybko podpiąłem je pod arduino, poszukałem bibliotek odpowiednich i czujniki (nawet dwa) działają perfekcyjnie. Sprawdzając wszystko po kolei niestety wydaje mi się ze programator umarł (ale może jest coś źle ustawione lub źle podłączone). Nic w układzie nie zmieniałem przez te lata. Nie wiem od czego zacząć, na pewno będę musiał przejrzeć ten temat od nowa (na pewno tez poszerzyć swoja wiedzę elektroniczna bo jak się sam przekonałem na zajęciach i patrząc po 2 latach na ten temat to mocno kuleje) i kupić lub ożywić programator. Ile waszym zdaniem można przeznaczyć max na dobry miernik ? Odkryłem dziś kanał na YT Atnel - mirekk36 i przejrzałem cala stronę owego mistrza i zastanawiam się nad kupnem książki jego wydawnictwa oraz programatora.
  • #22 14131452
    bearq
    Poziom 39  
    Posty: 4881
    Pomógł: 414
    Ocena: 1602
    Dobry miernik to 80zł coś z rodziny M890G na początku będzie aż za. Co do kanału mirka36 to nawet jest ok ale ma chore ceny w swoim sklepie i nie opłaca się tam niczego kupować. Książki nie są złe ale są tańsze i równie dobre.
  • #23 14144329
    vigorado89
    Poziom 16  
    Posty: 377
    Pomógł: 6
    Ocena: 2
    Witam ! A zatem zaczynam od schematu, przeanalizowałem wszystko i powracając do mojego schematu chce pozamieniać kondensatory (na ceramiczne 100nF) te przy atmedze czyi moje C2 oraz C6 oraz również chyba brakuje do VCC takiego samego jak na C2 i C6 ? A przy stabilizatorze mysle o elektrolitycznych po 100uF. To tak na poczatek, jutro gdy przelece od nowa tutoriale zwiazane ze schematami zrobie nowy schemat jak to teraz wyglada (wzorowalem sie na wersji zalecanej z tego linku http://mikrokontrolery.blogspot.com/2011/04/minimalne-podlaczanie-pinow.html )
  • #24 14144981
    dondu
    VIP Zasłużony dla elektroda
    Posty: 13906
    Pomógł: 1292
    Ocena: 809
    1. Zastosuj ikonki Rotate i Mirror (w Eagle) do regulatora napięcia i obróć go pinem GND w dół :)
    2. Zapomniałeś podłączyć kwarc do pinów XTAL oraz GND do jego kondensatorów.
    3. 1000uF - to nie te czasy - wiele w elektronice się zmieniło na lepsze :) Spokojnie 47uF wystarczy
    4. C2 nie uF tylko nF.
    5. Jesli nie będziesz dokonywał pomiarów ADC, to L1 jest zbędny. Tak samo C6, który nota bene także powinien być nF zamiast uF.
    6. Piny 15 i 16 LCD to z reguły diody podświetlające - warto podłączyć.
    7. Brakuje rezystora podciągającego wyjście DS19B20 do Vcc - według dokumentacji wynoszący 4,7k
    8. symbole +5V podłączyłeś po prawej stronie schematu, ale dodaj taki sam na wyjściu regulatora napięcia, bo nie będą połączone razem.

    Reszta OK.
  • #25 14149095
    vigorado89
    Poziom 16  
    Posty: 377
    Pomógł: 6
    Ocena: 2
    Pierwszy projekt na Atmega - Termometr,Zegarek,Woltomierz

    Niestety musiałem cały schemat rysować od nowa, wszystko to co jest schemacie znajduje się na płytce prototypowej (no może oprócz włącznika ON/OFF przed C5 ale to chyba nie istotne), na razie nie podłączyłem kwarcu. Ucząc się całego eagla od nowa mogłem jeszcze coś pominąć, no i póki co zrobiłem jedna szynę napięcia. Jeśli profesjonaliści stwierdzą (mi się wydaje ze przy obecnym układzie trochę to zbędne) że lepiej porobić wszędzie oddzielnie +5v źródła napięcia do każdego podzespołu to tak zrobię. Niestety przeglądając temat i poprzednie schematy stwierdzam ze wiele rzeczy po prostu zapomniałem dorysować na schemacie a co na płytce było i pracowało.

    ps. Nie montowałem kwarcu bo nie dotarłem jeszcze do artykułów jak to dokładnie zamontować, zdaje się ze mam 12mhz, czy na razie on wystarczy czy podczas programowania potrzebny będzie ten 32mhz ? Za bardzo nie mogę znaleźć żadnych not w necie do tego kwarcu co mam :/ Tak się zastanawiam czy moze by nie wsadzić (np DS1307) nie ukrywam ze chciałbym tez żeby był i zegarek i kalendarz.

    Pytanie: W Twoich artykułach Dondu jakie znalazłem na Twoim portalu piszesz o kwarcu 32mhz, znalazłem w sprzedażny 40mhz wiec który byłby lepszy ?
  • #26 14149947
    dondu
    VIP Zasłużony dla elektroda
    Posty: 13906
    Pomógł: 1292
    Ocena: 809
    Tak na szybko, bo czas mnie goni odpowiem tylko na:

    vigorado89 napisał:
    Pytanie: W Twoich artykułach Dondu jakie znalazłem na Twoim portalu piszesz o kwarcu 32mhz, znalazłem w sprzedażny 40mhz wiec który byłby lepszy ?

    Chyba pomyliłeś artykuły ATmega z XMega :)

    ... a koledzy podpowiedzą dalej.
  • #27 14150195
    bearq
    Poziom 39  
    Posty: 4881
    Pomógł: 414
    Ocena: 1602
    Kwarc maksymalnie 16Mhz więcej atmega nie pociągnie (teoretycznie). Schemat narysowany makabrycznie. Rysując schematy podziel to sobie na sekcję zasilania, sterowania i tak dalej. Tutaj Ci wrzucam przykładowy schemat, nie jest to na pewno idealnie ale jako tako wygląda:

    Pierwszy projekt na Atmega - Termometr,Zegarek,Woltomierz

    @Akurat tutaj jest dość dobra sekcja filtracji także możesz śmiało sobie to skopiować do siebie.
  • #29 14151302
    bearq
    Poziom 39  
    Posty: 4881
    Pomógł: 414
    Ocena: 1602
    Dodaj po kondensatorze 100n do zasilania na wejściu i wyjściu. Do tego zmień te cewki z rezystorem (pewnie błąd dodawania). Całą sekcję zasilania atmegi (u Ciebie po lewej stronie) przekopiuj ze zdjęcia które dodaj wyżej. Poprawi się stabilność procka. Jeśli korzystasz z ADC to tym bardziej musisz mieć konkretną filtrację.
  • #30 14152377
    vigorado89
    Poziom 16  
    Posty: 377
    Pomógł: 6
    Ocena: 2
    Pierwszy projekt na Atmega - Termometr,Zegarek,Woltomierz

    Kolejne poprawki v2 :P kwarc fizycznie jeszcze nie zamontowany nie mam tak małych kondensatorów żeby to podłączyć do masy.

Podsumowanie tematu

✨ Użytkownik planuje stworzyć termometr z dwoma czujnikami na mikrokontrolerze ATmega, mając doświadczenie w Arduino, ale napotykając trudności w programowaniu samej Atmegi. W dyskusji poruszono kwestie dotyczące wyboru czujników temperatury, takich jak DS18B20 i DS1820, oraz ich różnic w rozdzielczości pomiaru. Użytkownik zadał pytania dotyczące schematów połączeń, stabilności zasilania oraz zastosowania kwarcu w układzie. Wiele odpowiedzi dotyczyło poprawności schematów, filtracji zasilania, podciągania linii danych oraz ustawiania fusebitów. Użytkownik planuje również dodać moduł DS1307 do projektu, aby wprowadzić funkcjonalność zegara.
Wygenerowane przez model językowy.
REKLAMA