LEZIONE 40

MOTORI

Andiamo avanti e scriviamo un programma che esegue i movimenti scritti di seguito.

AVANTI
DESTRA
AVANTI
DESTRA
AVANTI

Molte persone potrebbero pensare che il programma sia il seguente:


#CHIP 16F84, 4		'Tipo di PIC utilizzato

Dir PORTA OUT		'Definisco le porte d'uscita
Dir PORTB IN 		'e d'ingresso

PortA = b'00001001' 	'Avanti
PortA = b'00000101' 	'Destra
PortA = b'00001001'	'Avanti
PortA = b'00000101' 	'Destra
PortA = b'00001001' 	'Avanti

END 			'Fine del programma

Ma un programma del genere è errato, non a livello di sintassi, infatti il compilatore lo compilerà senza problema ma a livello logico.
Una volta compilato ed inserito nel PIC vedremmo il microrobot andare avanti e basta.
L’errore è dovuto ad un ragionamento scorretto, il microcontrollore eseguirà tutte le istruzioni inserite in una frazione di secondo e noi vedremo solo l’ultima, questo perché il PIC preso in esame (ovvero il 16F84) in questo caso ha una frequenza di 4Mhz cioè di 4 milioni di operazioni in un secondo e quindi per compiere quelle 5 istruzioni ci metterà meno di un secondo.

Per “vedere” eseguite le altre istruzioni, dobbiamo creare un ritardo, come nel programma seguente.


#CHIP 16F84, 4		'Tipo di PIC utilizzato
Dir PORTA OUT 		'Definisco le porte d'uscita
Dir PORTB IN 		'e d'ingresso
PortA = b'00001001' 	'Avanti
WAIT 1 sec 		‘Ritardo di un secondo
PortA = b'00000101' 	'Destra
WAIT 1 sec		‘Ritardo di un secondo
PortA = b'00001001' 	'Avanti
WAIT 1 sec 		‘Ritardo di un secondo
PortA = b'00000101' 	'Destra
WAIT 1 sec 		‘Ritardo di un secondo
PortA = b'00001001' 	'Avanti
END 			'Fine del programma

LEZIONE 41
LEZIONE 39