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

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • 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.