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 9 kwi 2025, o 13:17


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
    Autor Wiadomość
    PostNapisane: 18 maja 2021, o 20:46 
    Offline
    Użytkownik

    Dołączył(a): 19 lut 2020
    Posty: 52
    Pomógł: 0

    Czołem!
    Niemalże skończyłem programować urządzenie które w kilku krokach podgrzewa wodę do zadanej temperatury. Na chwilę obecną zatrzymałem się na zero-jedynkowym uruchamianiu grzałki - i tu właśnie jest problem. Jeśli chcę podgrzać wodę do 30 stopni to grzałka włącza się na 100% i gdy woda uzyska temperaturę 30 stopni to się wyłącza, ale jak wiadomo dalej oddaje swoje ciepło, więc zamiast 30 stopni mam np 50. Kiedyś natrafiłem na gotową bibliotekę sterowania PID, ale nie mogę jej namierzyć. Jest ktoś w stanie podpowiedzieć, a najlepiej zarzucić jakimś kodem który mógłbym zmodyfikować pod siebie?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 maja 2021, o 09:26 
    Offline
    Użytkownik

    Dołączył(a): 26 mar 2014
    Posty: 34
    Pomógł: 11

    http://ww1.microchip.com/downloads/en/Appnotes/Atmel-2558-Discrete-PID-Controller-on-tinyAVR-and-megaAVR_ApplicationNote_AVR221.pdf

    pid.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.


    pid.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.


    main.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.


    Autor postu otrzymał pochwałę


    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 20 maja 2021, o 06:49 
    Offline
    Użytkownik

    Dołączył(a): 08 wrz 2012
    Posty: 505
    Pomógł: 6

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


    Co to jest, co tu się dzieje?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 20 maja 2021, o 06:58 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 29 lis 2019
    Posty: 145
    Pomógł: 37

    Cytat z noty aplikacyjnej: "To increase the accuracy the p_factor, i_factor, and d_factor are scaled with a factor 1:128. The result ofthe PID algorithm is later scaled back by dividing by 128. The value 128 is used to allow for optimizing inthe compiler."
    Spokojnie, procek nie operuje na floatach, skalowanie odbywa się podczas kompilacji i wszystkie obliczenia są wykonywane na zmiennych całkowitych. Dlatego też funkcja pid_init nie przyjmuje tych współczynników jako parametrów tylko przypisywane są, przez makro, bezpośrednio do zmiennej.

    _________________
    Think for yourself and question authority.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 20 maja 2021, o 09:18 
    Offline
    Użytkownik

    Dołączył(a): 08 wrz 2012
    Posty: 505
    Pomógł: 6

    Ja właśnie chciałem dopytać, bo nigdzie flotów nie widzę a w kodzie są jakieś 1,123 i nie bardzo mogłem zrozumieć, jak to się zamienia.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 11 paź 2021, o 17:00 
    Offline
    Użytkownik

    Dołączył(a): 19 lut 2020
    Posty: 52
    Pomógł: 0

    Po kilku miesiącach walki z tym kodem poddaje się, chyba spróbuję zrobić kod na IFach bo to nijak mi nie działa i nawet nie wiem od której strony się dobrać. Dzięki za info tak czy inaczej!



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

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