Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[atmega88pa] [bascom] - Projekt czujnika zewnętrznego

micmys 28 Sty 2013 19:59 1899 8
  • #1 28 Sty 2013 19:59
    micmys
    Poziom 8  

    Witam. Jestem obecnie na etapie budowy stacji pogodowej. Po pokonaniu problemów ze stacją bazową, nadszedł czas na budowę czujnika zewnętrznego. Będzie się on składał z mikrokontrolera AtMega88PA, czujnika SHT11, nadajnika RTFQ2 i czujnika mierzącego prędkość wiatru (kontaktron lub dioda + fototranzystor, jeszcze nie zdecydowałem). Czujnik będzie zasilany z 3 baterii alkalicznych połączonych szeregowo, zatem napięciem 4,5V. Założyłem sobie, że baterie mają starczyć na co najmniej 1 rok. w związku z tym muszę zminimalizować pobór prądu do minimum. Postanowiłem, że program będzie wyglądał tak:
    -wybudzenie (watchdog co 8 sekund)
    -zwiększenie wartości jakiejś zmiennej i ponowne uśpienie
    -gdy zmienna osiągnie wartość 8 (czyli co ok. 64 sek)
    -zerowanie zmiennej bez usypiania
    -włączenie czujnika SHT
    -pomiar temp. i wilg.
    -wyłączenie SHT
    -włączenie przetwornika ADC
    -pomiar napięcia baterii (ADC i dzielnik napięcia ok. 1:5 z rezystorów 200k i 51k)
    -wyłączenie ADC
    -wait 2 i włączenie timera (w czasie tych 2 sekund podprogram uruchamiany przerwaniami od timera mierzy czas pomiędzy obrotami wiatromierza i wpisuje go do zmiennej)
    -wyłączenie timera
    -włączenie nadajnika RTFQ2
    -wysłanie danych
    -wyłączenie odbiornika
    -przejście w tryb powerdown
    i od początku.
    I tutaj mam 2 pytania:
    1. Czy mój tok rozumowania jest poprawny (głównie chodzi mi o to wybudzanie z użyciem watchdoga i kolejne uruchamianie peryferiów; układ musi pobierać jak najmniej energii) ?
    2. W jaki sposób najlepiej sterować zasilaniem peryferiów ? Czy mogę po prostu podłączyć + zasilania SHT11, RTFQ2 i ew. fotodiody do wyjść atmegi i włączać je poprzez ustawienie 1 na danym porcie, a wyłączać przez ustawienie 0 (nie wiem jak to się sprawdzi w trybie powerdown i po resecie od watchdoga), czy może trzeba zastosować jakieć tranzystory ?
    Z góry dziękuję za pomoc :-)

    0 8
  • #2 28 Sty 2013 20:27
    BlueDraco
    Specjalista - Mikrokontrolery

    Najwięcej energii pobierze podczas tego "wait 2".

    Sprawdź, czy układy, które chcesz połączyć z procesorem, mają tryb uśpienia - jeśli tak, to nie ma potrzeby kluczowania ich zasilania. Jeśli nie - sprawdź maksymalny pobór prądu w stanie aktywnym. W zasadzie zasilania z portów mikrokontrolera nie jest eleganckim rozwiązaniem, ale jeśli prądy zasilania nie przekraczają pojedynczych miliamperów a stabilność zasilania nie jest krytyczna - można spróbować. W przeciwnym przypadku użyj jako kluczy tranzystorów PMOS o małej RDSon, np. TSM2301 (chyba).

    0
  • #3 28 Sty 2013 20:53
    micmys
    Poziom 8  

    RTFQ2 niestety nie ma trybu uśpienia, SHT11 ma i zdaje się, że przechodzi w ten stan automatycznie (teraz to wyczytałem - mógłby ktoś potwierdzić?). Ewentualna dioda nie wymaga stabilnego zasilania. Ale niestety RTFQ2 wymaga, a i pobiera ok. 8 mA (w/g specyfikacji). W takim razie zastosuję ten tranzystor.
    Co do wait 2, to niestety, wiem że to kiepskie rozwiązanie, ale nie mam pomyssłu jak to inaczej rozwiązać :-(

    0
  • #4 29 Sty 2013 11:53
    snnaap
    Poziom 25  

    Każde odłączenie zasilania od układu jest lepsze niż obojętnie jaki tryb oszczędzania energii.
    Poza tym gdzieś chyba na elektrodzie był temat że SHT pozostawione pod napięciem potrafią się grzać co powoduje przekłamanie pomiarów temperatury-trzeba poszukać tematu.

    W czasie pomiaru wiatru tez można skorzysta z jakiegoś trybu uśpienia uK a wyście z kontaktronu podłączyć do INT0 lub INT1 które też wybudzi uK ze stanu uśpienia.

    Prądożernośc układu zależy też w dużym stopniu od prędkości oscylatora, jaki planujesz?
    oraz od napięcia zasilania - czy na pewno nie da się go obniżyć np do 3V?
    Normalne zasilanie dla nadajnika wynosi 3.3 dla SHT też a minimalne dla obu to ok 2.2 V tak więc 3V powinno im w zupełności wystarczyć.

    Jaka pojemność baterii planujesz zastosować?

    A kierunek wiatru?

    0
  • #5 29 Sty 2013 15:57
    micmys
    Poziom 8  

    Oscylator będzie niestety zewnętrzny 2MHz, ponieważ jak testowałem łączność RTFQ2 z RRFQ1 (UART), to kwarc wewnętrzny nie zapewniał wystarczającej stabilności i nie dawało rady przesłać danych. Baterie to będą 3 alkaliczne paluszki 1,5V. Największe napięcie minimalne ma nadajnik i jest to 2,5V (posiadam wersję R z wbud. stabilizatorem). Jednak w miarę rozładowywania się baterii napięcie będzie spadać.
    Faktycznie mogę użyć np. trybu idle z uruchomionym timerem, który będzie liczył czas i wybudzi procesor, jeśli nic się nie stanie przez np. 2 sekundy (brak wiatru).
    Co do pomiaru kierunku - zmierzenie tego byłoby dużo prostsze, ale jest to parametr dość nieistotny i łatwo mierzalny gołym okiem.
    P.S. Niestety nie mogę znaleźć tematu dot. grzania się SHT11

    0
  • #7 29 Sty 2013 20:15
    micmys
    Poziom 8  

    Dzięki :-) Nie mogłem znaleźć.
    Jasne, że tryb uśpienia pobiera więcej energii niż wyłączanie danego podzespołu, ale (jeśli jest) jego użycie jest zdecydowanie prostsze niż montowanie dodatkowego tranzystora i odcinanie napięcia, a pobór prądu w takim trybie jest zwykle znikomy (okolice 1µA).
    Jeszcze potestuję mojego SHT11 "na sucho", ale jeśli problem z grzaniem zaistnieje,to wtedy jego również podepnę przez tranzystor.
    A czy ten tranzystor to nie może być zwykły NPN małej mocy, np. BC 547 ?

    0
  • #8 30 Sty 2013 22:31
    micmys
    Poziom 8  

    Mój SHT11 wydaje się nie mieć tego problemu - włączyłem go na całą noc, nic się nie nagrzał, pobór prądu w spoczynku - 1µA, więc on może być podłączony cały czas :-)
    Gorzej, że RTFQ2 nie chce mi działać zasilany wprost z wyjścia procka (testuję na AtTiny2313), pomimo że jego pobór prądu to ok. 9mA, a woltomierz pokazuje mi napięcie na tym wyjściu i gnd...

    0
  • #9 03 Lut 2013 19:56
    micmys
    Poziom 8  

    W jaki sposób powinienem podłączyć te tranzystory TSM2301 do nadajnika i mikrokontrolera ?

    0