pwm avec le bouton. commence a 0% monte a 100%. 1kHz

Dependencies:   mbed

Committer:
McCaron
Date:
Thu Apr 12 17:06:09 2018 +0000
Revision:
0:cce2fdfbfbc4
pwm avec le bouton. commence a 0% monte a 100%. 1kHz

Who changed what in which revision?

UserRevisionLine numberNew contents of line
McCaron 0:cce2fdfbfbc4 1 //_____________________________________________________________________________________
McCaron 0:cce2fdfbfbc4 2 //Noms: David Caron et Benoit Malenfant
McCaron 0:cce2fdfbfbc4 3 //Date: 2018-04-12
McCaron 0:cce2fdfbfbc4 4 //TP-Nucleo
McCaron 0:cce2fdfbfbc4 5 //Ce programe fait un PWM de 1kHz sur la broche D10, il commence a un duty cycle de 0
McCaron 0:cce2fdfbfbc4 6 //puis, chaque fois qu'on pese sur le bouton user, la duty cycle augmante de 1%
McCaron 0:cce2fdfbfbc4 7 //_____________________________________________________________________________________
McCaron 0:cce2fdfbfbc4 8
McCaron 0:cce2fdfbfbc4 9 #include "mbed.h" //la librairie mbed
McCaron 0:cce2fdfbfbc4 10 PwmOut monPWM(PB_6); //je dit ou je veut mon pwm, pwmsortant, le nom du pwm et sur quelle broche je le veut
McCaron 0:cce2fdfbfbc4 11 DigitalIn bouton(USER_BUTTON); //je dit que jai une entrée digital qui rentre. je le nomme boutton, et c'est le bouton_user (Bouton bleu)
McCaron 0:cce2fdfbfbc4 12
McCaron 0:cce2fdfbfbc4 13 float duty=0; //Je déclare un float pour mon duty cycle étant donner que la fonction que je vais utiliser prend des nombres a virgule et je le set a 0
McCaron 0:cce2fdfbfbc4 14
McCaron 0:cce2fdfbfbc4 15
McCaron 0:cce2fdfbfbc4 16 int main()
McCaron 0:cce2fdfbfbc4 17 {
McCaron 0:cce2fdfbfbc4 18 monPWM.period(0.001); //set la periode a 1khz
McCaron 0:cce2fdfbfbc4 19 while (1)
McCaron 0:cce2fdfbfbc4 20 {
McCaron 0:cce2fdfbfbc4 21
McCaron 0:cce2fdfbfbc4 22
McCaron 0:cce2fdfbfbc4 23 if(bouton==0) //si j'appuie sur le bouton
McCaron 0:cce2fdfbfbc4 24 {
McCaron 0:cce2fdfbfbc4 25 while(bouton==0)
McCaron 0:cce2fdfbfbc4 26 {
McCaron 0:cce2fdfbfbc4 27 //faire rien, attendre que le user lache le bouton comme sa j'ai pas a mettre de phase wait(x);
McCaron 0:cce2fdfbfbc4 28 }
McCaron 0:cce2fdfbfbc4 29 duty=duty+0.01; // zero a 1, on passe de 1% chaque fois
McCaron 0:cce2fdfbfbc4 30 wait(0.01); //laisse le user enlever son doigt
McCaron 0:cce2fdfbfbc4 31 }
McCaron 0:cce2fdfbfbc4 32
McCaron 0:cce2fdfbfbc4 33
McCaron 0:cce2fdfbfbc4 34 if (duty>1) //Si le duty cycle est rendu a 100% fait l'actions prochaines:
McCaron 0:cce2fdfbfbc4 35 {
McCaron 0:cce2fdfbfbc4 36 (duty = 0); // descend le duty cycle a 0%
McCaron 0:cce2fdfbfbc4 37 }
McCaron 0:cce2fdfbfbc4 38
McCaron 0:cce2fdfbfbc4 39 monPWM.write(duty); //rentre le duty cycle dans le PWM
McCaron 0:cce2fdfbfbc4 40
McCaron 0:cce2fdfbfbc4 41 }
McCaron 0:cce2fdfbfbc4 42 }