Suivit de la ligne

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".

Logigramme

Organigramme

Code source

       	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