Witam,
to mój pierwszy post na forum więc serdecznie wszystkich witam.

Mnie do stworzenia termostatu zmusiła sytuacja. Okazyjnie zakupiłem nastoletnią chłodziarkę przemysłową Vestfrost, taka sklepowa lodówka na napoje. Okazało się, że temperatura chłodzenia jest zbyt niska i nawet wbudowany termostat z regulacją nie był w stanie zapewnić oczekiwanych warunków pracy - od 10 do 15°C. Poza tym wentylator wymuszający obieg powietrza pracuje ciągle, co uważam za niedopuszczalne - z uwagi na hałas oraz nieefektywną wymianę powietrza (i ciepła). Stąd pomysł na termostat oparty o mikrokontroler.
Kiedyś miałem styczność z BASCOMem, choć na co dzień działam w PHP. Znalazłem stronę Pana Mirka, kursy Eagla, jeszcze jakieś blogi o mikrokontrolerach. Zamówiłem na aukcji wyświetlacz lcd 128x64 na płytce z Atmega8, wyprowadzeniami do DS18B20 i goldpinami do programatora (ok. 60 zł + wysyłka). Nawet wgrany był wsad pokazujący temperaturę z 4 czujników Dallasa - na początek starczy, czego chcieć więcej?

Aha... 4 microswitche też są.
Założyłem, że program ma realizować następujące funkcję:
- sprawdzanie temperatury w lodówce,
- włączanie/wyłączanie agregatu w odpowiednim momencie,
- włączanie/wyłączanie wentylatora z opóźnieniem w stosunku do agregatu,
- wyświetlanie temperatury wraz z rysowaniem wykresu (tyle pikseli w lcd nie może się marnować

),
- regulacja temperatury maksymalnej i minimalnej (włączającej i wyłączającej agregat),
- regulacja opóźnienia wł/wył. wentylatora,
- wyświetlanie stanu pracy (czy włączony agregat/wiatrak, temp. min, max, aktualna).
Do obsługi wyświetlacza wykorzystałem biblioteki u8g. Debouncing klawiszy znalazłem na blogu o mikrokontrolerach. Szybko okazało się, że 8 kB pamięci to wcale nie jest dużo i dały znać o sobie moje braki w znajomości C. Obecnie program jest "na styk" a chciałbym go jeszcze rozbudować (automatyczna histereza, zapis ustawień w eeprom). Z nieba spadł mi kurs C++ kolegi Mokrowski, po którym jeszcze szczęki nie mogę znaleźć - praca jaką włożył w przygotowanie tutoriali iście tytaniczna. Przyznam bez bicia, że zarejestrowałem się tylko co by te listingi zobaczyć

. Mam nadzieję, że po przepisaniu programu do C++ i uporządkowaniu wszystkiego, wywalczę jakiś wolny kB może dwa

.
Od razu chciałbym zaznaczyć, że w C jestem początkujący. Ostatni program w tym języku pisałem jakieś 10 lat temu i to na PC. Z uC styczności nie miałem chyba jeszcze dłużej, a i tak był to BASCOMowy Basic. Stąd też prośba - gdyby ktoś z bardziej obeznanych kolegów wychwycił jakieś herezje czy kombinacje alpejskie - będę bardzo wdzięczny za uwagi.
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Obecnie próbuję przetrawić wcześniej wspomniany kurs C++ i przepisać wszystko od nowa, tak jak się to powinno w cpp robić. A propos estetyki kodu - co sądzicie o Ruby w uC? Zawracanie głowy czy warte spróbowania?
Zdaje się, że też wpadłem w ten mikrokompot

.
Pozdrawiam
