Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Zegar i termometr na Attiny2313 dla początkujących

mi_ma 08 Nov 2017 21:43 10608 9
Renex
  • Zegar i termometr na Attiny2313 dla początkujących

    W poniższym poście znajdziecie proste projekty znalezione na jednym z rosyjskich forów. Projekty przeznaczone są dla początkujących elektroników, którzy chcieliby rozpocząć swoją przygodą z mikrokontrollerami AVR (Atmel). Projekty zawierają schematy, wzory płytek PCB, wsady do mikrokontrolerów w formacie HEX. Są to idelane projekty, które można wykorzystać do nauki projektowania PCB w Eagle, samodzielnego wykonywania obwodów i programowania mikrokontrolerów.

    Zegar zbudowany na Attiny2313
    Zegar i termometr na Attiny2313 dla początkujących Zegar i termometr na Attiny2313 dla początkujących Zegar i termometr na Attiny2313 dla początkujących

    Jednym z pierwszych prostych projektów jakie można wykonać jest zegar na mikrokontrolerze. Od strony sprzętowej projekt ogranicza się do podłączenia mikrokontrolerza taktowanego oscylatorem do wyświetlaczy LED i dwóch przycisków służących do zmiany aktualnej godziny.

    Autor jednak poruszył problem, który w projektach dla początkujących jest często pomijany, a dotyczy przeciążenia wejść portu mikrokontrolera. O ile stosuje się rezystory na pinach wyjściowych służących do wyregulowania prądu na każdej z diod, tak aby świeciły jednakowo i jasno niezależnie od wyświetlonego znaku, o tyle w projektach dla początkujących zapomina się zabezpieczeniu pinów portu wyjściowego. W efekcie łatwo można przekroczyć dopuszczalną maksymalną wartość prądu na pinie i go przepalić.

    Zegar i termometr na Attiny2313 dla początkujących

    W poniższym projekcie autor celowo stosuje tranzystory, których zadaniem jest między innymi zabezpieczenie pinów przed tym zjawiskiem. W poniższym poście znajdziecie dwie wersje płytki z tranzystorami PDTC124E z wbudowanymi rezystorami na wejściu bazy oraz dla dowolnych innych tranzystorów, gdzie dodatkowo należy dolutować rezystory.

    Zegar i termometr na Attiny2313 dla początkujących Zegar i termometr na Attiny2313 dla początkujących

    wzór obwodu drukowanego w formacie cdr http://www.tehnari.ru/attachments/f170/71602d1331959353-ieaoa-aaeoidhiue-oidhiao.rar
    wzór obwodu drukowanego (z dodatkowymi rezystorami) w formacie cdr http://www.tehnari.ru/attachments/f170/70323d1331025927-ieaoa-n-dhacenoidhaie-aaciaie-oeaie.rar
    oprogramowanie mikrokontrolerahttp://www.tehnari.ru/attachments/f170/70325d1331025947-idhioeaea-clock.rar
    Źródło http://www.tehnari.ru/f170/t70172/


    Termometr zbudowany na Attiny2313

    Zegar i termometr na Attiny2313 dla początkującychZegar i termometr na Attiny2313 dla początkujących
    Zegar i termometr na Attiny2313 dla początkującychZegar i termometr na Attiny2313 dla początkujących

    Proste urządzenie działa w oparciu o cyfrowy czujnik temperatury MAXIM-DALLAS DS18B20 mierzący temperaturę w zakresie od -55oC do +125oC. Czujnik przesyła dane cyfrowe do mikrokontrolera poprzez jednoprzewodowy interfejs komunikacyjny.

    Zegar i termometr na Attiny2313 dla początkujących

    Chociaż w projekcie czujnik zasilany jest z 5V, to możliwe jest zastosowanie tutaj zasilania w trybie "pasożytniczym", gdzie pin zasilający podłączony jest do masy, natomiast czujnik pobiera energię niezbędną do pracy z sygnału linii komunikacyjnej. Może mieć to znaczenie w sytuacji, w której chcielibyśmy użyć czujnika w pewnej odległości od układu. Możliwe jest wtedy zastosowanie przewodu dwużyłowego zamiast trójżyłowego.

    Poniżej fragment dokumentacji czujnika:

    Zegar i termometr na Attiny2313 dla początkujących

    dokumentacja DS18B20 https://datasheets.maximintegrated.com/en/ds/DS18B20.pdf

    Dane przetwarzane są przez mikrokontroler ATtiny2313, który ma za zadanie przedstawić wartość odczytanej temperatury na wyświetlaczach siedmio-segmentowych. Mikrokontroler pełni tutaj rolę dekodera dla wyświetlacza siedmiosegmentowego odpowiednio "zapalając" diody. Sam mikrokontroler wykorzystuje do pracy wewnętrzny oscylator.

    Podczas programowania należy oczywiście odpowiednio skonfigurować mikrokontroler (ustawić wartości Fuse Bits). Na poniższym zdjęciu przedstawiono jak to poprawnie wykonać:

    Zegar i termometr na Attiny2313 dla początkujących

    Na stronie źródłowej znajdziecie:

    wzór obwodu drukowanego w formacie cdr http://www.tehnari.ru/attachments/f170/60952d1325312087-oadhiiiaodh-ia-attiny2313.rar
    program do mikrokontrolera w formacie HEX http://www.tehnari.ru/attachments/f170/60949d1325312087-idhioeaee.rar

    Zegar i termometr na Attiny2313 dla początkujących

    źródło http://www.tehnari.ru/f170/t61947/

    Cool? Ranking DIY
    About Author
    mi_ma
    Translator, editor
    Offline 
    Has specialization in: elektronika wojskowa
    mi_ma wrote 831 posts with rating 802. Live in city Wrocław. Been with us since 2006 year.
  • Renex
  • #2
    fotomh-s
    Level 24  
    Na forum było takich termometrów od groma. Były także kody źródłowe, sam w ten sposób się nauczyłem takie rzeczy budować.
    Korzystając z HEXa to człowiek się niczego nie nauczy, no chyba że ma zamiar uczyć się programowania w kodzie maszynowym :-P

    Co do pierwszego przykładu to SMD nie jest typowym rozwiązaniem dla początkujących. Zaczyna się od przewlekanego, potem przychodzi czas na SMD.
  • #3
    szymon122
    Level 38  
    mi_ma wrote:
    zapomina się zabezpieczeniu pinów portu wyjściowego. W efekcie łatwo można przekroczyć dopuszczalną maksymalną wartość prądu na pinie i go przepalić.

    Spytam tak z ciekawości: Co wtedy się dzieje?

    Nie działa nam jedna "nóżka" czy uszkadzamy od razu cały mikroprocesor?
    Czy nie będzie działać jedynie jako wyjście a czy jako wejście ma szanse działać?

    Pytam tutaj głównie o układy z rodziny jak powyższy ale proszę o wszystkie wypowiedzi z waszymi doświadczeniami ;)

    Dodano po 2 [minuty]:

    fotomh-s wrote:
    Co do pierwszego przykładu to SMD nie jest typowym rozwiązaniem dla początkujących. Zaczyna się od przewlekanego, potem przychodzi czas na SMD.

    Jeśli ktoś nie umie programować a lutuje dobrze to czemu nie ;)

    Ja osobiście wolę SMD, chociażby w obudowach 1206, są duże, nic nie trzeba wiercić, płytki wychodzą mniejsze, większy wybór elementów które jednocześnie są tańsze, wg mnie same plusy.
  • Renex
  • #4
    fotomh-s
    Level 24  
    Sam osobiście zrobiłem kiedyś zwarcie na porcie. Padła jedna nóżka, jednak proc działał dalej. Był to ATtiny2313.
    Kiedyś podłączyłem odwrotnie ATmegę16, rozgrzała się tak że poparzyłem sobie palec. Padła także chyba tylko jedna nóżka (od jakiegoś portu) i także proc działał dalej.
  • #5
    szymon122
    Level 38  
    Bardziej mnie interesuje czy nóżka uszkodzona podczas pracy jako wyjście ma szanse poprawnie działać jako wejście.
    Coś gdzieś mi świta, że gdzieś widziałem projekt w którym autor miał uszkodzony procesor właśnie w wyniku zwarcia czy czegoś w tym stylu i pin ten wykorzystał jako wejście czujnika. Niestety nie mam pojęcia jaka to był model.
    Wg tego schematu (źródło: Datasheet Attiny2313) za funkcję "wejście" oraz "wyście" odpowiadają inne elementy.
    Zegar i termometr na Attiny2313 dla początkujących
  • #6
    Anonymous
    Anonymous  
  • #8
    Justyniunia
    Level 35  
    Na zdjęciu masz model wyświetlacza.
    CC, to wspólna katoda, 56 oznacza wysokość cyfry, reszta to typ.
    Możesz ściągnąć pdf tego kingbright'a (jest w sieci) i porównać z tym co masz (polaryzacja, układ wyprowadzeń)
  • #9
    elektronik.b
    Level 3  
    Zrobiłem ten termometr tylko wg. mnie on troszkę zawyża temperaturę o te dwa trzy stopnie wiem bo porównywałem z fabrycznym.
    Czy np. nie dało by się zmienić ten rezystor 4,7kom który jest wpięty pomiędzy + zasilania a wyjście tego czujnika na jakiś inny żeby wskazywało troszkę mniej?
  • #10
    inot
    Level 32  
    elektronik.b wrote:
    Czy np. nie dało by się zmienić ten rezystor 4,7kom który jest wpięty pomiędzy + zasilania a wyjście tego czujnika na jakiś inny żeby wskazywało troszkę mniej?

    Nie. Temperaturę można skorygować tylko poprzez zmianę w kodzie mikrokontrolera.
    Niestety tutaj autor nie udostępnił kodu źródłowego, jedynie plik formatu "hex".