01-12-2017, 13:32
(Ten post był ostatnio modyfikowany: 05-12-2017, 14:43 przez CEO.
Powód edycji: Używamy znaczników [code] i edytować poprzedni wpis, nie tworzyć jednego pod drugim
)
(01-12-2017, 13:18)krn78 napisał(a): 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):
Tak to chyba będzie wyglądać.Kod:int czas;
Potem, gdzieś w loopie:
if(sygnał z czujnika<jakaś wartość){
czas=millis();
if((sygnał z czujnika<jakaś wartość)&&(millis()-czas>5000){
digitalWrite(jakisPin, HIGH);
}
}
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() {
pinMode(8, OUTPUT);
pinMode(7, INPUT_PULLUP);
digitalWrite(8, LOW);
}
void loop()
{
if (digitalRead(7)== LOW){
delay(5000);
digitalWrite(8, HIGH);
} else {
digitalWrite(8, LOW);
}
}
Działa jednak po jakimś czasie załącza pin 8 nawet kiedy obiekt nie przykrywa czujnika przez 5s