czujnik - arduino - 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: czujnik - arduino (/watek-czujnik-arduino) Strony:
1
2
|
czujnik - arduino - josseff - 30-11-2017 Witam, bardzo proszę o pomoc - wskazówkę w kodzie Podłączyłem czujnik do mojego Arduino i mam tylko jeden problem - chciałbym aby jeden z pinów przechodził w tryb HIGH dopiero kiedy czujnik jest zakryty przez okres 5s. Jeśli obiekt przykryje czujnik na krótszy czas wtedy pin ma pozostać LOW Bardzo proszę o wyrozumiałość i wskazówki RE: czujnik - arduino - krn78 - 01-12-2017 Nie wiemy jaki czujnik, nie wiemy jaki pin. Podaj jakikolwiek schemat, bo nie jesteśmy jasnowidzami. Generalnie kod będzie wyglądał następująco (to tylko algorytm, więc będziesz musiał większość napisać sam): Kod: int czas; RE: czujnik - arduino - josseff - 01-12-2017 (01-12-2017, 13:18)krn78 napisał(a): Nie wiemy jaki czujnik, nie wiemy jaki pin. Podaj jakikolwiek schemat, bo nie jesteśmy jasnowidzami. Witam, bardzo dziękuję za odpowiedź i przepraszam za brak konkretów jest to czujnik indukcyjny NPN - sygnał 0V Sygnał z czujnika podpięty jest do pinu 7 (wejście) a pin 8 służy jako wyjście Dziękuję i doceniam każdą wskazówkę Kod jaki napisałem to Kod: void setup() { Działa jednak po jakimś czasie załącza pin 8 nawet kiedy obiekt nie przykrywa czujnika przez 5s RE: czujnik - arduino - krn78 - 01-12-2017 Zrób tak: Kod: int czas; RE: czujnik - arduino - josseff - 01-12-2017 (01-12-2017, 14:39)josseff napisał(a):Niestety nie działa tak jak potrzebuję(01-12-2017, 13:54)krn78 napisał(a): Zrób tak: Z jakiegoś powodu przy tym kodzie daje mi 1.2V na pin 8 kiedy jest HIGH i kiedy już raz pin przechodzi w stan HIGH to potem za kazdym razem kiedy czujnik jest zakryty na sekundę pin 8 też przechodzi w stan HIGH Naprawdę bardzo doceniam pomoc RE: czujnik - arduino - namok - 01-12-2017 Pseudokod: jeśli (czujnik == 1) to czas=millis(); kasuj wyjście jeśli (millis() - czas > 5s) to ustaw wyjście RE: czujnik - arduino - josseff - 01-12-2017 (01-12-2017, 15:06)namok napisał(a): Pseudokod: Witam i dziękuję za zainterseowanie i pomoc Wtej chwili kod wygląda tak Kod: int czas; Problem jest tylko jeden - po kilkudziesięciu krótkich sygnałach z czujnika (poniżej 5s) pin 8 przechodzi w tryb HIGH za każdym razem kiedy czujnik daje sygnał RE: czujnik - arduino - namok - 01-12-2017 Zamień mój pseudokod na program i będzie działało tak jak oczekujesz. RE: czujnik - arduino - krn78 - 04-12-2017 (01-12-2017, 15:06)namok napisał(a): Pseudokod:Nie do końca, bo ustawienie wyjścia ma się odbyć, jeśli przycisk będzie wciśnięty przez dłużej niż pięć sekund. W tym przypadku wyjście ustawi się pięć sekund po naciśnięciu przycisku, nawet jeśli będzie puszczony. Jeśli dolny warunek jest wnętrzem górnego, to też nie zadziała, bo czas przy każdej pętli zmienna czas będzie przyjmować nową wartość. RE: czujnik - arduino - namok - 04-12-2017 Pseudokod jest prawidłowy. Wciśnięty przycisk(zadziałany czujnik) daje na wyjściu sygnał niski. |