Le robot doit aussi être capable, une fois qu'il a "accrochée" la ligne,
de la suivre. De cette manière, on récupère toute dérive lors des lignes
droites et on corrige aussi la trajectoire en virage.
La simplicité de l'algorithme permet néanmoins de garder le meilleur
compromis vitesse/fiabilité en évitant la "marche en canard".
btfsc CAP_L_D ; Si ligne détecté à droite
goto L_D ; Sauter aux instructions
goto N_L_D ; Sauter les instructions
L_D
bcf DEL_1 ;Allumer la DEL_1
bcf MOT_D_1 ;Étteindre le moteur droit dans le sens1
N_L_D
btfss CAP_L_D ; Si pas de ligne détecté à droite
goto NL_D ; Sauter aux instructions
goto N_NL_D ; Sauter les instructions
NL_D
bcf rotled,0 ; flag ligne D à 0
bsf DEL_1 ;Etteindre la DEL_1
bcf MOT_D_2 ;Étteindre le moteur droit dans le sens2
bsf MOT_D_1 ;Allumer le moteur droit dans le sens1
N_NL_D
btfsc CAP_L_G ; Si ligne détecté à gauche
goto L_G ; Sauter aux instructions
goto N_L_G ; Sauter les instructions
L_G
bcf DEL_2 ;Allumer la DEL_2
bcf MOT_G_1 ;Étteindre le moteur gauche dans le sens1
N_L_G
btfss CAP_L_G ; Si pas de ligne détecté à gauche
goto NL_G ; Sauter aux instructions
goto N_NL_G ; Sauter les instructions
NL_G
bcf rotled,0 ; flag ligne D à 0
bsf DEL_2 ;Etteindre la DEL_2
bcf MOT_G_2 ;Étteindre le moteur gauche dans le sens2
bsf MOT_G_1 ;Allumer le moteur gauche dans le sens1
N_NL_G