
pwm avec le bouton. commence a 0% monte a 100%. 1kHz
Dependencies: mbed
main.cpp@0:cce2fdfbfbc4, 2018-04-12 (annotated)
- 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?
User | Revision | Line number | New 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 | } |