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 1 maja 2025, o 01:27


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 11 ] 
    Autor Wiadomość
    PostNapisane: 22 gru 2015, o 07:18 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 02 kwi 2015
    Posty: 450
    Pomógł: 3

    Witam!

    Proszę o sprawdzenie poprawności zapisu funkcji do wyliczania wysokości n.p.m. na podstawie ciśnienia atmosferycznego. Nie działa Rzutowanie na float - błąd kompilacji. Rzutowanie na uint16_t - zwraca wynik -21206. Funkcja BMP180_getp() zwraca wartość typu long. Podstawiane wartości: Po-101325Pa (poziom morza), P-99247Pa (u mnie). Spodziewany wynik 250m n.p.m. Wzór na wysokość z noty katalogowej czujnika BMP180.
    Obrazek
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Pozdrawiam



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 gru 2015, o 08:34 
    Offline
    Użytkownik

    Dołączył(a): 05 kwi 2014
    Posty: 339
    Pomógł: 10

    Ja mam w bibliotece tak:

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


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



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 gru 2015, o 09:29 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 02 kwi 2015
    Posty: 450
    Pomógł: 3

    wchpikus napisał(a):
    return ((1 - pow(bmp085_rawpressure/(double)101325, 0.1903 )) / 0.0000225577) + BMP085_UNITMOFFSET;

    Dziękuję bardzo.
    Napisz proszę skąd pochodzi wartość /0.0000225577 (we wzorze jest: 44330*) oraz co dodajesz do wyniku (BMP085_UNITMOFFSER)?
    Pozdrawiam

    P.S. Czy jest to biblioteka ze strony: https://github.com/mkschreder/martink/b ... s/bmp085.c i czy działa z czujnikiem BMP180?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 gru 2015, o 11:54 
    Offline
    Użytkownik

    Dołączył(a): 05 kwi 2014
    Posty: 339
    Pomógł: 10

    Podsyłam pliki, jest to od BMP085, ale powinna biblioteka pasować.
    Może są rożne adresy, trzeba sprawdzić w specyfikacji..

    BMP085.c

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


    BMP085.h

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



    Działa tylko z biblioteka I2C:
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


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



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 gru 2015, o 13:30 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 02 kwi 2015
    Posty: 450
    Pomógł: 3

    wchpikus napisał(a):
    Podsyłam pliki, jest to od BMP085, ale powinna biblioteka pasować.
    Może są rożne adresy, trzeba sprawdzić w specyfikacji..

    Wielkie dzięki!
    Jak tylko wrócę do domu wieczorkiem to odpalę bibliotekę i dam znać.
    Pozdrawiam



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 gru 2015, o 15:28 
    Offline
    Użytkownik

    Dołączył(a): 05 kwi 2014
    Posty: 339
    Pomógł: 10

    Nie zapomnij o bibliotekach:
    #include <math.h>
    #include <stdbool.h>



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 gru 2015, o 16:36 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 02 kwi 2015
    Posty: 450
    Pomógł: 3

    wchpikus napisał(a):
    Nie zapomnij o bibliotekach:
    #include <math.h>
    #include <stdbool.h>

    Ok. Dzięki.
    Reasumując tworzę następujące pliki biblioteczne:
    BMP085.c i BMP085.h np. w folderze BMP085 (obsługa czujnika)
    i2cmaster.c i i2cmaster.h w foderze BMP085_I2CFLEURYPATH, który jest inkludowany w BMP085.c (obsługa I2C)
    Czy dobrze to rozumiem?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 gru 2015, o 17:34 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 17 mar 2014
    Posty: 334
    Lokalizacja: Rybnik
    Pomógł: 55

    avrfun napisał(a):
    Napisz proszę skąd pochodzi wartość /0.0000225577 (we wzorze jest: 44330*)

    Podstawy matematyki, mnożenie to dzielenie przez odwrotność. 1/0.0000225577 = 44330.7606715, więc blisko 44330, które jest zapisane jako mnożenie. Nie wiem, czy jest to wartość dokładniejsza, czy autor biblioteki się pomylił -nie zaglądałem do dokumentacji.

    _________________
    Amatorska stacje meteorologiczna



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 gru 2015, o 19:27 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 02 kwi 2015
    Posty: 450
    Pomógł: 3

    anonimowy napisał(a):
    Podstawy matematyki, mnożenie to dzielenie przez odwrotność. 1/0.0000225577 = 44330.7606715, więc blisko 44330, które jest zapisane jako mnożenie. Nie wiem, czy jest to wartość dokładniejsza, czy autor biblioteki się pomylił -nie zaglądałem do dokumentacji.

    Dziekuję.
    Czy mógłbyś wspomóc mnie w " C prawidłowym" zapisaniu wzoru do wyliczania wysokości (jak w pierwszym poście). Próbuję zapisać go na różne sposoby bez powodzenia, a problem jest najpewniej w rzutowaniu. Komunikaty kompilatora to np. invalid operands to binary / (have 'long int (*)(void)' and 'long int').



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 gru 2015, o 19:44 
    Offline
    Użytkownik

    Dołączył(a): 05 kwi 2014
    Posty: 339
    Pomógł: 10

    szczerze to nie sprawdzałem wysokości, nie miałem potrzeby.
    Ciśnienie działa ok.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 gru 2015, o 19:50 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 02 kwi 2015
    Posty: 450
    Pomógł: 3

    wchpikus napisał(a):
    szczerze to nie sprawdzałem wysokości, nie miałem potrzeby.

    Chodzi mi o prawidłowe zapisanie w C wzoru na wysokość n.p.m., aby kompilator nie krzyczał.



    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: 11 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

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


    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:  
    cron
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO