Étape 3: Étape 3: le code
C’est la plus longue étape, mais je vais vous expliquer comment cela fonctionne dans l’étape suivante.
flotteur de fréquence = 100 ; la fréquence du cycle
float cycle_length ; Combien de temps chaque cycle pwm doit être sur pour
float duty_cycle ; le pourcentage de puissance, que nous voulons
int time_on ; Combien de temps la sortie doit être élevée
int time_off ; Combien de temps la sortie doit être faible
float v_out ; la quantité de tension, que la led devrait attirer
int pot_pin = 2 ; broche avec potentiomètre
int pwm_pin = 8 ; goupille qui agira comme une goupille pwm
void setup() {}
Mettez votre code de programme d’installation ici, pour exécuter une fois :
Serial.Begin(9600) ;
définir les broches
pinMode (pot_pin, entrée) ;
pinMode (pwm_pin, sortie) ;
digitalWrite (pwm_pin, basse) ;
calculer la longueur du cycle
cycle_length = 1000000/fréquence ; longueur d’un cycle pwm en microsecondes
}
void loop() {}
Mettez votre code principal ici, pour exécuter à plusieurs reprises :
int val = analogRead(pot_pin) ; obtenir la valeur pwm
v_out = carte (val, 0, 1024, 0, 255) ; Obtient la valeur du pot de 0-1024 et le transforme en une valeur comprise entre 0 et 255
duty_cycle = v_out/255 ; pourcentage de puisance comme decimal.
time_on = duty_cycle * cycle_length ; Entraînez-vous à la fois, sur qu'il devrait être
time_off = cycle_length-time_on ; Entraînez-vous à la fois, qu'il doit être éteint
if(time_on > 0)
{
digitalWrite (pwm_pin, HIGH) ;
delayMicroseconds(time_on) ; tourne led pour anount court de temps
}
digitalWrite (pwm_pin, basse) ;
delayMicroseconds(time_off) ;
}