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? 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 cze 2025, o 21:02


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
    Autor Wiadomość
    PostNapisane: 25 maja 2015, o 22:14 
    Offline
    Nowy

    Dołączył(a): 25 maja 2015
    Posty: 1
    Pomógł: 0

    Witam,
    Chciałbym za pomocą Arduino stworzyć regulator temperatury powietrza, który będzie sterował pracą grzałki. Sterowanie będzie odbywało się w cyklu np 2s, w zależności od obliczonego sygnały sterującego grzałka będzie się włączać i wyłączać (np. syg. sterujący 50% - 1s grzałka on, 1s off). Do pomiaru temperatury wykorzystuję czujnik ds18b20. Problem pojawia się w momencie odczytywania wartości temp - 750ms odczytu zakłóca pracę całego cyklu. Pytanie, czy istnieje programowy sposób obejścia problemu? Bo z tego co się domyślam sprzętowym rozwiązaniem mogłaby być wymiana czujnika na analogowy (mogę się oczywiście mylić, dlatego prosiłbym o komentarz :P) - a w przypadku takiego rozwiązania, jaki czujnik byście polecili? Zakres 0 -40' C, rozdzielczość może być 0,5', i możliwie najszybszy czas reakcji na zmianę temperatury. Za wszelkie wskazówki będę wdzięczny.

    A tutaj kod z obecnym szkieletem projektu:

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



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 26 maja 2015, o 07:05 
    Offline
    Użytkownik

    Dołączył(a): 06 maja 2014
    Posty: 415
    Lokalizacja: Kraków
    Pomógł: 26

    Oczekujesz te 750ms na pomiar?
    Najlepiej zrobić to w przerwaniu jakimś - w momencie, gdy pomiar zostanie dokonany, odczytaj jego wartość.

    Ewentualnie można zmienić rozdzielczość przetwornika ds18b20 (datasheet, strona 8). Przy wymaganej przez Ciebie 0,5stopnia rozdzielczość może być mniejsza od 12 bit, a więc i czas się skraca.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 26 maja 2015, o 07:29 
    Offline
    Użytkownik

    Dołączył(a): 22 sty 2014
    Posty: 1806
    Zbananowany użytkownik

    Pomógł: 168

    Użyj czujnika LM35. Ma on dokładność 0,5 stopnia i czas reakcji pewnie taki jak DS18B20. No i jest analogowy więc wartość możesz zczytywać ciągle. Z tego co widziałem w tej bibliotece w tej funkcji:
    Składnia: [ Pobierz ] [ Ukryj ]
    język cpp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    jest pętla while która mieli się bez przerwy aż do dokonania konwersji. Możesz usunąć tą linijkę i sprawdzać w jakimś if'ie w programie czy dokonała się konwersja.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 26 maja 2015, o 08:07 

    Pomógł: 0

    paradaise1 - drugi mały procesor tylko do obsługi czujników ?



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

    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