Mi código esta bien?

Ojala y me puedan ayudar mi codigo de arduino salta un error aunque no se porque.

warning: ISO C++ forbids comparison between pointer and integer [-fpermissive]

int led1=4;
int led2=2;
int led3=3;
char leer;
boolean prendido1=true;
boolean prendido2=true;
boolean prendido3=true;

void setup() {
 // put your setup code here, to run once:
 Serial.begin(9600);
 pinMode(led1,OUTPUT);
 pinMode(led2,OUTPUT);
 pinMode(led3,OUTPUT);
}

void loop() {
 // put your main code here, to run repeatedly:
 leer= Serial.read();
 if((leer=="000") && (prendido1==true) && (prendido2==true) && (prendido3==true))
{
 digitalWrite(led1,LOW);
 digitalWrite(led2,LOW);
 digitalWrite(led3,LOW);
 prendido1=false;
 prendido2=false;
 prendido3=false;
}
if((leer=="101") && (prendido1==false) && (prendido2==false) && (prendido3==false))
{
 digitalWrite(led1,HIGH);
 digitalWrite(led2,LOW);
 digitalWrite(led3,HIGH);
 prendido1=true;
 prendido2=false;
 prendido3=true;
}
if((leer=="001") && (prendido1==false) && (prendido2==false) && (prendido3==true))
{
digitalWrite(led1,LOW);
 digitalWrite(led2,LOW);
 digitalWrite(led3,HIGH);
 prendido1=false;
 prendido2=false;
 prendido3=true;
}
}

El warning se debe a la forma en que comparas:

if (leer=="000")

Sería una casualidad enorme que esta condición se cumpla.

Debes emparejar los tipos de dato primero: texto con texto o entero con entero.
Si el dato se supone que es un único byte/char, esa no es la forma de compararlos. Si el dato es textualizado, esa no es la forma de recuperarlo.

PD: código va entre etiquetas generadas por el </>