crroo Napisano Listopad 20, 2016 Udostępnij Napisano Listopad 20, 2016 Witam. Dopiero zacząłem zabawę z Arduino. Przerabiam kursy i jest to bardzo dobra nauka. Potrzebuję zbudować układ, który sczytuje impulsy z miernika przepływu wody (na pinie 2) i jeśli jest jakiś przepływ to załączone jest wyjście 13 , a jesli przepływ jest 0 przez 10 s to wyłącza 13 a włącza 12. Program: word steps; void setup() { Serial.begin(9600); pinMode(2, INPUT_PULLUP); attachInterrupt(0, onStep, FALLING); } void loop() { } void onStep() { static unsigned long lastTime; unsigned long timeNow = millis(); if (timeNow - lastTime < 50) return; steps++; Serial.println(steps); lastTime = timeNow; } ze strony: http://blog.nettigo.pl/post/95970460553/licznik-na-przerwaniach zlicza mi impulsy z miernika przepływu i wyświetla na monitorze, ale nie wiem jak teraz to przerobić żeby sterować wyjściami 12 i 13. Bardzo proszę o podpowiedź. __________ Komentarz dodany przez: Treker Kody programów należy umieszczać przez narzędzie KOD (znajdziesz je w edytorze pod ikonką "<>"). Dzięki niemu składania programów jest automatycznie kolorowana, a wtedy wszystkim znacznie łatwiej analizować wklejone programy. Proszę to poprawić - z góry dziękuję za zrozumienie i pomoc przy utrzymaniu porządku na forum. Link do komentarza Share on other sites More sharing options...
marek1707 Listopad 20, 2016 Udostępnij Listopad 20, 2016 Podpowiedź 1: zastanów się co to znaczy "..jeśli przepływ jest 0 przez 10 s.." w kontekście tego czujnika i opisz swoje przemyślenia. Następna podpowiedź zależy od tego co wymyślisz. Link do komentarza Share on other sites More sharing options...
crroo Listopad 21, 2016 Autor tematu Udostępnij Listopad 21, 2016 Oznacza to że czujnik nie daje impulsów na wejście 2 przez min 10s. Czyli na wejściu 2 jest stan HIGH przez min 10 s. Ale nie wiem co z tym dalej zrobić Link do komentarza Share on other sites More sharing options...
deshipu Listopad 21, 2016 Udostępnij Listopad 21, 2016 Może zacznij od tego jak sprawdzić ile impulsów było w ciągu ostatnich 10 sekund? 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
crroo Listopad 21, 2016 Autor tematu Udostępnij Listopad 21, 2016 Do moich potrzeb nie muszę wiedzieć ile było impulsów w ciągu 10 sekund. Może zasłabło opisałem co potrzebuję zbudować. A więc tak: układ, sczytuje impulsy z miernika przepływu wody na pinie 2 jeśli woda przepływa to miernik daje impulsy (nie ważne ile ich jest) , natomiast przy braku przepływu dostaję ciągły sygnał HIHG i wtedy program czeka przez 10 s i wyłącza 13 a włącza 12. Później chciałbym rozbudować układ żeby na LCD wyświetlał aktualny przepływ wody, ale to jest już nadprogramowe zadanie (jak bardziej opanuję Arduino 😉 Link do komentarza Share on other sites More sharing options...
deshipu Listopad 21, 2016 Udostępnij Listopad 21, 2016 No dobra, to jak sprawdziłbyś czy w ciągu ostatnich 10 sekund był jakiś impuls? Link do komentarza Share on other sites More sharing options...
crroo Listopad 21, 2016 Autor tematu Udostępnij Listopad 21, 2016 if (digitalRead(2) == HIGH && (i trwa to 10s) digitalWrite(12, HIGH); //Włącz diodę 12 } else { digitalWrite(13, LOW); //Wyłącz diodę 13 Link do komentarza Share on other sites More sharing options...
marek1707 Listopad 21, 2016 Udostępnij Listopad 21, 2016 Niepotrzebny nam jest jakiś kod, rozumiemy po polsku a Ty zapewne umiesz w nim pisać nawet lepiej niż w C, prawda? To zapomnij na razie o komputerach i powiedz co Ty byś zrobił, gdybyś miał w ręku np. stoper lub zegarek i chciał wykryć sytuację gdy na przystanku nie było autobusu przez 10 minut. Link do komentarza Share on other sites More sharing options...
crroo Listopad 21, 2016 Autor tematu Udostępnij Listopad 21, 2016 Włączam stoper i mierzę czas przez 10 min Link do komentarza Share on other sites More sharing options...
deshipu Listopad 21, 2016 Udostępnij Listopad 21, 2016 I co robisz jak przyjedzie w tym czasie autobus? Link do komentarza Share on other sites More sharing options...
crroo Listopad 21, 2016 Autor tematu Udostępnij Listopad 21, 2016 Stop na stoperze i odczytuję czas przyjazdu Link do komentarza Share on other sites More sharing options...
deshipu Listopad 21, 2016 Udostępnij Listopad 21, 2016 I jak to pomaga w czymkolwiek? Link do komentarza Share on other sites More sharing options...
crroo Listopad 21, 2016 Autor tematu Udostępnij Listopad 21, 2016 To jak to mam zrobić? Link do komentarza Share on other sites More sharing options...
deshipu Listopad 21, 2016 Udostępnij Listopad 21, 2016 Nie wiem, ty nam powiedz. Link do komentarza Share on other sites More sharing options...
crroo Listopad 21, 2016 Autor tematu Udostępnij Listopad 21, 2016 Jak obrotomierz. z tym ze jeśli "obroty" spadną do 0 to włączy wy 12 Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
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ę »