Bonjour,

Dans le cadre de notre projet de PPE, de terminale SSI, qui consiste à fabriquer un robot suiveur de ligne, nous avons besoin de configurer le 16F876 de telle sorte qu'il ralentisse un des deux moteurs en fonction de la position des capteurs. Voila ce que nous avons fait sous mikroBasic, mais cela ne fonctionne pas :
program PWM
'LE programe est fait pour fonctionner avec un quartz de 4Mhz

symbol CG2=PortB.4 'Capteur gauche exterieur
symbol CG1=PortB.5 'Capteur gauche interieur
symbol CD1=PortB.6 'capteur droit interieur
symbol CD2=PortB.7 'capteur droit exterieur

main:
CCP1CON=12 'on met le registre en mode PWM
CCP2CON=12 'on met le registre en mode PWM
TRISC=0 'Configuration des ports C en sortie
TRISB=$FF 'Configuration des port B en entrée
PR2=$FF 'Valeur qui lorsqu elle est attente par le timer met le signal a 1
T2CON=0000110 'réglage du timer2 postdivise par 1 Timer On et predivise par 16
CCPR1L=255 'Valuer du duty cycle moteur gauche au demarrage
CCPR2L=255 'valeur du duty cycle moteur droit au demarrage
While true 'on rentre dans un boucle
if ((CG2) and (CG1) and (CD1) and (CD2)) or ((not(CG2)) and (not(CG1)) and (not(CD1)) and (not(CD2))) 'si tous les capteurs sont à 1 ou a 0
then CCPR1L=255 and CCPR2L=25 'alors les moteurs vont au maximum
else 'sinon
if ((CG2) and (not(CD1)) and (not(CD2))) 'si le capteur exterieur gauche est à 1
then CCPR1L=0 and CCPR2L=255 'Alors le moteur gauche s'arrete et le droit est au max
end if
if ((not(CG2)) and (CG1) and (not(CD1)) and (not(CD2))) 'si le capteur interieur gauche est à 1
then CCPR1L=107 and CCPR2L=255 'Alors le moteur gauche est en 5V et le droit en 12V
end if
if (not(CG2) and (not(CG1)) and (CD1) and (not(CD2))) 'si capteur interieur droit=1
then CCPR1L=255 and CCPR2L=107 'alors MG 5V et MD 12V
end if
if ((not(CG2))and not(CG1) and (CD2)) 'si capteur exterieur droit=1
then CCPR1L=255 and CCPR2L=0 'alors MG 12V et MD 0V
end if
end if
Wend
end.
Nous ne sommes absolument pas sur de ce que nous avons fait, nos professeurs étant au même point que nous concernant la programmation d'un PIC. Merci d'avance.