Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA w 2025? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 6 kwi 2025, o 02:05


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 26 ] 
    Autor Wiadomość
    PostNapisane: 1 paź 2012, o 15:14 
    Offline
    Użytkownik

    Dołączył(a): 14 maja 2012
    Posty: 518
    Pomógł: 6

    nadajnik musi być malutki i zasilany z CR2032 lub mniejszej
    odbiornik na zasilacz 12V

    problem tkwi w nadajniku, który ma działać mozliwie jak najdłużej

    mam następujący algorytm:

    nadajnik śpi

    nadajnik wysyła sygnał "zalanie" (przerwanie z sondy podającej stan niski na INT0),
    wysyła tak długo, aż przyjdzie z odbiornika sygnał "zalanie_przyjalem"

    odbiornik po otrzymaniu sygnału "zalanie" i wysłaniu potwierdzenia "zalanie_przyjalem"
    wyje, aż do wyłączenia np. zasilania

    ... i to mam, tak działa i programowo i sprzętowo

    w czym problem?

    odbiornik robi swoje, a nadajnik niepotrzebnie zżera prąd, bo do czasu wytarcia sondy
    wciąż nadaje, że zalane

    ja bym chciał, aby nadajnik po wysłaniu i odebraniu potwierdzenia poszedł spać i zaczął
    czuwać dopiero po zniknięciu sygnału "zalanie" (wysuszeniu sondy)

    coś mi się wydaje, że chciałbym zjeść ciastko i mieć ciastko :)
    ktoś pomoże?

    ps. stosowałem różne flagi, ale może biała coś da :D



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 1 paź 2012, o 15:28 
    Offline
    Użytkownik

    Dołączył(a): 15 lut 2012
    Posty: 344
    Lokalizacja: Bydgoszcz
    Pomógł: 11

    wireless a rzuć okiem na tryb power down, chociażby jak zostało to wykonane w projekcie pilota w niebieskiej książce Mirka bo myślę że właśnie tam znajdziesz rozwiązanie(Mirek zastosował bibliotekę avr/sleep.h)

    Pozdrawiam!



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 1 paź 2012, o 15:44 
    Offline
    Użytkownik

    Dołączył(a): 14 maja 2012
    Posty: 518
    Pomógł: 6

    mój obecny algorytm usypia procesor w power down, a nawet robi power_all_disable,
    natomiast jak przychodzi przerwanie to procesor jest budzony,
    a ja bym chciał, żeby był budzony tylko raz, a następny raz ma się obudzić po wysuszeniu
    sondy i ponownym zalaniu

    czyli, bo może to źle tłumaczę:

    -sonda jest sucha, śpi
    -sonda mokra, budzi się, wysyła sygnał i czeka na potwierdzenie
    -sonda dalej mokra, ale ja chcę by dalej spał, bo odbiornik już o tym wie
    -sonda zostaje wysuszona, algorytm działa jak przed zalaniem

    zajrzę do tego pilota, ale tam nie ma chyba potrzeby zastosowania czegoś takiego



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 1 paź 2012, o 15:58 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 24 cze 2012
    Posty: 414
    Lokalizacja: Oborniki
    Pomógł: 5

    Nie wiem czy dobrze mysle, ale przerwanie powinno byc wyzwalane zboczem, a nie poziomem?

    _________________
    Pozdrawiam:
    Mikołaj



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 1 paź 2012, o 16:12 
    Offline
    Użytkownik

    Dołączył(a): 14 maja 2012
    Posty: 518
    Pomógł: 6

    nawet mam pojęcie o czym piszesz :) , ale co to za różnica co go obudzi?
    przestudiowałem nawet atomowość dostępu do danych, ale jakbym wyłączył
    przerwanie to co by go budziło :(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 1 paź 2012, o 17:50 
    Offline
    Użytkownik

    Dołączył(a): 14 maja 2012
    Posty: 518
    Pomógł: 6

    mikandrzej i GwynBleidD

    dzięki za pomysł i wyjaśnienie, spróbuję to zrealizować w programie



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 1 paź 2012, o 20:15 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 24 cze 2012
    Posty: 414
    Lokalizacja: Oborniki
    Pomógł: 5

    Spróbuj :) Podejrzewam, że to właśnie będzie to. Musisz dokładnie przestudiować notę PDF, przetłumaczyć sobie co nieco i będziesz wiedział o czym mowa :)

    Wyzwalanie zboczem kiepsko sprawdza się przy przyciskach, gdzie dochodzą drgania styków, ale przy wodzie podejrzewam, że coś takiego nie występuje.

    Pzdr

    _________________
    Pozdrawiam:
    Mikołaj



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 1 paź 2012, o 22:15 
    Offline
    Użytkownik

    Dołączył(a): 14 maja 2012
    Posty: 518
    Pomógł: 6

    TO JUŻ CHODZI ! dzięki jeszcze raz



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 2 paź 2012, o 10:51 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27366
    Lokalizacja: Szczecin
    Pomógł: 1043

    Panowie, Panowie .... przy pełnym uśpieniu procesora nie ma możliwości wybudzenia go zboczem jeśli chodzi o wejścia INT0 oraz INT1 ... :( można wybudzać go wtedy TYLKO i wyłącznie poziomem z tego co mi wiadomo. (jedynie INT2 jest asynchroniczne i wynika z PDF'a że może reagować na zbocze - więc to można spróbować - jeśli mamy w procku INT2.

    Jeśli zaś wireless piszesz że tobie działa wybudzanie zboczem na INT0 to znaczy tylko że albo go nie usypiasz tylko tak ci się wydaje albo nie usypiasz go do największej hibernacji najniższego poboru prądu.

    Weź sobie miernik (amperomierz w rękę) i spróbuj zmierzyć pobór prądu podczas tego uśpienia - napisz ile uA widzisz ?

    Być może coś źle piszę - bo tylko z doskoku ..... ale sprawdź to ok ?

    Poza tym do kodu pilota zajrzyj bo przyda się np wiedzieć o tym że normalnie (domyślnie) włączony jest komparator analogowy, który zjada niepotrzebnie sporo prądu gdy z niego się nie korzysta :( ... Warto też przejrzeć cały schemat pod kątem np niepotrzebnych i zbyt małych rezystorów podciągających czy czegokolwiek co zjada prądzik ;)

    dlatego ciekawy jestem szczerze do ilu uA uda ci się zejść i napisz jaki procek OK ?

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 2 paź 2012, o 16:59 
    Offline
    Użytkownik

    Dołączył(a): 14 maja 2012
    Posty: 518
    Pomógł: 6

    mam ATmega88 PA
    czy to, że w opisie jest taka tabelka (2313 też tak ma) nie oznacza, że INT0 może być wyzwalane zboczem?

    Table 13-2. Interrupt 0 sense control.
    ISC01 ISC00 Description
    0 0 The low level of INT0 generates an interrupt request
    0 1 Any logical change on INT0 generates an interrupt request
    1 0 The falling edge of INT0 generates an interrupt request
    1 1 The rising edge of INT0 generates an interrupt request

    na razie mam ok 3mA, ale w to mieszam rfm70, którego nie wiem czy dobrze usypiam,
    muszę bez rfm70 poćwiczyć usypianie i dopiero jak uda się zejść do uA, podłączyć nadajnik

    doczytałem, chociaż od tego mnie bolą oczy i głowa :)
    dla 2313: For INT0, only level interrupt - Power-down Mode :(
    w 88 też

    i co mi teraz poradzicie, aby algorytm spełniał moje wymagania?
    i wchodził w Power-down mode, się da?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 2 paź 2012, o 19:42 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 24 cze 2012
    Posty: 414
    Lokalizacja: Oborniki
    Pomógł: 5

    Może po prostu jak wybudzisz go pozniomem, to zrób co musisz i uśpij go z INT na poziom niski, a jak przejdzie w niski to tylko przestaw w wysoki i uśpij?

    _________________
    Pozdrawiam:
    Mikołaj



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 2 paź 2012, o 21:23 
    Offline
    Użytkownik

    Dołączył(a): 14 maja 2012
    Posty: 518
    Pomógł: 6

    przeprowadziłem testy bez nadajnika
    prąd przy 1MGz idealnie 0.1 uA

    zbocza działają tak jak trzeba, pewnie źle je ustawiałem i to nie są jednak zbocza,
    bo to niemożliwe przy tym poborze prądu

    przez pomyłkę zrobiłem sobie dobrze :lol:
    być może tak jak sugeruje mikandrzej,
    obejrzę to, bo zrobiłem to przez kopiowanie ;)

    Mirku, jeszcze gdybyś dorobił usypianie rfm70 do swoich bibliotek, to bym Cię ozłocił
    (taką cienką warstwą jak na płytki się daje, ale zawsze)
    Porzuć linuxa, tyle czasu straciłeś, nie idź tą drogą ;)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 2 paź 2012, o 22:01 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27366
    Lokalizacja: Szczecin
    Pomógł: 1043

    no 0.1 uA to już ładny wynik ;)

    a co do linuxa to jak widzisz zaparłem się jak osioł - jeszcze trochę powalczę ale znowu opadam z sił ;)

    odnośnie bibliotek dla RFM70 to będę musiał niedługo się za nie i tak wziąć ;) .... kurka wodna bo zbliża mi się pewien projekt, a też tym bardziej że nadchodzi koci RFM73 a RFM70 znika z rynku a co najgorsze różnią się :( .... jak mówił mi dostawca - aaaaa tam niewiele - tylko kilka rejestrów ;) ...... kuuuurza twarz - kilka rejestrów w tym bagnie to jest niestety morze .... no ale cóż też będę chyba zmuszony i to na dodatek właśnie też będę chyba musiał usypiać ;) go

    z drugiej strony - skoro testy na razie robisz to nie możesz spróbować dodać jednego tranzystorka i próbować odcinać programowo zasilanie do RFM70 na czas uśpienia ? a po wybudzeniu i włączeniu zasilania szybko go zainicjalizować i zrobić co trzeba dalej ?

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 2 paź 2012, o 22:14 
    Offline
    Użytkownik

    Dołączył(a): 14 maja 2012
    Posty: 518
    Pomógł: 6

    samo odcięcie zasilania mało daje, jeszcze coś obciąża, na spi pewnie, jakieś kilkanaście mA, ale może to z innego powodu, nie wiem,
    może podpowiedz co ustawić, aby było tak jak przed inicjalizacją nadajnika



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 2 paź 2012, o 22:57 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    Gwyn , ale na linuxowym avrdude niema tego problemu ... poczytaj
    Co do Eclipse ... nie chce mi się babrać z linuxem .... wystarczy jeden problem z windą
    a linuxów od podszewki mi starczy już na całe życie ... bo nie wydaje mi się żeby ten system był w stanie zaoferować
    zgodność z samym sobą choćby na poziomie win3.11 ... do puki to anarchia i samowolka ... szkoda czasu , dobre
    dla młodzieniaszków dla zabawy:)

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 3 paź 2012, o 13:04 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27366
    Lokalizacja: Szczecin
    Pomógł: 1043

    SunRiver napisał(a):
    ... bo nie wydaje mi się żeby ten system był w stanie zaoferować
    zgodność z samym sobą choćby na poziomie win3.11 ... do puki to anarchia i samowolka ... szkoda czasu , dobre
    dla młodzieniaszków dla zabawy:)


    hahaha ;) ... z jednej strony to powiem, że miło mi to słyszeć - bo jak się poddam, to wiem że nie miałem czego żałować ;) hahahaha ale świetne określenie

    Ale teraz się już nie oblałem kawą ze śmiechu, bo przezornie gdy zaczynam czytać to co napisał Sun a piję kawę to od razu śliniaczek zakładam hahaha

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 3 paź 2012, o 15:22 
    Offline
    Użytkownik

    Dołączył(a): 14 maja 2012
    Posty: 518
    Pomógł: 6

    moglibyście mi to przetłumaczyć na C?
    może uśpię rfm70

    How to make Power down mode current consumption is the lowest?

    BK2421 CSN need to set high, CE is set low, if the line, there are pull-up resistor, CLK and MOSI to be set high, if the line does not pull, CLK and MOSI to be set low. Please also note that pin MCU idle processing.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 3 paź 2012, o 15:57 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    Aby przełączyć RFM70 w tryb zmniejszonego poboru należy:

    Ustawić CSN w stan wysoki , CE w stan niski . Linie CLK i MOSI powinny być w stanie wysokim z załączonymi rezystorami podciągającymi
    Należy też pamiętać o tym żeby piny procesora były w stanie bezczynności .

    np tak:

    Składnia: [ Pobierz ] [ Ukryj ]
    język cpp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 3 paź 2012, o 16:02 
    Offline
    Użytkownik

    Dołączył(a): 14 maja 2012
    Posty: 518
    Pomógł: 6

    to nie jest język C ;)
    Sun nie czujesz, że jesteś w dziale rybnym? :lol:
    wszystkie piny mają być bezczynne? nie bardzo rozumiem

    moje ustawienia poniżej

    #define CE (1<<PB3)
    #define CSN (1<<PB4)
    #define MOSI (1<<PB5)
    #define MISO (1<<PB6)
    #define SCK (1<<PB7)

    #define SPI_DIR DDRB
    #define SPI_PORT PORTB
    #define SPI_PIN PINB



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 3 paź 2012, o 16:13 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    zerknij wyżej ...

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 3 paź 2012, o 16:24 
    Offline
    Użytkownik

    Dołączył(a): 14 maja 2012
    Posty: 518
    Pomógł: 6

    miałem tak jak niżej i to nie dawało 3 uA, czy to to samo?
    czy miałem jakiś błąd?

    void rfm70_mode_powerdown( void )
    {
    unsigned char value;

    SPI_PORT &= ~CE; // CE=0;
    value = SPI_Read_Reg(CONFIG);
    value &= 0xFD; // clear PWR_UP bit
    SPI_Write_Reg(CONFIG, value);
    }



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 3 paź 2012, o 16:37 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    no dobrze , ale musisz spełnić powyższe warunki które podaje nota
    czyli na SPI żadnej transmisji piny CLK i MOSI podciągnięte pullupem do VCC stan HI
    i BK2421 CSN w stanie wysokim , a CS na LOW

    najprościej zamiast negować sygnał CS ustalić go w stan LOW na czas wyłączenia RFM-a

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 3 paź 2012, o 16:50 
    Offline
    Użytkownik

    Dołączył(a): 14 maja 2012
    Posty: 518
    Pomógł: 6

    będę próbował, dzięki



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 3 paź 2012, o 18:20 
    Offline
    Użytkownik

    Dołączył(a): 14 maja 2012
    Posty: 518
    Pomógł: 6

    ustawiłem co trzeba i chyba jest dobrze, z naciskiem na chyba,
    napięcie stoi jak drut, ale jak próbuję podłączyć się szeregowo :) w zasilanie
    to układ rfm70 nie startuje chociaż procesor działa (led),
    amperomierz pokazuje duży prąd - 10mA
    co robię nie tak?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 3 paź 2012, o 21:31 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    RMF-70 pobiera sporo obniż mu moc nadawania

    tu masz tabelkę :

    Obrazek

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 3 paź 2012, o 21:38 
    Offline
    Użytkownik

    Dołączył(a): 14 maja 2012
    Posty: 518
    Pomógł: 6

    ale to jakiś "głupi" pomiar, w uśpieniu rfm, nadajnik nie startuje jak wchodzę z amperomierzem
    robiłem wcześniej testy bez nadajnika i mierzyło się normalnie, było 0.1 uA, z sondą zalaną 3 uA



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    Wyświetl posty nie starsze niż:  Sortuj wg  
    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 26 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


    Nie możesz rozpoczynać nowych wątków
    Nie możesz odpowiadać w wątkach
    Nie możesz edytować swoich postów
    Nie możesz usuwać swoich postów
    Nie możesz dodawać załączników

    Szukaj:
    Skocz do:  
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO