Final Codes - nataliacatalan/Arduino-Project GitHub Wiki

Here you can find the main results of our project. We've created a theoretical code, with all the steps we wanted the product to do and another one practical. We couldn't make the theoretical code work because of the problems we had with the bluetooth and with the sensors. This theoretical code contains both, the angel figure or the loop and the bucle. The parctical code, the one we were able to make it work, contains the main part of the code, the part that executes the correction of the figure. This code don't work with the skate because of the lack of precision, that's why we could't complete the task properly.

Theoretical Code

int led1R
int led1G
int led1B
int led2R
int led2G
int led2B
int led3R
int led3G
int led3B
int sensor1
int sensor2
int sensor3
int startangel
int valorS1;
int valorS1;
int valorS1;
int startmillis;
int lastmillis;
int startmillis2;
int lastmillis2;
int strarttres;


//*************************************************************************
///SETUP

void setup() {

  pinMode(led1R, OUTPUT);
  pinMode(led1G, OUTPUT);
  pinMode(led1B, OUTPUT);
  pinMode(led2R, OUTPUT);
  pinMode(led2G, OUTPUT);
  pinMode(led2B, OUTPUT);
  pinMode(led3R, OUTPUT);
  pinMode(led3G, OUTPUT);
  pinMode(led3B, OUTPUT);
  pinMode(sensor1, INPUT);
  pinMode(sensor2, INPUT);
  pinMode(sensor2, INPUT);


}

//*************************************************************************
///FUNCTIONS

void red1() {
  digitalWrite(led1R, LOW);
  digitalWrite(led1G, HIGH);
  digitalWrite(led1B, HIGH);

}
void green1() {
  digitalWrite(led1R, HIGH);
  digitalWrite(led1G, LOW);
  digitalWrite(led1B, HIGH);

}
void blue1() {
  digitalWrite(led1R, HIGH);
  digitalWrite(led1G, HIGH);
  digitalWrite(led1B, LOW);

}
void red2() {
  digitalWrite(led1R, LOW);
  digitalWrite(led1G, HIGH);
  digitalWrite(led1B, HIGH);

}
void green2() {
  digitalWrite(led1R, HIGH);
  digitalWrite(led1G, LOW);
  digitalWrite(led1B, HIGH);

}
void blue2() {
  digitalWrite(led1R, HIGH);
  digitalWrite(led1G, HIGH);
  digitalWrite(led1B, LOW);

}

void red3() {
  digitalWrite(led1R, LOW);
  digitalWrite(led1G, HIGH);
  digitalWrite(led1B, HIGH);

}
void green3() {
  digitalWrite(led1R, HIGH);
  digitalWrite(led1G, LOW);
  digitalWrite(led1B, HIGH);

}
void blue3() {
  digitalWrite(led1R, HIGH);
  digitalWrite(led1G, HIGH);
  digitalWrite(led1B, LOW);

}
void off() {
  digitalWrite(led1R, HIGH);
  digitalWrite(led1G, HIGH);
  digitalWrite(led1B, HIGH);
  digitalWrite(led2R, HIGH);
  digitalWrite(led2G, HIGH);
  digitalWrite(led2B, HIGH);
  digitalWrite(led3R, HIGH);
  digitalWrite(led3G, HIGH);
  digitalWrite(led3B, HIGH);

}


//*************************************************************************
///LOOP

void loop() {


  if (swichmode == 1) {

    valorS1 = analogRead(sensor1);
    valorS2 = analogRead(sensor2);
    valorS3 = analogRead(sensor3);

    if (valorS2 < XXX) {

      startmillis = millis();
    }

    if (valoprS2 > XXX) {

      lastmillis = millis() - startmillis;
    }

    if (valorS3 < YYY) {

      startmillis2 = millis();
    }

    if (valoprS3 > YYY) {

      lastmillis2 = millis() - startmillis2;
    }

    if (lastmillis < 3000) {
      startangel = 0;

    }

    if (lastmillis >= 3000) {

      if (startangel = 0) {
        startangel = 1;
      }
    }

    if (startangel == 1) {

      if (valorS2 > valorS1 && valorS2 > valorS3) {
        green2();
      }

      else if (valorS2 < valorS1 && valorS1 > valorS3) {
        blue2();
        red1();
      }

      else if (valorS2 < valorS3 && valorS3 > valorS1) {
        blue2();
        red3();
      }

    }

    if (startangel == 0) {
      off();

    }

    if (lastmillis2 >= 2000) {
      startangel = 0;

    }


//************************************************************************
  //BUCLE

  if (swichmode == 3) {

    valorS1 = analogRead(sensor1);
    valorS2 = analogRead(sensor2);
    valorS3 = analogRead(sensor3);

    if (valorS1 > XXX) { ////piques de punta

      if (startjump = 0) {
        startjump = 1;
      }
    }


    if (valorS3 < YYY) {

      startmillis2 = millis();
    }

    if (valoprS3 > YYY) {

      lastmillis2 = millis() - startmillis2;
    }

    if (startjump == 1) {

      if (valorS2 > valorS1 && valorS2 > valorS3) {
        green2();
      }

      else if (valorS2 < valorS1 && valorS1 > valorS3) {
        blue2();
        red1();
      }

      else if (valorS2 < valorS3 && valorS3 > valorS1) {
        blue2();
        red3();
      }

    }

    if (startjump == 0) {
      off();

    }

    if (lastmillis2 >= 2000) {
      startjump = 0;

    }
  }       //swich
}     //loop

Practical Code

int led1R = 13;
int led1G = 11;
int led1B = 12;
int led2R = 6;
int led2G = 4;
int led2B = 5;
int led3R = 3;
int led3G = 10;
int led3B = 2;
int sensor1 = A1; 
int sensor2 = A2;
int sensor3 = A3;
int startangel;
int startmillis;
int lastmillis;
int startmillis2;
int lastmillis2;
int strarttres;
int val1;
int val2;
int val3;


//*************************************************************************
///SETUP

void setup() {

  pinMode(led1R, OUTPUT);
  pinMode(led1G, OUTPUT);
  pinMode(led1B, OUTPUT);
  pinMode(led2R, OUTPUT);
  pinMode(led2G, OUTPUT);
  pinMode(led2B, OUTPUT);
  pinMode(led3R, OUTPUT);
  pinMode(led3G, OUTPUT);
  pinMode(led3B, OUTPUT);
  pinMode(sensor1, INPUT);
  pinMode(sensor2, INPUT);
  pinMode(sensor2, INPUT);
  Serial.begin (9600);

}

//*************************************************************************
///FUNCTIONS

void red1() {
  digitalWrite(led1R, LOW);
  digitalWrite(led1G, HIGH);
  digitalWrite(led1B, HIGH);

}
void green1() {
  digitalWrite(led1R, HIGH);
  digitalWrite(led1G, LOW);
  digitalWrite(led1B, HIGH);

}
void blue1() {
  digitalWrite(led1R, HIGH);
  digitalWrite(led1G, HIGH);
  digitalWrite(led1B, LOW);

}
void red2() {
  digitalWrite(led2R, LOW);
  digitalWrite(led2G, HIGH);
  digitalWrite(led2B, HIGH);

}
void green2() {
  digitalWrite(led2R, HIGH);
  digitalWrite(led2G, LOW);
  digitalWrite(led2B, HIGH);

}
void blue2() {
  digitalWrite(led2R, HIGH);
  digitalWrite(led2G, HIGH);
  digitalWrite(led2B, LOW);

}

void red3() {
  digitalWrite(led3R, LOW);
  digitalWrite(led3G, HIGH);
  digitalWrite(led3B, HIGH);

}
void green3() {
  digitalWrite(led3R, HIGH);
  digitalWrite(led3G, LOW);
  digitalWrite(led3B, HIGH);

}
void blue3() {
  digitalWrite(led3R, HIGH);
  digitalWrite(led3G, HIGH);
  digitalWrite(led3B, LOW);

}
void off() {
  digitalWrite(led1R, HIGH);
  digitalWrite(led1G, HIGH);
  digitalWrite(led1B, HIGH);
  digitalWrite(led2R, HIGH);
  digitalWrite(led2G, HIGH);
  digitalWrite(led2B, HIGH);
  digitalWrite(led3R, HIGH);
  digitalWrite(led3G, HIGH);
  digitalWrite(led3B, HIGH);

}


//*************************************************************************
///LOOP

void loop() {

  int valorS1 = analogRead(sensor1);
  int valorS2 = analogRead(sensor2);
  int valorS3 = analogRead(sensor3);
  int pres1 = map (valorS1, -200, 450, 0, 500); 
  int pres2 = map (valorS2, -200, 450, 0, 500);
  int pres3 = map (valorS3, -200, 450, 0, 500);
  
if (pres1 >150 && pres1<165){
  pres1 = val1;
}
if (pres2 >150 && pres2<165){
  pres2 = val2;
}
if (pres3 >150 && pres3<165){
  pres3 = val3;
}
  if(pres1==val1 && pres2==val2 && pres3==val3){
off();
  }
  if (pres2 > pres1 && pres2 > pres3) {
    green2();
    delay(1000);
  }

  if (pres2 < pres1 && pres1 > pres3) {
    blue2();
    red1();
    delay(1000);
  }

  if (pres2 < pres3 && pres3 > pres1) {
    blue2();
    red3();
    delay(1000);

     
  }
  Serial.print(pres1);
    Serial.print("____");Serial.print (pres2); Serial.print("____"); 
    Serial.println(pres3);
}