Skocz do zawartości

Problem z trybem automatycznej regulacji temperatury w arduino


Radzio_

Pomocna odpowiedź

@Radzio_  akurat mam nieco czasu więc napisz dokładnie do czego służą te przekaźniki i jakoś opisz jakieś dziwne cyfry , które to pojawiły się - są to jakieś stałe do sensorów ?? Napisz wszystko krok po kroku , oraz napisz czy temperatura ma się trzymać tych 40 - 49 stopni Cencjusza ? Czym więcej napiszesz tym lepiej. 

Link do komentarza
Share on other sites

Dnia 19.11.2024 o 20:04, _LM_ napisał:

to mi się nie podoba, te układy są do 120°C (nie wiem nie sprawdzałem dokładnie) raczej dałbym tam termoparę lub PTC bo ds może nie wytrzymać zbyt długo w tych warunkach.

Co do kodu, mniejsza teraz o czujniki. Twoim problemem w tym przypadku są wszechobecne delaye, chcąc "upłynnić" działanie swojego programu musisz zapoznać się z timerami, funkcją millis i maszyną stanów. Są na forbocie odpowiednie artykuły na ten temat - pozwól że nie przytoczę linków znajdziesz to bez problemu - w każdym razie twój sterownik jest wykonalny i będzie działał ale wymaga zmiany podejścia do pisania softu nie jest to trudne w końcu i ja się nauczyłem oraz wielu innych programistów. Także zacznij od tematów wielowątkowości musisz przez to przebrnąć i niema że boli

Delaye są tylko na samym początku przy wyzwalaniu trybu, po wyzwoleniu manual bądź auto, są tam funkcje millis, delayów brak, bo tak to by to nie działało..., co do DS, on nie dostanie wyższej temperatury niż 50*C , a jest pod dachem wszystko także nic mu się nie stanie, w końcu jest w obudowie wodoszczelnej...

Link do komentarza
Share on other sites

23 godziny temu, Santiago napisał:

@Radzio_  akurat mam nieco czasu więc napisz dokładnie do czego służą te przekaźniki i jakoś opisz jakieś dziwne cyfry , które to pojawiły się - są to jakieś stałe do sensorów ?? Napisz wszystko krok po kroku , oraz napisz czy temperatura ma się trzymać tych 40 - 49 stopni Cencjusza ? Czym więcej napiszesz tym lepiej. 

Tłumacząc od początku... Mamy 4 przekaźniki:
1 wentylator
2 świeca
3 wolny(przynajmniej na razie)
4 elektrozawór gazu (NC)
Stałe które pojawiają się w programie typu manual, automat, blokada_gaz, alarmH, instrukcja, itp itd to są te, którymi steruje się klawiaturą, czyli jesli klikniesz przycisk to zmienia się wartość o 1 przez co arduino zmienia dane na wyświetlaczu adekwatne do danej wartości, w przypadku kliknięcia trybu auto bądź manual, pojawia się funkcja delay, bo tam w niczym to nie przeszkadza... Po upływie czasu przechodzi do wybranego trybu poprzedzonego buzzerem. W manualu, sterujesz wentylatorem i świecą z poziomu klawiatury, 1 załączasz 2 wyłączasz wentylator, 3 włączasz 6 wyłączasz świecę żarową, sam gaz odblokowuje się po uruchomieniu sterownika. Natomiast w każdym z trybów (stałe: manual, automat) jest zapis od czujnika natężenia światła, który odpowiada właśnie za czuwanie nad tym cofnięciem się gazu, jesli takowe nastąpi czyli wyskoczy ponad 50(nie mam kodu odpalonego więc jadę z pamięci) to wyłącza przekaźnik elektrozaworu odcinając gaz, po czym wywala błąd E2 tym samym zmieniając wartości stałych (manual1, automat1) na 0 wyłączając możliwość sterowania do czasu odblokowania przyciskiem, po odblokowaniu program wraca do stanu działania czyli wartość w danym trybie wraca na 1 i można sterować dalej. Termopara patrzy tylko czy jest ogień czy nie, bo ma z góry ustawioną wartość na 30*C by nie spalić świecy, a czujnik DS siedzi w kapilarce w wędzarni patrząc na temperaturę. Tyle z manuala. W automacie sprawa ma się bardziej rozlegle. Pojawia się przełącznik na kluczyk odpowiadający za blokadę nastaw, czyli jest to funkcja, gdzie w przypadku odblokowania można z klawiatury przyciskiem 7 wywołać menu nastaw, tam możesz ustawić parametry: 
> temperatura w wędzarni
> temperatura awaryjna(błąd E1, o tym później)
> temperatura wyłączenia świecy żarowej
Jeśli przełącznik jest w innej pozycji, nie ma możliwości dokonania nastawy.
Po uruchomieniu trybu odpala się wentylator na odpowiednie obroty w zależności od temperatury w wędzarni, czyli załączenie przekaźnika 1, podanie napięcia na przetwornicę a z niej na regulator IRF, by regulować obroty. Załącza się również przekaźnik 2 odpowiadający za świecę żarową. I otwiera się elektrozawór od gazu. Jeśli pojawi się ogień i temperatura skoczy do tych 30*C świeca żarówa się wyłącza a wentylator rozpala dalej ogień by dobić do zadanej wartości (domyślnie 40*C, dorobiłem histerezę +/- 2*C), jeśli dobije zadaną wartość, schodzi z obrotów i czeka na spadek temperatury, jeśli spadnie, cykl się powtarza. Natomiast w przypadku przegrzania.... czyli temperatura powyżej 500*C(zmieniłem to bo zapomniałem hehe) wyłącza wentylator i wyrzuca błąd o przegrzaniu, czyli znów zmienia wartość stałej automat na 0 a po skasowaniu przyciskiem wraca na 1 i do pracy. W przypadku uszkodzenia czujnika ognia(termopara) wywali błąd E3 z braku odczytu z niego. Z każdego trybu możesz wyjść klikając D na klawiaturze, zostanie wyświetlony komunikat czy chcesz wyjść czy zostać, wartości odpowiednich stałych zmieniają się na 0 i 1(tryb w którym wyświetla się komunikat o potwierdzeniu wyjścia) zatrzymując aktualny tryb. Po kliknięciu C wraca wartość na 1 i komunikat znika wracając do pracy. Klikając 0 sterownik zeruje wartości i wraca do menu startowego z wyborem trybu pracy, bądź wyświetleniem instrukcji. ^^ Mam filmik jak to działa więc mogę podesłać. 

  • Lubię! 1
Link do komentarza
Share on other sites

Dużo linii niemal jednakowego kodu dotyczy wyświetlania na lcd. Gdybyś upchął to do funkcji z pętlą, przyjmującą tablicę opisów jako argument, powtarzających się wierszy znacznie by ubyło.

Robotę możesz sobie też ułatwić prostymi "komentarzami debugującymi", które wyświetlisz w serialu, typu "jestem tu, robię to, wartość x=..."

Zajrzyj do książki "Symfonia C++" Jerzego Grębosza. Nie jest "najświeższą pozycją", ale przystępnie napisaną, uczyłem się z niej kiedyś. Z funkcji biblioteki arduino umiesz już korzystać, więc twój kod może zyskać na przejrzystości.

  • Lubię! 1
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

56 minut temu, orb777 napisał:

Dużo linii niemal jednakowego kodu dotyczy wyświetlania na lcd. Gdybyś upchął to do funkcji z pętlą, przyjmującą tablicę opisów jako argument, powtarzających się wierszy znacznie by ubyło.

Robotę możesz sobie też ułatwić prostymi "komentarzami debugującymi", które wyświetlisz w serialu, typu "jestem tu, robię to, wartość x=..."

Zajrzyj do książki "Symfonia C++" Jerzego Grębosza. Nie jest "najświeższą pozycją", ale przystępnie napisaną, uczyłem się z niej kiedyś. Z funkcji biblioteki arduino umiesz już korzystać, więc twój kod może zyskać na przejrzystości.

Aż ogarnę sobie tą książkę, no jak na mój 1 taki obszerny projekt to się cieszę że to działa tak jak zamierzałem... ale co do samej optymalizacji itp to porażka, jak uświadomili mnie koledzy...

Link do komentarza
Share on other sites

@_LM_, bardziej miałem na myśli elementy C++, jak funkcje w tym zagadkowe "void", sposób działania, jak używać, na co zwrócić uwagę, czyli takie podstawy. Kolega Radzio sporo się napracował opierając całość o if-y, za to szacun. O "Symfonii C++" wspomniałem, ponieważ sam zacząłem od niej naukę dosyć dawno temu, z wieloma "przerwami" w tym hobby, jako, że programistą nie jestem. Mam nadzieję, że nie sprowadzi to nikogo na manowce, hehe.

Link do komentarza
Share on other sites

@orb777 rozumiem 🙂 myślę że przejście kursu arduino z forbota plus co sugerowałem wcześniej a propo wielowatkowosci również pomoże koledze rozwiązać problem z makaronem w programie 

Link do komentarza
Share on other sites

18 godzin temu, _LM_ napisał:

@orb777 rozumiem 🙂 myślę że przejście kursu arduino z forbota plus co sugerowałem wcześniej a propo wielowatkowosci również pomoże koledze rozwiązać problem z makaronem w programie 

A i owszem :D 

Link do komentarza
Share on other sites

(edytowany)
10 godzin temu, Santiago napisał:

@Radzio_ podeślij film.

Tu pokazałem jak to wygląda
https://www.dropbox.com/scl/fi/asrvyq7vsh9ubpn8gqq9m/w-dzarnia.mp4?rlkey=ea98shvhoe0p31nob67wjy33z&st=migviwwb&dl=0 
Tu masz jak odpalił się wentylator, żeby podbić temperaturę:
https://www.dropbox.com/scl/fi/p75k45mscllmcpngybqnn/Messenger_creation_88C79807-04F5-43BD-8179-6A08D65B4ADB.mp4?rlkey=q7ybxjapfo78khl5m18obov1g&st=nc7yee4q&dl=0

W gruncie rzeczy wentylator i cała komora spalania pochodzi z Eberspachera D5S-F (cyfrowo sterowany hydronic II) ze szrotu, wymontowałem płaszcz wodny, wydrukowałem obudowę wentylatora żeby nad nim złączyć kable i podłączyć gaz, sam kocioł to stary bojler 100l, rury fi100 kupione z castoramy, tak samo jak zasuwa i kolanko nastawne w środku, komin też fi 100, przepustnica, kolanka, daszek, rury z casto, termometry również, około 25 zł za sztukę(Ten do 500 z allegro za 40 zł), za orurowanie dałem około 500 zł, wędzarnia spawana ładnych parę lat temu wyszła około 800 zł. Sterownik zbudowany za jakieś 300-500 zł, jakoś tak to było (liczone z okablowaniem, reduktorem i wężami).

Edytowano przez Radzio_
Link do komentarza
Share on other sites

@Radzio_ Powiem ci szczerze , że na ten rok nieomal zakończyłem to co zamierzałem (z wynikiem nie zbyt dobrym). Dlatego mam nieco czasu na zapoznanie się z tematem. 

Wracając z pracy na rowerze podczas małej mżawki (przy tej temperaturze 3C nieprzyjemne) , znalazłem dość poważny błąd. (w sumie 2 i ten drugi jeszcze gorszy). 

No ale jutro po raz 3 rzucę okiem na kod i przemyślę wszystko.

CZEKAM NA FILM oraz na wytłumaczenie tych tajemniczych c= 23232.23223....prędkość światła mierzysz tam ?

Link do komentarza
Share on other sites

4 minuty temu, Santiago napisał:

c= 23232.23223....prędkość światła mierzysz tam ?

To były stałe do ustawienia wentylatora, bawiłem się metodą prób i błędów i zapomniałem skasować haha.

Link do komentarza
Share on other sites

I ostatnie pytanie na dziś (jutro wstaję przed 4), z tego co czytałem wędzarnia powinna być szczelna, aby nie uciekała temperatura oraz aby dym dobrze rozprowadzał się po mięsie. Cyrkulacja wewnątrz zalecana , ale z tego co napisałeś to dym powinien zostać usuwany ... , może źle zrozumiałem - w końcu nigdy niczego nie wędziłem, ani nie miałem nigdy bezpośredniego kontaktu z wędzarnią. 

Opisz też jak przebiega cykl wędzenia mięsa, kiełbasy, ryb. Czyli czas, temperatura. Czy zawsze musi być stała temperatura ? Czy cyrkulacja powietrza wewnątrz musi się zmieniać ? (to mi się wydaje bezsensowne - ponieważ zawsze powinna być taka sama). I orientacyjny czas dla wyżej wymienionych (no chyba , że jutro z kodu do wyciągnę 🙂 )

Edytowano przez Santiago
Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.