Paso 3: Paso 3: el código
Este es el paso más largo, pero voy a explicar cómo funciona en el siguiente paso.
flotador de frecuencia = 100; la frecuencia del ciclo
Float cycle_length; cuánto cada ciclo de pwm debe estar
Float duty_cycle; el porcentaje de la energía que queremos
int time_on; Cuánto tiempo la salida debería ser alta
int time_off; Cuánto tiempo la salida debe ser baja
Float v_out; la cantidad de voltaje que el led debe sacar
int pot_pin = 2; pasador con potenciómetro
int pwm_pin = 8; PIN que actuará como un pin pwm
void setup() {}
Pon tu código de instalación, para ejecutar una vez:
Serial.Begin(9600);
ajustar los pernos
pinMode (pot_pin, entrada);
pinMode (pwm_pin, salida);
digitalWrite (pwm_pin, bajo);
calcular la longitud del ciclo
cycle_length = 1000000/frecuencia; longitud de un ciclo de pwm en microsegundos
}
void loop() {}
Pon tu código principal, para ejecutar varias veces:
int val = analogRead(pot_pin); obtener el valor de pwm
v_out = mapa (val, 0, 1024, 0, 255); Obtiene el valor del pote del 0 al 1024 y lo convierte en un valor de 0-255
duty_cycle = v_out/255; porcentaje de la energía absorbida como decimal.
time_on = duty_cycle * cycle_length; el tiempo debe estar en
time_off = cycle_length-time_on; el tiempo debe ser de
if(time_on > 0)
{
digitalWrite (pwm_pin, HIGH);
delayMicroseconds(time_on); enciende led para anount corto de tiempo
}
digitalWrite (pwm_pin, bajo);
delayMicroseconds(time_off);
}