Skocz do zawartości

Sterowanie serwo - czujnik przeszkód


totot3

Pomocna odpowiedź

Witam,
Próbuję sterować ruchami silnika serwo przy wykorzystaniu czujnika przeszkód do sterowania drzwiami. Napisałem krótki program w tym celu: gdy czujnik nie wykrywa przeszkody serwo wykonuje ruch, natomiast jeżeli na czujniku pojawia się przeszkoda to serwo powinno się zatrzymać. Program działa poprawnie, ale niestety nie tak jak chciałbym 😋. Nie działa on gdy przeszkoda zostaje wykryta w trakcie ruchu - wtedy serwo powinno zatrzymać się w pewnym punkcie - jak najszybciej, ale w moim przypadku zatrzymuje się ono dopiero na końcu zakresu swojego ruchu.

#include <Servo.h>
Servo myservo;
int PrzeszkodaPin = 8;  
int przeszkoda = HIGH;  
int pos = 0; 
void setup() {
pinMode(2,OUTPUT);
myservo.attach(3);
pinMode(PrzeszkodaPin, INPUT_PULLUP);
Serial.begin(9600);

}

void loop() {

 przeszkoda = digitalRead(PrzeszkodaPin);
 if (przeszkoda== LOW)
 {
   Serial.println("obecny");
 }
 else
 {
  Serial.println("nieobecny");
          myservo.write(0);
          delay(1000);
          myservo.write(90);  
          delay(1000);
 }
}

Mógłbym liczyć na jakieś wskazówki z waszej strony? Chciałbym, aby nastąpiła reakcja serwa w czasie rzeczywistym i gdy przeszkoda znika z pola czujnika, to serwo ruszałoby dalej.

Link do komentarza
Share on other sites

Bez zagłębiania się w bibliotekę "Servo.h": kiedy masz stan "nieobecny", dwa razy używasz "delay(1000);", czyli łącznie upływa czas 2s zanim ponownie zostanie sprawdzony czujnik i warunek.

Link do komentarza
Share on other sites

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!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.