BlackJack Listopad 19, 2019 Udostępnij Listopad 19, 2019 (edytowany) Ja bym zaś proponował sobie najpierw czujnik wyskalować, czyli zdjąć jego charakterystykę. Z tego co widzę to bardzo proste urządzonko, które zwraca... no właśnie co? Napięcie. prąd ? w jakim zakresie? Jak zdejmiesz sobie charakterystykę, to przynajmniej nie będziesz zgadywał wartości, no i będziesz wiedział jak, się to zachowuje, w warunkach eksploatacji. Edytowano Listopad 19, 2019 przez BlackJack Cytuj Link do komentarza Share on other sites More sharing options...
macizet Listopad 19, 2019 Udostępnij Listopad 19, 2019 43 minuty temu, ethanak napisał: Będzie. Ten z pierwszego posta też będzie. Oba będą działać źle (Twój lepiej, ale nie całkiem dobrze). Zacznijmy jeszcze inaczej: pokazujesz początkującemu użytkownikowi kod, informując go że coś tam robi (w tym przypadku, że powyżej 200 pompka jest wyłączona). Pokaż dokładnie miejsce w kodzie, gdzie jest to sprawdzane. Bo faktycznie, powyżej 200 pompka jest wyłączona. Powyżej 175 też. A nawet powyżej 1020. Mamy IF, które będzie załączać pompkę jeśli poziom spadnie poniżej 150. I teraz zauważyłem błąd, że zamiast dać jakieś sprawdzanie czy jest 200 to będzie cały czas oscylować wokół 150, a co za tym idzie pompka dostanie szału z włączaniem się i wyłączaniem. ZGADZA SIĘ? czyli histerezy tak naprawdę nie ma zaraz poprawię Cytuj Link do komentarza Share on other sites More sharing options...
ethanak Listopad 19, 2019 Udostępnij Listopad 19, 2019 29 minut temu, macizet napisał: ZGADZA SIĘ? Zgadza się 🙂 Cytuj Link do komentarza Share on other sites More sharing options...
macizet Listopad 19, 2019 Udostępnij Listopad 19, 2019 A ogółem można użyć do tego dwa IF ? Cytuj Link do komentarza Share on other sites More sharing options...
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. 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
ethanak Listopad 19, 2019 Udostępnij Listopad 19, 2019 13 minut temu, macizet napisał: A ogółem można użyć do tego dwa IF Jeden ale piętrowy. jeśli za mało to włącz; inaczej jeśli za dużo to wyłącz Cytuj Link do komentarza Share on other sites More sharing options...
Chumanista Listopad 19, 2019 Udostępnij Listopad 19, 2019 (edytowany) void setup(){ pinMode(11, OUTPUT); } void loop(){ while(analogRead(A1) > 150); digitalWrite(11, HIGH); while(analogRead(A1) < 200); digitalWrite(11, LOW); } podpowiem że średniki za while są istotne 😉 Edytowano Listopad 19, 2019 przez Chumanista Cytuj Link do komentarza Share on other sites More sharing options...
ethanak Listopad 19, 2019 Udostępnij Listopad 19, 2019 @Chumanistadawno takiego potworka nie widziałem 🙂 Teraz dorób do tego regulację temperatury... A poza tym warunek początkowy to sam z siebie się weźmie? Jesteś na 100% pewien, że pinMode(11, OUTPUT) ustawi zero na pinie 11? Cytuj Link do komentarza Share on other sites More sharing options...
macizet Listopad 19, 2019 Udostępnij Listopad 19, 2019 @BlackJack czujniki poziomu wody do arduino są najczęściej analogowe, poza tym liniowe, A co za tym idzie, nie ma konieczności ustalania nie wiadomo czego. Cytuj Link do komentarza Share on other sites More sharing options...
Chumanista Listopad 19, 2019 Udostępnij Listopad 19, 2019 (edytowany) @ethanakcieszę się że mogłem poprawić Twój dzień 😉 pinMode tylko ustawia DDRX w trochę dookoła sposób a PORTX na ATmegach jest domyślnie wyzerowany. Fakt, można lepiej ale chciałem minimum linijek 😉 void setup(){ pinMode(11, OUTPUT); digitalWrite(11, LOW); } void loop(){ if (digitalRead(11) && analogRead(A1) > 200){ digitalWrite(11, LOW); else if (!digitalRead(11) && analogRead(A1) < 150){ digitalWrite(11, HIGH); } //cokolwiek innego tutaj } Jeszcze lepiej byłoby sprawdzać stan w przerwaniu żeby nie nalać za dużo jakby jakiś inny kod wykonywał się za długo ale to powinno działać 😉 @macizet teoretycznie tak, ale i tak lepiej sprawdzić na sucho jakie powinny być limity. Edytowano Listopad 19, 2019 przez Chumanista Cytuj Link do komentarza Share on other sites More sharing options...
ethanak Listopad 19, 2019 Udostępnij Listopad 19, 2019 6 minut temu, Chumanista napisał: cieszę się że mogłem poprawić Twój dzień 😉 Przynajmniej chwila uśmiechu w czasie czekania od szóstej rano, aż Imć Pan Kurier raczy wrzucić mi paczuszkę z Botlandu do paczkomatu 🙂 Ciekawe, czy dzisiaj jeszcze to dostanę... Cytuj Link do komentarza Share on other sites More sharing options...
macizet Listopad 19, 2019 Udostępnij Listopad 19, 2019 raczej nie 🤣 34 minuty temu, Chumanista napisał: PORTX na ATmegach jest domyślnie wyzerowane Co do tego nie jestem pewien. Cytuj Link do komentarza Share on other sites More sharing options...
Chumanista Listopad 19, 2019 Udostępnij Listopad 19, 2019 11 minut temu, macizet napisał: Co do tego nie jestem pewien. Gdyby tylko dało się to sprawdzić... Cytuj Link do komentarza Share on other sites More sharing options...
macizet Listopad 19, 2019 Udostępnij Listopad 19, 2019 ok Cytuj Link do komentarza Share on other sites More sharing options...
ethanak Listopad 19, 2019 Udostępnij Listopad 19, 2019 @Chumanistaczy tak jest w każdym mikrokontrolerze? Jeśli w dokumentacji biblioteki (w tym przypadku Wiringa/Arduino) nie mam wyraźnie napisane, że po resecie jest zero na wyjściu to zakładam, że jest hgw co i włos mi z głowy nie spadnie, jak wrzucę jedną instrukcję zerującą wyjście. Mała redundancja nikomu jeszcze nie zaszkodziła 🙂 Cytuj Link do komentarza Share on other sites More sharing options...
marek1707 Listopad 19, 2019 Udostępnij Listopad 19, 2019 Akurat w AVR tak jest, że rejestry DRR i PORT są zerowane przez sygnał RESET a kombinacja DDRn=0 i PORTn=0 daje konfigurację pinu jako wejście bez pullup. To się wydaje bezpieczne, ale nie jest to regułą. Są mikrokontrolery które włączają sobie na pinach pullup (więc widzisz de facto słabą jedynkę) albo takie w których pin co prawda jest wejściem, ale rejestr portu jest nieokreślony więc jeśli przełączysz tylko kierunek na wyjście bez zapisu do rejestru "danych" to dostaniesz stan przypadkowy. Podejrzewam, że na przestrzeni historii i w mnogości układów zrobiono i wykorzystano już wszystkie możliwości jakie tylko mogą nam przyjść do głowy. I dlatego zawsze warto.. RTFM 😉 1 Cytuj Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
Dołącz do dyskusji, napisz odpowiedź!
Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!