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