Canalina seriale
con PIC16F877A e LCD
ATTENZIONE:
Chi ha realizzato questo o altri
progetti presenti in questo sito, per favore può inviarmi sulla mia
email delle foto delle sue realizzazioni? Vorrei metterle qui
on-line in modo che siano visibili e possano servire da spunto per
nuove idee, realizzazioni diverse o modifiche , seguendo in questo
modo lo spirito di questo sito che è a favore della divulgazione e
conoscenza gratuita dell'elettronica. Inoltre se voi, mentre inviate le foto dei vostri prototipi, mi autorizzate a mettere on-line insieme alle foto almeno il vostro nome e la vostra email, potrete essere contattati o potrete contattare un altro utente che ha realizzato lo stesso progetto in modo da poter fare insieme dei confronti costruttivi. Vi ringrazio anticipatamente, Tony |
Questo progetto è una canalina da montare in un rack, oppure in contenitore classico e prevede il pilotaggio delle uscite via seriale RS 232, comprende anche un display LCD a 16x2 che monitorizza lo stato attuale delle uscite.
Sono previsti due modi di pilotaggio via seriale, il primo è tramite un terminale qualsiasi, sia esso un computer, un palmare ecc... l'altro tramite comandi particolari inviati da un programma scritto dall'utente stesso; le due modalità di funzionamento essendo diverse, sono selezionabili tramite un jumper.
Schema elettrico - Electric diagram
Potenza 1
Potenza 2
Alimentatore / Power Supply
Prototipo con relè Tyco
Prototipo potenza 1 e 2 con relè a basso costo
Prototipo
Prototipo LCD
Prototipo
Prototipo potenza
Prototipo potenza
Canalina seriale RS232
Questa canalina è alimentata con la tensione di rete a 230V~, è provvista di 6 prese in grado di erogare una corrente massima totale di X ampere ed una massima per singola presa di YA.
Questo dispositivo è provvisto di un display LCD tramite il quale è possibile individuare immediatamente lo stato di ciascuna presa.
Nella riga superiore del display è visibile il numero della presa (OUT) e sotto il numero è presente lo stato della presa, il rettangolo vuoto indica che la presa è disattivata, il rettangolo pieno indica che la presa è attivata.
Il protocollo di trasmissione è:
9600 Baud, 8 Bit, N Nessuna parità, 1Stop
Le modalità di funzionamento sono due:
1) Modalità terminale
2) Modalità binaria
Modalità Terminale
Per attivare la modalità terminale occorre rimuovere il jumper J1.
Dopo l’accensione e la visualizzazione del copyright, in qualsiasi momento è possibile attivare un terminale RS232 qualsiasi per modificare e monitorare a distanza lo stato delle prese della canalina. Abbiamo scelto il teminale di Windows perché è il più diffuso.
Per attivare la ricezione del menù, occorre premere il tasto CR (Invio), il menù che appare è il seguente:
================================
CANALINA SERIALE
SER6 v.1.0
================================
(1) OUT 1 --> OFF
(2) OUT 2 --> ON
(3) OUT 3 --> ON
(4) OUT 4 --> OFF
(5) OUT 5 --> OFF
(6) OUT 6 --> OFF
(A) Attiva tutti gli OUT
(D) Disattiva tutti gli OUT
(U) Uscita
Scelta [ ]
In questo menù possiamo osservare che sono presenti le prime sei voci con il comando numerico da “1” a “6” per il cambio di stato da attivo a disattivo e viceversa, infatti è possibile osservare alla destra del singolo OUT il relativo stato ON o OFF; ad esempio premendo il pulsante numerico “1” si otterrà il cambio di stato della presa n°1 da disattiva ad attiva; lo stesso vale per le altre scelte numeriche da “1” a “6”.
Il comando “A” richiede alla canalina di attivare TUTTE le prese contemporaneamente, e siccome questa potrebbe essere una manovra particolarmente delicata, viene chiesta una ulteriore conferma dell’operazione come visibile sotto:
================================
CANALINA SERIALE
SER6 v.1.0
================================
(1) OUT 1 --> OFF
(2) OUT 2 --> ON
(3) OUT 3 --> ON
(4) OUT 4 --> OFF
(5) OUT 5 --> OFF
(6) OUT 6 --> OFF
(A) Attiva tutti gli OUT
(D) Disattiva tutti gli OUT
(U) Uscita
Scelta [ ]
Attivare tutti gli OUT? (S/N)
Se la risposta è “S” vengono attivate tutte le prese, altrimenti il comando viene ignorato.
Lo stesso vale per il comando “D” che richiede alla canalina di disattivare contemporaneamente TUTTE le prese, anche in questo caso viene richiesta una conferma.
La scelta “U” consente di uscire dal menù e disattivare la trasmissione seriale che potrà essere riattivata in qualunque momento semplicemente entrando nella modalità terminale e premendo il tasto CR (Invio).
Modalità Binaria
Questa modalità è gestibile dal programma fornito a corredo della canalina, oppure, tramite le specifiche di comunicazione di seguito riportate è possibile interagire per controllare la canalina (master/slave) con programmi fatti ad hoc.
Modalità di comunicazione
1) Richiesta stato
Per richiedere lo stato corrente alla canalina, occorre inviare il carattere 5
(ENQ) Decimale 5 Esadecimale 0x05
A questa richiesta la canalina risponde inviando lo stato degli out e se la canalina slave è collegata trasmettendo una stringa ASCII di 14 caratteri così formata:
ATTENZIONE! I numeri inviati sono inviati in formato ASCII per cui ad esempio se il carattere 7 è uguale a 1 non è uguale a 1 come numero decimale ma come carattere ASCII cioè decimale 49 esadecimale 0x31, lo stesso vale per lo zero ASCII che è 48 decimale e 0x30 esadecimale.
Carattere 1 = 1 Out 1 attivo, = 0 Out 1 non attivo
Carattere 2 = 1 Out 2 attivo, = 0 Out 2 non attivo
Carattere 3 = 1 Out 3 attivo, = 0 Out 3 non attivo
Carattere 4 = 1 Out 4 attivo, = 0 Out 4 non attivo
Carattere 5 = 1 Out 5 attivo, = 0 Out 5 non attivo
Carattere 6 = 1 Out 6 attivo, = 0 Out 6 non attivo
Carattere 7 = 1 Out 7 attivo, = 0 Out 7 non attivo
Carattere 8 = 1 Out 8 attivo, = 0 Out 8 non attivo
Carattere 9 = 1 Out 9 attivo, = 0 Out 9 non attivo
Carattere 10 = 1 Out 10 attivo, = 0 Out 10 non attivo
Carattere 11 = 1 Out 11 attivo, = 0 Out 11 non attivo
Carattere 12 = 1 Out 12 attivo, = 0 Out 12 non attivo
Carattere 13 = 1 Canalina slave collegata, = 0 Canalina slave NON collegata
Carattere 14 = CR (Fine trasmissione) decimale 13 esadecimale 0x0D
2) Attivazione/Disattivazione singolo OUT
Per attivare o disattivare un OUT è sufficiente inviare alla canalina l’identificatore dell’out e lo stato che si vuole impostare seguendo la tabella sottostante.
Ad esempio per disattivare l’out 1 occorre inviare 10 cioè 1 ASCII per identificare l’out e zero ASCII per indicare alla canalina che lo si vuole disattivare.
11 Attiva out 1
10 Disattiva out 1
21 Attiva out 2
20 Disattiva out 2
31 Attiva out 3
30 Disattiva out 3
41 Attiva out 4
40 Disattiva out 4
51 Attiva out 5
50 Disattiva out 5
61 Attiva out 6
60 Disattiva out 6
71 Attiva out 7
70 Disattiva out 7
81 Attiva out 8
80 Disattiva out 8
91 Attiva out 9
90 Disattiva out 9
A1 Attiva out 10
A0 Disattiva out 10
B1 Attiva out 11
B0 Disattiva out 11
C1 Attiva out 12
C0 Disattiva out 12
La canalina, una volta ricevuto il comando ed agito come richiesto, invia come risposta l’azione effettuata e cioè lo stesso comando che ha ricevuto per eventuali controlli.
Per cui se la canalina riceve 71 per attivate l’out 7, dopo averlo attivato, risponde con 71.
3) Attivazione/Disattivazione contemporanea dei 6 out della canalina master e dei 6 out della canalina slave
M1 Attiva tutti gli out della canalina master
M0 Disattiva tutti gli out della canalina master
S1 Attiva tutti gli out della canalina slave
S0 Disattiva tutti gli out della canalina slave
Datasheet relè Tyco RT2.pdf (220k)
File .HEX per PIC 16F877A CAN_SER.zip (5k)
© Copyright tony@microt.it