Skocz do zawartości

Czasowa konstrukcja warunkowa.


Zygzak

Pomocna odpowiedź

Cześć, na początku chciałbym zaznaczyć że nie wiem czy nazwa tematu jest adekwatna do problemu. Chciałbym napisać fragment kodu do robota (w kompilatorze Arduino) Który działał by tak że jeżeli przez kilka sekund nie zmieniła się pewna zmienna to opuszczał by bloki programu i przechodził dalej, a w przeciwnym wypadku wykonywał by to co jest między blokami.

Tutaj jest dokładnie o co mi chodzi (komentarz w capslocku):

#include <Servo.h> 

Servo myservo; 
Servo myservo2;                

int CM;            //odleglosc w cm
int ruch;          //zmienna od fotorezystora
long CZAS;         //dlugosc powrotnego impulsu w uS

void setup() 
{ 

 myservo2.attach(10);     // serwo podnoszące głowę 
 myservo.attach(9);       // serwo skręcające głowę

 pinMode(A1, INPUT);      //dane z fotorezystora 
 pinMode(11, OUTPUT);     // przekaźnik do ramienia
 pinMode(7, OUTPUT);      //przekaźnik manipulatora
 pinMode(6, OUTPUT);      //przekaźnik manipulatora
 pinMode(2, OUTPUT);      //ustawienie pinu 2 w Arduino jako wyjscie czujnika
 pinMode(3, INPUT);       //ustawienie pinu 3 w Arduino jako wejscie czujnika

 myservo.write(100);      // 100-spójrz przed siebie, 
 myservo2.write(80);      // 100-spójrz przed siebie, wyprostuj pochylenie

}
void loop() 
{
 pomiar_odleglosci();
 if(CM>15 && CM<30)
 {
  myservo.write(85);    
  myservo2.write(100);  
 }


 sprawdz();
 //fRAGMENT KODU PONIŻEJ MA ZOSTAĆ POMINIĘTY 
 //W SYTUACJI GDY W CIAGU 5 SKUND ZMIENNA ruch NIE ZMIENI SIĘ
 pomiar_odleglosci();
 if(CM>8 && CM<15)
 {
  chwyc();
 }



}


void chwyc()  //chwytanie prawym manilpulatorem
{
digitalWrite(7, HIGH);
delay(1050);
digitalWrite(7, LOW);
delay(2500);
digitalWrite(6, HIGH);
delay(1050);
digitalWrite(6, LOW);
}
void pomiar_odleglosci()
{
 digitalWrite(5, HIGH);       
 delayMicroseconds(10);
 digitalWrite(5, LOW);
 CZAS = pulseIn(4, HIGH);
 CM = CZAS / 58;               
}
void sprawdz()
{

ruch=analogRead(A1);
}
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.