MOTORE PASSO PASSO CONTROLLATO DA PC Il circuito che abbiamo realizzato provvede a pilotare un motore passo/passo in base ad un comando proveniente da un pannello di controllo creato in visual basic nella schermo di un personal computer ed inviato in maniera seriale alla nostra scheda. Il circuito è formato da 2 blocchi. Un primo blocco provvede a ricevere un codice inviato dal PC e trasmesso tramite la porta seriale. Tale codice a 8 bit viene ricevuto da un primo PIC che lo mette nelle 8 linee del suo PORTB. Un secondo blocco legge il codice dalle 8 linee del PORTB del primo PIC ed in funzione del valore arrivato manda in esecuzione uno tra due sottoprogrammi di pilotaggio del motore. I due sottoprogrammi memorizzati all’interno del PIC, generano 4 onde quadre ai pin RB2, RB3, RB4 ed RB5, opportunamente sfalsate per consentire al motore di ruotare nel modo prescelto. Quando la tensione in uscita da un piedino del PIC si porta a livello alto il MOSFET va in conduzione e permette alla corrente di scorrere nella corrispondente fase del motore. Considerando che il motore ha 200 step e che nella rotazione veloce deve compiere 1 giro al secondo si può calcolare che ogni fase deve rimanere eccitata per un tempo pari a 1/200 sec. = 5ms. Giocando sull’ordine di eccitazione delle 4 fasi possiamo far muovere il motore in 2 maniere differenti e cioè: senso orario o antiorario. Il programma di ricezione di dati tramite il protocollo RS232 in esecuzione nel primo microcontrollore ha le seguenti caratteristiche: 9600 bit/sec - no parity - 8 bit di dato 1 bit di stop. I codici utilizzati sono solamente 3 tra i 256 disponibili ed in particolare: 00000000 = motore spento 00000001 = rotazione avanti 00000011 = rotazione dietro Tali codici, come detto all’inizio, vengono generati da un programma in visual basic in esecuzione nel PC dove viene simulato nello schermo un pannello con 2 pulsanti: uno per accendere e spengere il motore ed un altro per invertire il senso di rotazione.