Skocz do zawartości
totot3

Sterowanie serwo - czujnik przeszkód

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.

Udostępnij ten post


Link to post
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.

Udostępnij ten post


Link to post
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...