Problem z IF - Wersja do druku +- Arduino Polska Forum (https://forum.arduinopolska.pl) +-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino) +--- Dział: Piaskownica (https://forum.arduinopolska.pl/dzial-piaskownica) +--- Wątek: Problem z IF (/watek-problem-z-if) |
Problem z IF - chomiczek - 03-04-2016 Witajcie, trochę mi głupio, że zaczynam taki wątek, bo pewnie rozwiązanie jest banalne, ale już pisze z czym mam problem (na co dzień zajmuje się programowaniem w PHP). A mianowicie podpiąłem sobie czujnik temperatury i wszystko ładnie mi zczytuje, przelicza na Celsiusze, etc. Chciałem sobie zrobić 'zapamiętywanie' wartości minimalnych i maksymalnych. utworzyłem zmienne typu double i mam taki kawalek kodu: Kod: void loop() { no i wychodzi z tego, że zmienna tempMin ma zawsze wartość 0.00 :/ co robię źle, albo o czym zapomniałem? RE: Problem z IF - JasQ - 03-04-2016 Jeżeli masz na początku programu tempMin zdeklarowane jako float tempMin = 0 ; a termometr nie osiągnął mniej niż zero to będziesz miał minimalną 0.00 dopóki nie spadnie poniżej zera . Dodaj do setup() to co dopisałem powinno być ok bo przed programem głównym wartości min i max zostaną ustawione względem aktualnego odczytu z czujnika a nie 0. Kod: setup(){ RE: Problem z IF - chomiczek - 03-04-2016 hmm.. działa, ale teraz pytanie dlaczego działa? widzę, że val jest 2 razy definiowana/przypisywana? Dlaczego? RE: Problem z IF - JasQ - 04-04-2016 Bo jak napisałem wyżej pierwsza "tempMin" była zdeklarowana jako zero a po poprawce już nie startowała jako 0 tylko jako val = analogRead(A1); temp = Termometr(val); tempMin = tempMax = temp; Czyli początkowa temperatura dla programu min , max i aktualna była taka sama . Nie zdefiniowana 2x użyta a to różnica , program setup() jest wykonywany tylko raz i w ciągu tego razu wstawiamy w linijce "tempMin = tempMax = temp;" dla temperatury min i max aktualną wartość a nie 0 jak miałeś wcześniej . W pętli loop() będzie a wartość min i max rozchodziła się zgodnie z założeniem programu . |