• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Sterowanie serwo - czujnik przeszkód
#3
nie będzie działać ponieważ serwo działa niezależnie od arduino na podstawie sygnału jaki otrzymuje a dostaje tylko 2 pozycje i będzie działało dopóki ich nie osiągnie .

myservo.write(0);
myservo.write(90);

Tu masz poprawnie jak to powinno wyglądać i działać

Kod:
#include <Servo.h>
Servo myservo;
int PrzeszkodaPin = 8;  
int przeszkoda = HIGH;  
int pos = 10;
int minimum = 0; // serwo skrajna pozycja
int maximum = 90; // serwo skrajna pozycja
int czas_otwarcia = 2000;

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");
    pos = maximum ;
    myservo.write(pos);
    delay(czas_otwarcia);
}
  
if (przeszkoda == HIGH){     // zamykanie jeżeli ma być przerwane to musi być na bieżąco
  Serial.println("nieobecny");  // sprawdzany stan czujnika a tylko ruch krok po kroku na to pozwoli
  for ( pos = pos ; pos > minimum ; pos--){  // dlatego ruch powrotny jest w pętli
    if ( pos < minimum )pos = minimum;
       myservo.write(pos);  
    if (przeszkoda== LOW)break;
    }
  }
}
Ważne aby robić co się lubi albo lubić co się robi .
Arduino UNO, TINY, PRO MINI
Pomoc nagradzamy punktami reputacji Wink
 
Odpowiedź
  


Wiadomości w tym wątku
Sterowanie serwo - czujnik przeszkód - przez totot3 - 26-05-2016, 18:05
RE: Sterowanie serwo - czujnik przeszkód - przez JasQ - 27-05-2016, 12:11

Skocz do:


Przeglądający: 1 gości