25 October 2013

Joystick with pushbutton control code

int ledPin = 13;
int joyPinX = 5;                
int joyPinY = 4;              
int sw = 7;

int valueX = 0;                
int valueY = 0;
int state_old = 0;
int state_new = 1;
int counter = 1;
int k = 0;        //modulo for counter switch

void setup() {
  pinMode(ledPin, OUTPUT);
  pinMode(sw, INPUT_PULLUP);  
  Serial.begin(9600);
 }

 void loop() {
 
  valueX = analogRead(joyPinX);  
  delay(100);
  valueY = analogRead(joyPinY);
  state_old = digitalRead(sw);
 
  if (valueY > 700){
    if (valueX < 300) Serial.print("Left");
    if (valueX > 700) Serial.print("Right");
    if (valueX <=700 && valueX >= 300) Serial.print("Reverse");
  }
 
  if (valueY < 300){
    if (valueX < 300) Serial.print("Left");
    if (valueX > 700) Serial.print("Right");
    if (valueX <=700 && valueX >= 300) Serial.print("Forward");
  }
 
  if (valueY <= 700 && valueY >= 300){
    if (valueX < 300) Serial.print("Left");
    if (valueX > 700) Serial.print("Right");
    if (valueX <=700 && valueX >= 300) Serial.print("Stop");
  }
  Serial.println();
  if (state_old != state_new) counter=counter+1;
 
  k=counter%2;
  if (k==0) digitalWrite(ledPin, HIGH);
  if (k==1) digitalWrite(ledPin, LOW);
 
  Serial.print(k);
  Serial.print(" ");
  Serial.print(counter);
  Serial.println();
 }

No comments: