Arduino Polska Forum
Jak w pętli loop() odnieść się do innych pętli. - Wersja do druku

+- Arduino Polska Forum (https://forum.arduinopolska.pl)
+-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino)
+--- Dział: Piaskownica (https://forum.arduinopolska.pl/dzial-piaskownica)
+--- Wątek: Jak w pętli loop() odnieść się do innych pętli. (/watek-jak-w-p%C4%99tli-loop-odnie%C5%9B%C4%87-si%C4%99-do-innych-p%C4%99tli)



Jak w pętli loop() odnieść się do innych pętli. - marcelh2o - 30-08-2016

Cześć, chciałbym sterować czterema silnikami za pomocą joysticka tylko nie potrafię napisać poprawnie w funkcji loop żeby np: Jeśli joystick zostanie przesunięty w górę to odwoła się do funkcji void forward(), a jeśli w dół to do funkcji void backward(). Czyli w prostych słowach jak w funkcji loop() odowałać się do innych pętli. Jak to ustawić? Może są jakieś spece od joysticków Big Grin   dodam że moja funkcja loop jest totalnie źle napisana więc do zmiany :p
Kod:
const int joystick_x =0;
int val = 0;


const int motor11 = 2; //silnik lewy przód
const int motor12 = 4;

const int motor21 = 7; //silnik lewy tył
const int motor22 = 8;

const int motor31 = 12; //silnik prawy przód
const int motor32 = 13;

const int motor41 = 3; //sinik prawy tył
const int motor42 = 6;
const int enablePin = 5; //pin do zmiany prędkości
int sspeed;
int odczyt_x;
void setup()
{
 Serial.begin(9600);
 //ustawiam silniki jako wyjścia
 pinMode(motor11, OUTPUT);
 pinMode(motor12, OUTPUT);
 pinMode(motor21, OUTPUT);
 pinMode(motor22, OUTPUT);
 pinMode(motor31, OUTPUT);
 pinMode(motor32, OUTPUT);
 pinMode(motor41, OUTPUT);
 pinMode(motor42, OUTPUT);
}

void loop()
{
 val=analogRead(joystick_x);
 val=map(val,0,1023,101,200);
 speed
 



}
//pętla dla pojazdu w bezruchu
void stopp()
{
 digitalWrite(motor11, LOW);
 digitalWrite(motor12, LOW);
 digitalWrite(motor21, LOW);
 digitalWrite(motor22, LOW);
 digitalWrite(motor31, LOW);
 digitalWrite(motor32, LOW);
 digitalWrite(motor41, LOW);
 digitalWrite(motor42, LOW);
}

//pętla dla pojazdu jadącego do przodu
void forward(int sspeed)
{
 digitalWrite(motor11, HIGH);
 digitalWrite(motor12, HIGH);
 digitalWrite(motor21, LOW);
 digitalWrite(motor22, LOW);
 digitalWrite(motor31, HIGH);
 digitalWrite(motor32, HIGH);
 digitalWrite(motor41, LOW);
 digitalWrite(motor42, LOW);
 analogWrite(enablePin, sspeed); //pin do zmiany prędkości
}

//pętla dla pojazdu jadącego do tyłu
void backward(int speed)
{
 digitalWrite(motor11, LOW);
 digitalWrite(motor12, LOW);
 digitalWrite(motor21, HIGH);
 digitalWrite(motor22, HIGH);
 digitalWrite(motor31, LOW);
 digitalWrite(motor32, LOW);
 digitalWrite(motor41, HIGH);
 digitalWrite(motor42, HIGH);
 analogWrite(enablePin, sspeed); //pin do zmiany prędkości
}



RE: Jak w pętli loop() odnieść się do innych pętli. - adix - 30-08-2016

Kod:
void loop()
{
val=analogRead(joystick_x);
val=map(val,0,1023,101,200);
speed
if (val<140 && val>50){
  forward();
}



}
Tu masz przyklad.