Page 24 - SERIE N11 micro 2
P. 24
Exercice N°27 :
Écrire un programme qui permet de commander un moteur a courant continu avec un rapport cyclique
variable de 0 a 1 en utilisant la technique MLI (PWM) Le rapport cyclique augmente si on appui sur le
bouton RA2 et ii diminue si on appui sur le bouton RA1 Utilisation de la fonction Button (port,bit,temps
d'appui en ms ,état logique actif)
Exemple : if Button (portA,3,50, 1) then « action1 »
On teste l'appui sur un bouton poussoir relié à la broche RA3 pendant 50ms pour faire l'action 1
1 °) Compléter les phrases suivantes :
Si on appui sur le bouton RA2 la vitesse du moteur ………………………………..
Si on appui sur le bouton RA 1 la vitesse du moteur . ………………………………..
2°) Compléter le programme :
? ? ? ? ? ? ? ?
PWM
21 9 1ms t
OSC1/CLKIN
22 RB0/INT OSC2/CLKOUT 10 Diminuer la vitesse
RB1
23 RB2
24 RB3/PGM RA0/AN0 2
3
25
26 RB4 RA1/AN1 4
27 RB5 RA2/AN2/VREF-/CVREF 5
RA3/AN3/VREF+
RB6/PGC
8 8 8 . 28 RB7/PGD RA4/T0CKI/C1OUT 6 Augmenter la vitesse
+ DIODE 11 RA5/AN4/SS/C2OUT 7
12 RC0/T1OSO/T1CKI MCLR 1 10k 10k
13 RC1/T1OSI/CCP2
RC2/CCP1
14 RC3/SCK/SCL
15
2N2222 16 RC4/SDI/SDA
1k 17 RC5/SDO
RC6/TX/CK
18 RC7/RX/DT
PIC16F876A
program exercice_N_27 _MLI;
var x:byte;
begin
PWM1_init(1000);
PWM1_Start();
ADCON1 :=$........... ; // PORTA numérique
trisa:=$ ........... ;trisb:= ...........;portb:= ........... ;x:=0;
while true do
begin
If button ( Porta,2, 100 ,1) then INC( x ) ; if x=255 then DEC( x ) ;
if button (Porta,1, 100 ,1) then DEC( x ) ; if x=0 then INC( x ) ;
portb:= x ;
PWM1_Set_duty( ..... ) ;
end ;
end.
3°) Expliquer le rôle des deux instructions colorées en bleu.
24