Il semaforo stradale proposto in questo articolo può essere utilizzato in diverse applicazioni. Lo possono adottare i bambini per giocare con un dispositivo realmente funzionante oppure può costituire la base per la realizzazione di un reale sistema per la regolazione del traffico stradale. Il progetto è molto semplice e utilizza un microcontrollore PIC programmato tramite il linguaggio di programmazione Ladder.
Il semaforo
Questa applicazione, peraltro molto semplice, prevede un funzionamento sequenziale a più stati. Lo schema elettrico generale, ma funzionante, è mostrato nella illustrazione sotto. Il cuore del circuito è il microcontrollore PIC 16F876 ma, ovviamente, si può utilizzare qualsiasi altra MCU.
Il carico è rappresentato, in questo caso, da tre diodi Led preceduti da altrettante resistenze di limitazione da 220 Ohm. Con opportuni circuiti di potenza è, tuttavia, possibile adottare lampade o attuatori più potenti. Il clock della MCU è esterno di tipo RC. La determinazione della frequenza di clock è gestita dalla seguente formula:
T = R * C * 2.3
e
F = 1 / (R * C * 2.3)
Usando un resistore da 4.7 kOhm e una capacità da 22 pF, la frequenza del micro è di 4204861 Herz (4.2 Mhz). Il funzionamento è, come detto, suddiviso in stati, precisamente quelli previsti dal seguente elenco:
- fase 1: luce verde;
- fase 2: luce gialla;
- fase 3: luce rossa.
Una più attenta analisi determina i seguenti stati logici per i tre diodi Led:
- fase 1: verde ON, giallo e rosso OFF;
- fase 2: verde e giallo ON, rosso OFF;
- fase 3: rosso ON, verde e giallo OFF.
Il ciclo è ripetitivo e infinito. Il diagramma raffigurato sotto chiarisce ancor meglio la sequenzialità degli eventi.
Per i primi 3 secondi si illumina, dunque, il diodo Led di colore verde, poi il giallo e il verde restano accesi per 1 secondo e, infine, solo il rosso resta acceso per tre secondi. L’intero ciclo si ripete all’infinito.
Il software in linguaggio Ladder
Per la comprensione del programma occorre conoscere la filosofia del linguaggio Ladder. Esso è massivamente adottato per la programmazione dei PLC. I rungs della logica della procedura, realizzati tramite il programma LDmicro, sono i seguenti:
Il “cuore” del programma è rappresentato dal timer “orologio”, che genera un fronte di salita e di discesa di un secondo. Esso incrementa ciclicamente la variabile “contatore”, che ha un intervallo di vita compreso tra 1 e 7. Seguono, dunque, i tre controlli:
- se la variabile “contatore” è compresa tra 1 e 3, vengono resettati (spenti) i diodi Led rosso e giallo e viene settato (acceso) il diodo Led verde;
- se la variabile “contatore” è 4, viene acceso il diodo Led giallo. Quello verde risulta già acceso;
- se la variabile “contatore” è compresa tra 5 e 7, vengono resettati (spenti) i diodi Led giallo e verde e viene settato (acceso) il diodo Led rosso.
Le assegnazioni delle porte sono le seguenti:
Modificando il tempo di scansione del timer è possibile variare la velocità del semaforo. Si compili il programma in formato HEX che si può trasferire, infine, all’interno del microcontrollore.