Skocz do zawartości

Program Arduino obsługa przycisku


pawelkucz

Pomocna odpowiedź

int trigPin = 11;
int echoPin = 12;

//silnik lewy

int silnik1 = 7;
int silnik2 = 8;

// silnik prawy


int silnik3 = 2;
int silnik4 = 4;
 
int dist;
 
void setup() {
pinMode(1 , INPUT_PULLUP);
  pinMode(silnik1,OUTPUT);
  pinMode(silnik1,OUTPUT);
   
  pinMode(silnik2,OUTPUT);
  pinMode(silnik2,OUTPUT);
  Serial.begin (9600);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
if (digitalRead(1) == HIGH) {
 silnik1_stop ();
 silnik2_stop ();
}




} 

 

 
void loop() {
  
 odleglosc() ;
   
  if (dist < 60 ) {
    silnik1_tyl(); 
    silnik2_przod();
  }
  else {
    silnik1_przod();
    silnik2_przod();
  }
   
  if (dist < 15) {
    silnik2_tyl();
    silnik1_tyl();
  } 

if (digitalRead(1) == HIGH) {
 silnik1_stop ();
 silnik2_stop ();
} 


   
   
}
 
 
void silnik1_przod() {
  digitalWrite(silnik1,HIGH);
  digitalWrite(silnik2,LOW);
}
 
void silnik1_tyl() {
  digitalWrite(silnik2,HIGH);
  digitalWrite(silnik1,LOW);
}
 
void silnik1_stop() {
  digitalWrite(silnik2,LOW);
  digitalWrite(silnik1,LOW);
}
 
void silnik2_przod() {
  digitalWrite(silnik3,HIGH);
  digitalWrite(silnik4,LOW);
}
 
void silnik2_tyl() {
  digitalWrite(silnik4,HIGH);
  digitalWrite(silnik3,LOW);
}
 
void silnik2_stop() {
  digitalWrite(silnik4,LOW);
  digitalWrite(silnik3,LOW);
}
 
 
void odleglosc() {
   
  long duration, distance;
  digitalWrite(trigPin, LOW);  // Added this line
  delayMicroseconds(2); // Added this line
  digitalWrite(trigPin, HIGH);
 
  delayMicroseconds(10); // Added this line
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = (duration/2) / 29.1;
 
  Serial.print(distance);
  Serial.println(" cm");
   
  delay(20);
   
  dist = distance;
 
} 

Proszę pomocy. Chciałbym żeby po naciśnięciu guzika robot startował i po ponownym naciśnięciu stawał .

Link do komentarza
Share on other sites

@pawelkucz Witam serdecznie na forum.

Spróbuj napisać program, który wykrywa zbocze sygnału - czyli pamiętasz że ostatnio na przycisku był stan 0 a teraz jest 1 to coś zrób. Możesz do tego posłużyć się pomocniczą zmienną, która będzie pamiętać ostatnio odczytany stan.

Następnie może przydać Ci się inna zmienna, która będzie informować o aktualnym stanie start/stop. Jeżeli ostatnio był start to teraz stop i odwrotnie. Możesz to zrealizować zmienną boolowską i przełączając jej stan na przeciwny przy wykryciu tego co opisałem wyżej.

Temat przenoszę do działu o Arduino.

Edytowano przez Gieneq
Link do komentarza
Share on other sites

40 minut temu, Gieneq napisał:

@pawelkucz Witam serdecznie na forum.

Spróbuj napisać program, który wykrywa zbocze sygnału - czyli pamiętasz że ostatnio na przycisku był stan 0 a teraz jest 1 to coś zrób. Możesz do tego posłużyć się pomocniczą zmienną, która będzie pamiętać ostatnio odczytany stan.

Następnie może przydać Ci się inna zmienna, która będzie informować o aktualnym stanie start/stop. Jeżeli ostatnio był start to teraz stop i odwrotnie. Możesz to zrealizować zmienną boolowską i przełączając jej stan na przeciwny przy wykryciu tego co opisałem wyżej.

Temat przenoszę do działu o Arduino.

Dziekuje.

 

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.