estoy desesperado

Hola,hace tiempo que sigo este foro,para consultar cualquier problema,y os agracezco de antemano la ayuda ,prestada anteriormente y las sucesivas.
Vamos al grano...
Ultimamente ,mi placa arduino,no se comporta bien,en que sentido???,en el sentido que ejecuta las instrucciones que le da la gana y como quiere,a ver si me podeis ayudar,para poder ver que es lo que ocurre o en que me estoy equivocando.os copio este codigo tan sencillo con un if ,el cual se lo salta,sin mas.

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11,10, 5, 4, 3, 2);
int i=0;
void setup()
{
lcd.begin(16,2);
Serial.begin(9600);

}
void loop()
{
for (i;i<255;i++){
delay (1000);
lcd.setCursor(0, 0);
lcd.print(i,DEC);
}
if(i==4){
i=200;

Serial.println("ok");
}}

Cuando Arduino llega al if, i siempre vale 255, ya que está después del bucle for y por tanto ya ha terminado todas las iteraciones.

Si quieres que se de la condición, deberás poner el if dentro del bucle for

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11,10, 5, 4, 3, 2);
int i=0;
void setup()
{
  lcd.begin(16,2);
  Serial.begin(9600);

}
void loop()
{
  for (i;i<255;i++){
    delay (1000);
    lcd.setCursor(0, 0);
    lcd.print(i,DEC);
    if(i==4){
      i=200;
      Serial.println("ok");
    }
  }
}

Un saludo

perfecto,ahora entiendo algunas cosas mas,muchisimas gracias por todo.Saludos