Étape 4: Étape 4: comment le code fonctionne
J’ai décidé de faire cela dans une autre étape étape 3 étant déjà très long.
L’image ci-dessus est ce qui m’a vraiment aidé le comprendre
Si l'on se souvient de la vidéo dans l’étape 1 pwm a besoin de 2 variables pour pouvoir travailler hors de la marche et d’arrêt de temps, ce sont la longueur/durée du cycle et le cycle d’utilisation. Avec l’image ci-dessus j’ai vous montrera comment tricoter ces.
cycle_length = 1000000/fréquence
cycle_length est l’équivalent de la période de temps dans l’image ci-dessus, mais puisque nous utilisons microsecondes, comme nous en avons besoin plus vite que l’oeil humain peut suivre et il y a 1000000 microsecondes par seconde que rend est 1000000 au lieu de 1. vous pouvez également changer la fréquence mais garder au-dessus de 60 car cela cause des problèmes.
duty_cycle = v_out/255
dans l’exemple ci-dessus le duty cycle a déjà été fixé, mais pour trouver notre rapport cyclique c’est fondamentalement le pourcentage du potentiomètre activé = le pourcentage de luminosité led par exemple, 50 % tourné = luminosité 50 % = 50 % de la tension nécessaire. Et si nous faisons quelques fonctions simples mathématiques pour trouver le pourcentage sa (valeur / valeur totale) * 100, mais puisque nous en avons besoin sous forme décimale nous n’avez pas besoin de multiplier par 100, donc c’est juste valeur/total valeur.
Et si nous suivons l’exemple ci-dessus
ton = rapport cyclique * période
Cette moyenne est le pourcentage de temps sa est proportionnel au pourcentage de puissance qu’il nous faut pour la luminosité led, qui est le même dans notre code, comme c’est la dernière partie de l’exemple
toff = période - rapport cyclique
Cette ligne est juste assez simple maths
if(time_on > 0)
{
digitalWrite (pwm_pin, HIGH) ;
delayMicroseconds(time_on) ; tourne led pour anount court de temps
}
Code simple qui indique seulement si le temps sur qu'il devrait être est supérieur à 0 tourner la broche haute pendant ce laps de temps.