ArduinoRGB灯颜色变化?

为什么如果一开始模拟>15RGB灯的颜色是绿色,但是如果模拟时是小于15(小于15灯为橙色),然后调为大于15,灯就不能变为绿色了?
代码:

#include <Servo.h>
Servo myservo;  // 定义Servo对象来控制
int pos = 0;    // 角度存储变量

#include <LiquidCrystal.h>
//lcd显示屏库
const int RS=13,E=6,DB4=7,DB5=4,DB6=3,DB7=2;
LiquidCrystal lcd(RS,E,DB4,DB5,DB6,DB7);

int TrigPin=A0;
int EcoPin=A1;
float a;//距离传感器

int R = 5;//R红色LED控制引脚连接到Arduino的5脚 
int G = 10;//G绿色LED控制引脚连接到Arduino的10脚
int B = 11;//B蓝色LED控制引脚连接到Arduino的11脚

int buzzer=8;//蜂鸣器引脚

void setup()
{
  lcd.begin(16,2);//设置lcd要显示的2行16列
  lcd.clear();//lcd
  pinMode(TrigPin, OUTPUT);
  pinMode(EcoPin,INPUT);
  Serial.begin(9600);//距离
  
  pinMode(R,OUTPUT);//设置redPin对应的管脚5为输出
  pinMode(G,OUTPUT);//设置greenPin,对应的管脚10为输出
  pinMode(B,OUTPUT);//设置bluePin对应的管脚11为输出
  Serial.begin(9600);
  
  pinMode(buzzer, OUTPUT);//蜂鸣器
  Serial.begin(9600);
}

void loop()
{
  digitalWrite(TrigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(TrigPin,HIGH);
  delayMicroseconds(10);
  digitalWrite(TrigPin, LOW);
  a=float(pulseIn(EcoPin,HIGH)*17)/1000+2-0.3;//距离计算公式
  delay(200);//速度
  Serial.println(a);
  lcd.setCursor(0,0);
  lcd.print("Distance is");
  lcd.setCursor(0,1);
  lcd.print(a);//lcd屏显示
  
/*  if(a==1.70){//a==1.70时,开关断开,测距未工作
  
  analogWrite(R,255);
  delay(100);
  analogWrite(G,0);
  delay(100);  
  analogWrite(B,0); 
  delay(100);  
  }*/
  if(a>15){//1     
  analogWrite(R,124);
  delay(100);  
  analogWrite(G,252);
  delay(100);  
  analogWrite(B,0);//绿色
  delay(100);  
  buzzer1();
  }
  if(a<15){
  analogWrite(R,238);
  delay(100);  
  analogWrite(G,154);
  delay(100);  
  analogWrite(B,0);//RGB灯为橙色
  delay(100);
  myservo.attach(9);  // 控制线连接数字9
  myservo.write(90);              // 舵机角度写入
  delay(10000);
  myservo.attach(9);  // 控制线连接数字9
  myservo.write(0);              // 舵机角度写入
  delay(1000);
  }
}

void buzzer1(){//蜂鸣器发出声音
  tone(8, 100, 200);  //6号引脚发声200毫秒
  delay(500);
  tone(8, 200, 200); 
  delay(500);
  tone(8, 400, 200); 
  delay(500);
  tone(8, 600, 200);
  delay(500);
  tone(8, 800, 200);
  delay(500);
  tone(8, 600, 200);
  delay(500);
  tone(8, 400, 200); 
  delay(500);
  tone(8, 200, 200); 
  delay(500);
  tone(8, 100, 200);
  delay(500);
  noTone(8); //停止8号引脚发声
}

void white(){
  analogWrite(R,0);
  delay(100);
  analogWrite(G,0); 
  delay(100);
  analogWrite(B,0);//白色 
  delay(100);
}

img