LED wont turn off with potentiometer

As I run this code, the LEDs dont turn off when the potentiometer doesnt satisfy the condition. Also the LED2 doesnt seem to come on at all. What am I doing wrong?

#include <Servo.h> 

#define POT_PIN 1      // Arduino pin that the potentiometer connects to the Experimenter 
#define LED0 11
#define LED1 9
#define LED2 6
#define LED3 3


Servo myservo;  // Create servo object to control a servo 
 
int potVoltage;      // Variable to store the voltage value from the potentiometer 
int scaled_val = 0;  // Variable to hold the scaled voltage value
 
void setup() 
{ 
  myservo.attach(10);  // Attaches the servo on pin 10 to the servo object 
  pinMode( LED0, OUTPUT);
  pinMode( LED1, OUTPUT);
  pinMode( LED2, OUTPUT);
  pinMode( LED3, OUTPUT);
} 
 
void loop() 
{ 
  potVoltage = analogRead(POT_PIN);  // Reads the voltage of the potentiometer (returns a value between 0 and 1023) 
  scaled_val = map(potVoltage, 0, 1024, 0, 180);   // Scale the value to use with the servo (value between 0 and 180) 
  myservo.write(scaled_val);       // Sets the servo position according to the scaled value 

  if(scaled_val <= 10)
  {
    digitalWrite(LED0, HIGH);
  }
  else if(scaled_val >= 170)
  {
    digitalWrite(LED3, HIGH);
  }
  else if(scaled_val = 45)
  {
    digitalWrite(LED1, HIGH);
  }
  else if(scaled_val != 45)
  {
    digitalWrite(LED1, LOW);
  }   
  else if(scaled_val = 135)
  {
    digitalWrite(LED2, HIGH);
  }
  else if(scaled_val != 135)
  {
    digitalWrite(LED2, LOW);
  }   
  else
  {
    return 0;
  }
  
}

At least this is wrong:

if(scaled_val = 45)

You need ==

Leaving aside the need to change = to == there is a problem with this portion of code

  else if (scaled_val = 45)
  {
    digitalWrite(LED1, HIGH);
  }
  else if (scaled_val != 45)
  {
    digitalWrite(LED1, LOW);
  }

scaled_val is either going to equal 45 or not so any following tests of its value will not be executed

Thank you for the help! I was able to work it out. Here is my final code.

#include <Servo.h> 

#define POT_PIN 1      // Arduino pin that the potentiometer connects to the Experimenter 
#define LED0 11
#define LED1 9
#define LED2 6
#define LED3 3

Servo myservo;  // Create servo object to control a servo 
 
int potVoltage;      // Variable to store the voltage value from the potentiometer 
int scaled_val = 0;  // Variable to hold the scaled voltage value
 
void setup() 
{ 
  myservo.attach(10);  // Attaches the servo on pin 10 to the servo object 
  pinMode( LED0, OUTPUT);
  pinMode( LED1, OUTPUT);
  pinMode( LED2, OUTPUT);
  pinMode( LED3, OUTPUT);
} 
void loop() 
{ 
  potVoltage = analogRead(POT_PIN);  // Reads the voltage of the potentiometer (returns a value between 0 and 1024) 
  scaled_val = map(potVoltage, 0, 1024, 0, 180);   // Scale the value to use with the servo (value between 0 and 180) 
  myservo.write(scaled_val);       // Sets the servo position according to the scaled value 

  if(scaled_val <= 3.6)
  {
    digitalWrite(LED0, HIGH);
  }
  else if(scaled_val >= 176.4)
  {
    digitalWrite(LED3, HIGH);
  }
  else if(scaled_val == 45)
  {
    digitalWrite(LED1, HIGH);
  }  
  else if(scaled_val == 135)
  {
    digitalWrite(LED2, HIGH);
  }
  else
  {
    digitalWrite(LED0, LOW);
    digitalWrite(LED1, LOW);
    digitalWrite(LED2, LOW);
    digitalWrite(LED3, LOW);
    return 0;
  }
} 
[code]
int scaled_val = 0;  // Variable to hold the scaled voltage value
scaled_val = map(potVoltage, 0, 1024, 0, 180);   // Scale the value to use with the servo (value between 0 and 180)
  else if (scaled_val >= 176.4)

There is not much point (pun intended !) in testing an int against a float.