Compito in classe di programmazione

PIC

 

Automazione cancello scorrevole

Esercizio scolastico

progetto 18

autore

email

note

Cancello a scorrimento

Lino Battilana

lino.battilana@gmail.com

Compito in classe per i tecnici della formazione professionale basato su Micro-GT mini con MCU 16F876A e linguaggio "C" su IDE MplabX

Premessa

Sono docente di formazione professionale in una scuola situata a Schio, in provincia di Vicenza, alle pendici del monte Pasubio.

Da qualche anno ho introdotto  la programmazione dei microcontrollori PIC nel programma didattico e di Laboratorio.  Prima di adottare la piattaforma Micro-GT ho provato altri prodotti, anche molto noti, ma solo questa piccola e chiarissima scheda mi ha dato la possibilità di svolgere la didattica in maniera comprensibile, di immediata comprensione, ma sopratutto spendibile nelle aziende dato che si basa sui sistemi ufficiali dei produttori stessi dei chip.

Il testo che uso è la versione ridotta del "L'et's GO PIC!!!", ovvero la versione essential, dato che è alla portata di tutte le tasche e contiene gli ultimi aggiornamenti inmerito all'MPLAB X.

Il link per procurarvi il testo è questo -> Libro Let's GO PIC!!! essential

Lo voglio consigliare a tutti i colleghi docenti.  é scritto in un inglese semplice e schematico, comprensibile a qualunque tecnico che sia in grado di leggere almeno un databook.  A mio avviso l'inglese scolastico è più che sufficiente.

La copertina è questa:

 

 

DATI DI PROGETTO

Un sistema a microcontrollore controlla un dispositivo automatico di apertura e chiusura di un cancello scorrevole, mediante l’impiego di porte di ingresso e di uscita opportunamente interfacciate.

Il sistema si compone di:

  1. un motore a 230V, che può ruotare nel due sensi per consentire l'apertura o la chiusura dei cancello;
  2. due interruttori di fine corsa, che si chiudono rispettivamente a cancello completamente aperto e completamente chiuso;
  3. un sensore di prossimità (fotocellula) che segnala la presenza di qualcuno nei pressi del cancello.

Progettare:

  1. un diagramma a blocchi dell'intero sistema;
  2. lo schema di utilizzo delle porte di I/0 impiegate;
  3. un diagramma di flusso per il programma di controllo del sistema;
  4. il programma di gestione in linguaggio C;
  5. schemi elettrici.

 

SOLUZIONE

SCHEMA A BLOCCHI:

La PORTA-B viene utilizzata come INPUT; gli INPUT sono:

 

In sintesi per la PORTA B (INPUT), i pins del microcontrollore vengono così assegnati:

RB0        FCC

RB1        FCA

RB2        B1

RB3        B2

RB4        PA

RB5        PC

 

La PORTA-C viene utilizzata come OUTPUT; gli OUTPUT sono:

 

In sintesi per la PORTA C (OUTPUT), i pins del microcontrollore vengono così assegnati:

RC0        RLA

RC1        RLC

RC2        L1

 

Per segnalare se il cancello si sta aprendo o chiudendo mettiamo un LED, con in serie una R di limitazione di corrente, in parallelo alla bobina dei rispettivi relè (vedi schema elettrico).

Ogni ATTUATORE (RLA e RLC) verrà pilotato da un transistore che funge da BUFFER (adattatore del livello di tensione e di corrente).

Un contatto N.C. di un relè sarà utilizzato per realizzare l’interblocco dell’altro relè ai fini di evitare che possano eccitarsi contemporaneamente in caso di mal funzionamento del sistema.

 

 

DIAGRAMMA DEGLI STATI

 


DIAGRAMMA DI FLUSSO (a STATI)

 

 

 

 

STATO 0 (CANCELLO CHIUSO)

Inizialmente, quando si accende il sistema, sarò nello stato 0 (cancello chiuso) e quindi per precauzione vado a mettere il livello d’uscita dei relè e del lampeggiante a 0 e di conseguenza motore e lampeggiante spenti.

Poi controllo lo stato logico dei pulsanti di apertura e chiusura che determinano la continuazione del programma nella fase di apertura (blocco a sinistra) o nella fase di chiusura (blocco a destra).

Infatti se PA (Pulsante Apertura) non è premuto (allora il suo livello di V è alto cioè  1 logico, in quanto il pulsante è collegato verso massa) vado a testare PC (Pulsante Chiusura): se premuto (livello logico 0) devo gestire la chiusura del cancello.

 

STATO 1 (APERTURA DEL CANCELLO)

Nel caso di pressione di PA passo allo stato 1 (stato di apertura), controllo il fine corsa FCA per verificare se sono arrivato nella condizione di cancello aperto.

Se FCA è aperto (1 logico) cioè cancello completamente aperto, mi assicuro di spegnere il relè RLC e L1; passo allo stato 3 (temporizza) e quindi ritorno a inizio del ciclo.

Altrimenti il programma rimane nella fase di apertura finchè FCA interviene (livello logico 1) quando il  cancello è tutto aperto.

 

STATO 2 (CHIUSURA DEL CANCELLO)

Se ora viene premuto il pulsante di chiusura PC il programma passa allo stato 2 e quindi esegue la routine di chiusura.

In questa fase di chiusura devo controllare continuamente gli ingressi per verificare se il cancello è a fine corsa FCC o se viene interrotta la barriera a fotocellula B1-B2: in ogni caso devo fermare il motore e il lampeggiante.

Se FCC è aperto (livello 1) cioè cancello completamente chiuso, passo allo stato 0 e blocco il relè RLC ed L1.

Se nella fase di chiusura del cancello viene attivata la barriera B1 o B2, azzero RLC e L1, rimango in pausa per 2 secondi circa, per dare il tempo al motore di fermarsi prima di ripartire nell’altro senso. Quindi attivo il lampeggiante L1 e il  RLA .

 

STATO 3 (TEMPORIZZAZIONE DEL CANCELLO)

In questa fase incremento una variabile “tempo” e verifico se essa è arrivata a 30 (secondi); nel caso sia vero passo allo stato 2 cioè alla chiusura del cancello.

 

 

SCRITTURA DEL PROGRAMMA

Definizione delle costanti

(Definizione delle variabili da usare)

 

Download il sorgente in Hitech C