Paso 4: Paso 4: Cómo funciona el código
Decidí hacerlo en otro paso como paso 3 ya era muy largo.
La foto de arriba es lo que realmente me ayudó a entender
Si recordamos del video en el paso 1 pwm necesita 2 variables para poder trabajar en y fuera de tiempo, estos están el ciclo de longitud/tiempo y el ciclo de trabajo. Utilizando la foto de arriba le mostrará cómo trabajar éstos hacia fuera.
cycle_length = 1000000/frecuencia
cycle_length es el equivalente del período de tiempo en la imagen de arriba pero como estamos usando microsegundos como necesitamos más rápido que el ojo humano puede rastrear y hay 1000000 microsegundos en un segundo que hace es 1000000 en vez de 1. también puede cambiar la frecuencia pero mantener por encima de 60, causa problemas.
duty_cycle = v_out/255
en el ejemplo anterior el deber ciclo ya estaba configurado pero para encontrar nuestro ciclo de trabajo es básicamente el porcentaje del potenciómetro se volvió = el porcentaje de brillo de led por ejemplo, 50% vuelta = 50% brillo = 50% de la tensión necesitada. Y si hacemos algunas matemáticas simples para encontrar el porcentaje su (valor / valor total) * 100 pero ya que lo necesitamos como un decimal no necesitamos multiplicar por 100, por lo que es sólo el valor de valor total.
Y si seguimos el ejemplo anterior
tonelada = ciclo de trabajo * tiempo
Esto significa que es el porcentaje de tiempo su es proporcional al porcentaje de la energía que necesitamos para el brillo led, que es lo mismo en nuestro código como la última parte del ejemplo
TOff = período de tiempo - ciclo de trabajo
Esta línea es apenas bastante simple matemáticas
if(time_on > 0)
{
digitalWrite (pwm_pin, HIGH);
delayMicroseconds(time_on); enciende led para anount corto de tiempo
}
Simple código que dice solamente si el tiempo debe ser en es mayor que 0 convertir el pin alto para esa cantidad de tiempo.