Arkadaşlar arduino için konuyu bulamadım kusura bakmayın lütfen. Acil bir sorum var.

Arduino projemde 'loop' komutu içerisinde if mantığıyla çeşitli kodlar çalıştırıyorum, sensörün gördüğü dataya göre. Bu süreçte son görülen sensörü kaydetmek için 0. sensör gördüyse ss=1; 2. sensör gördüyse ss=2 kodunu atıyorum ss değerine.

Ardından gelen ss kodunu değerlendirerek (hiçbir sensör görmezken) son olan ss değerine göre işlem yapmak istiyorum ancak kod her seferinde (ilk ss=2 bile olsa) ss=1'e dönüyor ve sanıyorum ki kod daha yukarıda olduğu için.

Kod şu şekilde. Sensör değeri >150 ise görülmesi anlamına geliyor.

#include
//Servo 90=78 (Sapmayı Ortadan Kaldırmak İçin)
//Servo Input
#include
Servo servo;
int pos;
char sensor;
int last;
//Sensor Data Input
#define NUM_SENSORS 3 // number of sensors used
#define TIMEOUT 2500 // waits for 2500 microseconds for sensor outputs to go low
#define NO_EMITTER_PIN 2 // emitter is controlled by digital pin 2
QTRSensorsRC qtrrc((unsigned char[]) {8,9,10},
NUM_SENSORS, TIMEOUT, QTR_NO_EMITTER_PIN);
unsigned int sensorValues[NUM_SENSORS];

//Motor Data Input
int in1=3;
int in2=4;
int in3=5;
int in4=6;
int en1=2;
int en2=7;

//Servo Inputs
int left_2=108;
int left_1=81;
int mid=78;
int right_1=75;
int right_2=48;
int ss;
//Servo Code
void servoMoveTo(int angle){
if(pos < angle)
{
for(pos=pos; pos<=angle; pos+=5)
{

servo.write(pos);
delayMicroseconds(2335);
}
}
if(pos>=angle)
{
for(pos=pos; pos>=angle; pos-=5)
{

servo.write(pos);
delayMicroseconds(2335);
}
}
}
//Servo Code End

void setup() {
// Motor Driver Card Setup
pinMode(in1,OUTPUT);
pinMode(in2,OUTPUT);
pinMode(in3,OUTPUT);
pinMode(in4,OUTPUT);
pinMode(en1,OUTPUT);
pinMode(en2,OUTPUT);
servo.attach(12);
servoMoveTo(mid);
//Sensor Setup

Serial.begin(9600);
delayMicroseconds(50);
}


void loop() {
if (Serial.available() > 0) {
sensor = Serial.read();
}
Serial.println(sensor);

//Motor Driver Card Loop
analogWrite(en1,40);
analogWrite(en2,65);
digitalWrite(in1,LOW);
digitalWrite(in2,HIGH);
digitalWrite(in3,HIGH);
digitalWrite(in4,LOW);

//Sensor Loop

qtrrc.read(sensorValues);
for (unsigned char i = 0; i < NUM_SENSORS; i++)
{
Serial.print(sensorValues[i]);
Serial.print('\t');
}
Serial.println();
Serial.print("Sensor0 ");Serial.println(sensorValues[0]);
Serial.print("Sensor1 ");Serial.println(sensorValues[1]);
Serial.print("Sensor2 ");Serial.println(sensorValues[2]);

//Servo Control Code
if(sensorValues[0]>150 && sensorValues[1]<150 && sensorValues[2]<150)
{servoMoveTo(left_2);ss=1;delayMicroseconds(1);Serial.print("Only 0");}

else if(sensorValues[0]>150 && sensorValues[1]>150 && sensorValues[2]<150)
{servoMoveTo(left_1);delayMicroseconds(1);Serial.print("0 and 1");}

else if(sensorValues[1]>150 && sensorValues[0]<150 && sensorValues[2]<150)
{servoMoveTo(mid);delayMicroseconds(1);Serial.print("Only 1");}

else if(sensorValues[1]>150 && sensorValues[2]>150 && sensorValues[0]<150)
{servoMoveTo(right_1);delayMicroseconds(1);Serial.print("1 and 2");}

else if(sensorValues[2]>150 && sensorValues[0]<150 && sensorValues[1]<150)
{servoMoveTo(right_2);ss=2;delayMicroseconds(1);Serial.print("Only 2");}

else if(sensorValues[0]>150 && sensorValues[1]>150 && sensorValues[2]>150)
{servoMoveTo(mid);delayMicroseconds(1);Serial.print("0 and 1 and 2");}

else if(sensorValues[0] && sensorValues[1] && sensorValues[2]<150)
{Serial.print("SS=");Serial.println(ss); if(ss=1)
{Serial.println("SS=1");
}
else if(ss=2)
{Serial.println("SS=2");
}
delayMicroseconds(1);}
//delayMicroseconds(1);
delay(1500);}