Sterownik wędzarni

Projekt zrealizowany z użytkownikiem @Rafał

Rys. 1. Schemat podłączeń elementów sterownika wędzarni.

Link do symulacji:

https://wokwi.com/projects/402925149826920449

Opis projektu

Projekt ma na celu automatyczne sterowanie procesem wędzenia potraw w domowej wędzarni. Sterownik kontroluje temperaturę za pomocą czujnika DS18B20, reguluje grzanie przez przekaźnik oraz prędkość wentylatora PWM. Użytkownik może ręcznie wybierać różne etapy procesu (ustawienia temperatury, czasu i wentylatora) przyciskiem, a cały przebieg jest wizualizowany na wyświetlaczu LCD I²C.

Uwaga: Na schemacie zamiast wentylatora wykorzystano diodę LED (wentylator nie był dostępny w bibliotece elementów). W tym miejscu należy podłączyć sterownik lub tranzystor wentylatora — nie podłączaj wentylatora bezpośrednio do pinów Arduino, ponieważ grozi to ich uszkodzeniem!



Podłączenie do Arduino

Nazwa Pin Opis
czujnik_DS18B20 7 OneWire – pomiar temperatury
przekaźnik_grzanie 5 Wyjście do sterowania elementem grzewczym
wentylator_PWM 3 Wyjście PWM – regulacja prędkości wentylatora
przycisk_tryb 2 Wejście z przycisku wyboru trybu (INPUT_PULLUP, PCINT18)
LCD_SDA A4 I²C SDA – linia danych dla wyświetlacza LCD
LCD_SCL A5 I²C SCL – linia zegara dla wyświetlacza LCD


Kod programu:

Kod_000


Wytłumaczenie kodu programu:

1. Nagłówki bibliotek i makra

W tej sekcji dołączamy niezbędne biblioteki oraz definiujemy makro do ustawiania bitów w rejestrach AVR.

Kod_002

2. Zmienne globalne i obiekty sprzętowe

Tu deklarujemy wszystkie zmienne sterujące trybem pracy, tablice z parametrami etapów oraz obiekty dla wyświetlacza i sensora.

Kod_003

3. Funkcja setup()

Konfiguracja początkowa: Timer1 co sekundę, LCD, sensor, przycisk z przerwaniami oraz wyjścia.

Kod_004

4. Główna pętla loop()

Odczyt temperatury, wyświetlanie trybu, algorytm histerezy i sterowanie wentylatorem przez PWM.

Kod_005

5. Przerwanie Pin-Change (PCINT2_vect)

Obsługa przycisku na pinie 2 z filtrem drgań styków (debounce).

Kod_006

6. Przerwanie Timer1 (TIMER1_COMPA_vect)

Wywoływane co sekundę – dekrementacja licznika i przejście do kolejnych etapów.

Kod_007

7. Funkcja wyświetlania wyswietlanie_trybu()

Rysuje na LCD aktualny proces lub ręczne ustawienia etapu.

Kod_008

Instrukcja zmiany parametrów wędzenia

Poniżej instrukcja krok po kroku wraz z przykładami, jak zmienić ustawienia etapów w oryginalnym kodzie sterownika.

  1. Otwórz plik z kodem w Arduino IDE (lub innym edytorze).
  2. Zlokalizuj definicje tablic zawierających parametry etapów:
    Kod_009 – oryginał
  3. Przykład 1: zmiana parametrów etapu 3
    Chcemy, aby etap 3 pracował w 55 °C przez 600 s z wentylatorem 40 %:
    Kod_010 – przykład dla etapu 3
  4. Przykład 2: zmiana parametrów etapów 1 i 2
    Chcemy, aby etap 1 trwał 20 s przy 45 °C i wentylator 15 %, a etap 2 – 18 s przy 55 °C i wentylator 30 %:
    Kod_011 – przykład dla etapów 1 i 2
  5. Zapisz zmiany i wgraj program na płytkę Arduino.
  6. Weryfikacja w trakcie pracy:
    • Uruchom sterownik.
    • Przejdź przyciskiem „Tryb” do „Ust. Etap_X” odpowiadającego zmienionemu etapowi.
    • Sprawdź na LCD nowe wartości temperatury, czasu i wentylatora.
    • Wciśnij „Tryb” ponownie, aby wrócić do automatycznego cyklu („Proces: Etap_X”).

W ten sposób możesz precyzyjnie dostosować dowolny etap wędzenia, zmieniając tylko odpowiednie elementy w tablicach bez ingerencji w inne fragmenty kodu.



Dalsze kroki i możliwe usprawnienia

Poniżej kilka pomysłów, jak rozbudować i udoskonalić sterownik wędzarni:

  • Dodanie przycisków – umożliwi nawigację po menu i ręczne zmienianie parametrów bez potrzeby podłączania Arduino do komputera.
  • Dodanie pamięci EEPROM – pozwoli zachować wprowadzone ustawienia (temperatury, czasy etapów, prędkość wentylatora) nawet po wyłączeniu zasilania.
  • Regulacja PID zamiast prostej histerezy – pozwoli na płynniejsze i bardziej precyzyjne utrzymanie zadanej temperatury z mniejszymi odchyleniami.
  • Logowanie danych na kartę SD lub do wewnętrznej pamięci – archiwizacja przebiegu temperatury, czasu i ustawień wentylatora do późniejszej analizy.
  • Rozbudowane menu na LCD – stworzenie hierarchicznego interfejsu, w którym użytkownik może definiować i zapisywać własne profile wędzenia.
  • Łączność bezprzewodowa (Bluetooth/Wi-Fi) – zdalne monitorowanie i sterowanie z poziomu smartfona lub komputera.
  • Alarmy i powiadomienia – wizualne i dźwiękowe sygnały ostrzegawcze lub wysyłanie powiadomień SMS/e-mail po zakończeniu cyklu lub w razie krytycznego odchylenia temperatury.
  • Kalibracja czujnika – możliwość ręcznego lub automatycznego dostrajania czujnika DS18B20 w celu zwiększenia dokładności pomiarów.
  • Funkcje bezpieczeństwa – automatyczne wyłączenie grzałki w razie awarii wentylatora, zwarcia lub braku detekcji temperatury.
  • Dynamiczne profile etapów – możliwość definiowania dowolnej liczby etapów oraz zapisywania ich do późniejszego użycia.

Wprowadzenie tych usprawnień pozwoli na bardziej precyzyjną i komfortową obsługę wędzarni oraz na zbieranie wartościowych danych do dalszej optymalizacji procesu.