Udoskonalony Termometr bezprzewodowy

Prezentacje projektów
Awatar użytkownika
seler1500
Posty: 6
Rejestracja: 24 lut 2017, 1:07
Lokalizacja: Opolskie

Re: Udoskonalony Termometr bezprzewodowy

Post autor: seler1500 » 04 mar 2017, 13:08

Witam!
Płyteczki już się trawią, a w tak zwanym międzyczasie szukam procesorów. W stacji odbiorczej planuję wstawić Atmegę328p wylutowaną z chińskiego odpowiednika Arduino (to jedyna "nie podrobiona" ATmega jaką mam :D ) W nadajniku widzę ATtiny 85, jako, że je muszę kupić, mam kilka pytań:
1. Mogę wstawić ATtiny45 zamiast tiny85?
2. Czy obudowa SO-8W będzie pasowała do tej płytki? (w TME innych nie ma na magazynie)
3. Dam radę zaprogramować to przez USBasp?
4. Oraz jakim programem skompilować lub wgrać kod?
Pytam, bo dopiero zaczynam z AVR (wcześniej bawiłem się Arduino).

Pozdrawiam, Rafał
Awatar użytkownika
kaktus
Posty: 32
Rejestracja: 19 sie 2015, 15:13
Lokalizacja: opolskie
Kontakt:

Re: Udoskonalony Termometr bezprzewodowy

Post autor: kaktus » 04 mar 2017, 14:15

Arduino jest na sprzęcie AVR. To liczna rodzina µC.

ad4. najlepiej zgodnym z językiem w jakim napisano kod. BARTek koduje najczęściej w środowisku Bascom AVR, które udostępnia bezpłatnie możliwość kompilowania źródeł do 4kB kodu wynikowego.
ad3. nie powinno być przeszkód
ad2. może będzie w innym sklepie jeśli potrzebujesz konkretnego rozwiązania, obudowy mają różne rozmiary.
ad1. możesz bo to młodszy braciszek z mniejszą pamięcią na kod, byle tej przestrzeni wystarczyło
:mrgreen:
teraz życie można rozdzielić między NOP i SLEEP
Awatar użytkownika
niveasoft
Posty: 1239
Rejestracja: 17 sie 2015, 12:13
Kontakt:

Re: Udoskonalony Termometr bezprzewodowy

Post autor: niveasoft » 04 mar 2017, 15:14

Tam się trochę rozpasłem z tym Tiny85 bo ja ich mam cały worek :D
Kod chyba można upchnąć nawet do Tiny13 tylko on chyba nie ma tak długiego Watchdoga i trzeba by ciut pozmieniać czasy.
Jak będziesz miał jakiś ośmiopinowy procesorek to mogę Ci skompilować soft do postaci HEX lub BIN konkretnie pod niego.
Awatar użytkownika
seler1500
Posty: 6
Rejestracja: 24 lut 2017, 1:07
Lokalizacja: Opolskie

Re: Udoskonalony Termometr bezprzewodowy

Post autor: seler1500 » 05 mar 2017, 11:45

Witam!
Wybór padł na procesory Tiny13 (lub Tiny25) oraz ATmega8.
O 328 napisałem dlatego, że mój zbiór 8-mek podejrzewam o to, że z Atmelem wspólny mają tylko napis.
ATtiny13 wybrałem ze względu na dostępność w obudowie SO-8 i niską cenę (~2,50 PLN).
Oczywiście wiem, że Arduino bazuje na AVR.
BTW, gdzie jeszcze można w przyzwoitej cenie dostać oryginalne AVR?

Pozdrawiam, Rafał
Awatar użytkownika
niveasoft
Posty: 1239
Rejestracja: 17 sie 2015, 12:13
Kontakt:

Re: Udoskonalony Termometr bezprzewodowy

Post autor: niveasoft » 08 mar 2017, 17:30

Sprawdzona wersja nadajnika na Attiny13 :D
Z racji tego ze wewnętrzne źródło napięcia odniesienia w Tiny13 to 1,1V rezystor R2 powinien mieć wartość 20K dla 3,3V albo ponad 35K dla zasilania 5V.
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
Awatar użytkownika
seler1500
Posty: 6
Rejestracja: 24 lut 2017, 1:07
Lokalizacja: Opolskie

Re: Udoskonalony Termometr bezprzewodowy

Post autor: seler1500 » 17 mar 2017, 20:01

Witam!
Scalaczki już dotarły, a to oznacza, że zabieram się do pracy.
Jak skończę - zamieszczę fotki :)
Nadajnik - tiny13, Odbiornik - mega88.


Pozdrawiam, Rafał
Awatar użytkownika
niveasoft
Posty: 1239
Rejestracja: 17 sie 2015, 12:13
Kontakt:

Re: Udoskonalony Termometr bezprzewodowy

Post autor: niveasoft » 22 kwie 2017, 3:04

Hmm Nikt o nic nie pyta to znaczy że działa? Dajcie jakieś info :P
Awatar użytkownika
kaktus
Posty: 32
Rejestracja: 19 sie 2015, 15:13
Lokalizacja: opolskie
Kontakt:

Re: Udoskonalony Termometr bezprzewodowy

Post autor: kaktus » 07 wrz 2017, 11:04

niveasoft pisze:
22 kwie 2017, 3:04
Dajcie jakieś info :P
Się robi BARTolomeo ;)

Ponieważ wczorajsza kondycja pozwalała jedynie na oglądanie, pooglądałem ostatni prezentowany kod z wątku.

Powiem zwięźle. Podchodzenie do "pracy" z pasją daje właśnie takie a nie inne wyniki.

I podpowiem do rozważenia kilka przemyśleń.
W celu lepszego zoptymalizowania dla oszczędności źródła energii można -
wsadzić szeregowy opornik do wejścia ADC o dużej wartości by wewnętrzne komponenty zabezpieczające pinu nie powodowały upływów prądu.
W kodzie bezpośrednio po odczycie wartości z ADC zastosował bym instrukcje będące gdzieś na końcu

Kod: Zaznacz cały

    Set Divider_gnd
    Stop Adc
dodatkowo przeprogramowałbym rozdzielczość termometru cyfrowego na mniejszą, tak by ten uwijał się szybciej z konwersją, mniej czekania, szybszy odczyt, dłuższa drzemka MCU, więcej prądu w bakteryjce :D -> dłuższe działanie.
Wtedy

Kod: Zaznacz cały

Waitms 750
może mieć zdecydowanie mniejszą wartość.
Dzielnik chyba było by warto dopracować do zakresu Reference = Internal_1.1 (hehehe znowu grzebałeś w ATtiny13.DAT).

Dodał bym w "fusach" BODLEVEL 2.7V (albo bardziej stosowny dla wybranego MCU) o ile ktoś oczywiście chce bo MCU może działać przy niższych wartościach napięcia, ale "Dallas" ... niekoniecznie.
A tak przy okazji, BARTek, możesz do kodów wklejać dyrektywę $PROG która rozwiąże poważne problemy początkujących z konfiguracją sprzętową MCU.
Tak się jeszcze zastanawiam nad celowością zastosowania jakiegoś zoptymalizowanego do pracy z baterią stabilizatora LDO, który zapewni jakość zasilania dla podzespołów cyfrowych i poprawi skuteczność pomiaru napięcia ...
Są produkowane też takie które zapewnią prawidłowe zasilanie nawet z jednego ogniwa :mrgreen:

Dla mnie ten kod to majstersztyk, niby prosty ale ...
może go jeszcze bardziej ekstremalnie dopieścisz by zejść z wartością ROMIMAGE?

Dlatego lubię rodzinę ATtiny, te MCU brutalnie zmuszają do wysiłku intelektualnego, i używania posiadanej w temacie wiedzy, której nigdy za wiele.


... po dwóch minutach

Taki LDO może mieć, nogę którą MCU wyłączy zasilanie i ustrzeże przed uszkodzeniem elementy układu, a baterie przed możliwym wyciekiem w przypadku nadmiernego rozładowania.
teraz życie można rozdzielić między NOP i SLEEP
Awatar użytkownika
niveasoft
Posty: 1239
Rejestracja: 17 sie 2015, 12:13
Kontakt:

Re: Udoskonalony Termometr bezprzewodowy

Post autor: niveasoft » 07 wrz 2017, 13:27

Jestem w stanie zrozumieć "argumenty" że taki mały procesorek wymaga wysiłku intelektualnego, ale jest to na poziomie gry "przepychania klocków w magazynie" tak by nie zakorkować się całkiem :D
Lubię rozwiązywać krzyżówki, ale w programowaniu często chodzi o czas i efekty a nie pokazanie, że da się to upchnąć od razu w najmniejszym chyba że to tylko hobby i ambicja :D
Obecnie uważam, że pisząc program powinno się najpierw osiągnąć żądane funkcjonalności, a na samym końcu, jeśli jest taka potrzeba, zmieścić kod w mniejszym procesorze.
Awatar użytkownika
kaktus
Posty: 32
Rejestracja: 19 sie 2015, 15:13
Lokalizacja: opolskie
Kontakt:

Re: Udoskonalony Termometr bezprzewodowy

Post autor: kaktus » 07 wrz 2017, 14:02

Jak już na myśli jest oszczędzanie prądu z baterii to warto zacytować z notki pewne dane dla wartości typowych:
Icc
Supply Current,
Active Mode
f = 1MHz, VCC = 2V 0.3mA
f = 4MHz, VCC = 3V 1.6mA
f = 8MHz, VCC = 5V 5mA
Supply Current,
Idle Mode
f = 1MHz, VCC = 2V 0.08mA
f = 4MHz, VCC = 3V 0.41mA
f = 8MHz, VCC = 5V 1.6mA
Supply Current,
Power-Down Mode
WDT enabled, VCC = 3V 5µA
WDT disabled, VCC = 3V 0.5µA
zastosowane w układzie taktowanie 12MHz można zoptymalizować do rezonatora wewnętrznego 4,8MHz co przy użytym baud = 1200 daje rezultat błędów na poziomie 0,00. Oczywiście wszyscy wiemy ze oscylator rezonatorowi nie równy, ale o ile spadnie wtedy zużycie energii :mrgreen:

BARTek swego czasu prowadziłeś mnóstwo doświadczeń z różnymi modulikami RF.
Powiedz jak się sprawują przy różnych szybkościach baud i czy robiłeś porównanie pod względem ilości błędów gdy MCU taktowany był rezonatorem i oscylatorem.
teraz życie można rozdzielić między NOP i SLEEP
ODPOWIEDZ