Quantcast
Channel: Forum Pasja Informatyki - Najnowsze pytania bez odpowiedzi
Viewing all articles
Browse latest Browse all 21996

Odwołanie się do innej funkcji w funkcji loop()

$
0
0

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(). Jak to ustawić? Może są jakieś spece od joysticków :D

#define joystick_x A0


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()
{
odczyt_x = analogRead(joystick_x);

if(odczyt_x < 507)
{
stopp();
}
if(odczyt_x > 511)
{
  forward(sspeed);
}
}
//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
}

 


Viewing all articles
Browse latest Browse all 21996

Latest Images