ayuda con codigo para encendido de lampara gradualmente

hola a todos, necesito encender una lampara gradualmente, y tengo el siguiente codigo, pero necesito que cuando llegue al maximo valor, no se repita, que se quede encendida totalmente, cómo podria ser el codigo?
me seria muy util su ayuda! ya que apenas inicio en esto y me es complicado :confused:
gracias!

int led = 13 ;

void setup()
{
pinMode(led,OUTPUT);
}

void loop()
{
for(int i=0 ; i<=255;i+=1)
{
analogWrite(led,i);
delay(30);
}

Hola.
Pasa tu código de loop al setup.

Hola, en el mismo IDE de arduino si te ibas a la zona de ejemplos en la zona: 1.Basics:Fade ibas a encontrar lo que necesitabas acá te dejo el código para que lo pruebes.

/*
 Fade

 This example shows how to fade an LED on pin 9
 using the analogWrite() function.

 This example code is in the public domain.
 */

int led = 9;           // the pin that the LED is attached to
int brightness = 0;    // how bright the LED is
int fadeAmount = 5;    // how many points to fade the LED by

// the setup routine runs once when you press reset:
void setup() {
  // declare pin 9 to be an output:
  pinMode(led, OUTPUT);
}

// the loop routine runs over and over again forever:
void loop() {
  // set the brightness of pin 9:
  analogWrite(led, brightness);

  // change the brightness for next time through the loop:
  brightness = brightness + fadeAmount;

  // reverse the direction of the fading at the ends of the fade:
  if (brightness == 0 || brightness == 255) {
    fadeAmount = -fadeAmount ;
  }
  // wait for 30 milliseconds to see the dimming effect
  delay(30);
}

Saludos

mike pero ese código va cambiando de menos a mas y de mas a menos SIEMPRE o sea no se queda encendido.

en todo caso cambiando esto

// change the brightness for next time through the loop:
  brightness = brightness + fadeAmount;
if (brightness == 0 || brightness == 255) {
    fadeAmount = -fadeAmount ;
  }

por esto

// change the brightness for next time through the loop:
  if (brightness < 255) 
     brightness = brightness + fadeAmount;
 else 
     brightness = 255;

entonces arranca en 0, como brillo es menor a 255 se va incrementando hasta llegar a 255 y se queda.
en ese valor.

Muy buenos días a todos, espero se encuentren bien :) me encuentro con la situación de que, quiero controlar el encendido de un foco de 110v, y quiero que se haga gradualmente, de manera que cuando llegue al máximo se quede encendido.

Estoy usando un sketch llamado FADE con una modificación para que se quede encendido, que viene en el arduino, ahora, estoy usando un optoacomplador y un triac, y de ahi al foco. El optoacomplador lo conecto al pin que marca el sketch

La variacion de luz si se ve perfectamente en un led, conectandolo a la salida del pin PWM que marca el sketch, pero cuando lo reemplazo por el optoacoplador y el triac, la variacion de luz no se ve tanto, se ve como si se encendiera de golpe.

podrían ayudarme? o qué estoy haciendo mal? o asi se debe ver en el foco? jaja soy nuevo

muchas gracias :)

OH! una cosita mas, habrá alguna manera de que el proceso se repita, cada vez que desconecte el foco de la fuente?es decir, que se vuelva a encender el foco de forma gradual cada vez que lo desconecte y vueva a conectar. Gracias jeje

Para comenzar, hacer un fade en un foco y hacerlo en un led no son la misma cosa. Un Led es lineal en cuanto a su brillo Un foco responde a una ecuación mas complicada. Cuando vas disparando de 0 a 180 la fase de la sinusoide, hay que hacer una integral para saber que potencia se entrega. Esta hecho y hay una forma de linealizarlo para que resulte aparentemente como si fuera un led. Creo que esta en el PLayground.