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)

I files .HEX nonchè il contenuto di queste pagine è stato rilasciato per applicazioni didattiche SENZA fine di lucro. Per qualsiasi altro tipo di applicazione potete contattarmi via email.

The files. HEX and the content of these pages was released for teaching applications WITHOUT end of I make money from. For any other type of application it be able to contact me via email.

© Copyright tony@microt.it