1. Introdução
Este artigo mostra como comunicar com o microcontrolador PIC16F877A utlizando a placa CuscoPIC. Para isto, utilizaremos o driver ASCII para comunicar via Serial/Serial (RS232/RS232).
Primeiramente, deve-se programar o microcontrolador utilizando a porta paralela, e então passar o bootloader para que a placa habilite a porta RS232. (O site da CuscoPIC apresenta os passos para a gravação do bootloader).
Em seguida, na programação do controlador, pode-se utilizar o programador MPLab, software próprio da Microchip, fabricante do PIC16F877A.
2. Programação
O programa utilizado neste exemplo funciona de modo a ler os valores vindo da serial do computador.
{
char x,y, linha[17];
signed long aux;
int index;
while(1) // laço infinito
{
if (!kbhit()) continue;
x = getch();
if (x == ‘A’) { //Testa valor vindo do supervisório
aux = AD(0); //Passa o valor do potenciômetro para uma variável “aux”
printf(“%04li”, aux); //Imprime no display o valor do potenciômetro
} else if (x == ‘B’) { //Testa valor vindo do supervisório
output_d(y); //Escreve o valor de “y” na saída D
if (y) y=0; else y=128; //Se “y” for igual a “0”, recebe o valor “128”
} else if (x == ‘C’) { //Testa valor vindo do supervisório
index=0; //Configura o vetor para o display
do {
linha[index]=getch();
index++;
} while(linha[index-1]);
lcd_gotoxy(1,2);
printf(lcd_putc,”SLIDER=%s”, linha); //Imprime no display “Slider=” o valor vindo do slider do supervisório.
}
}
}
3. Configuração
Após
compilar e gravar o programa na CuscoPIC, deve-se configurar o
supervisório, seja ele o Elipse SCADA ou o Elipse E3. No exemplo abaixo,
a configuração foi desenvolvida no Elipse SCADA, mas também é válida
para o Elipse E3.
1. Adicione o driver ASCII no projeto.
2. Configure os extras do driver com os comandos TX e RX (escrita e leitura) da serial.
Obs.:
É possível configurar o tipo de informação a ser lida pelo driver como o
exemplo do comando “C” descrito na programação no microcontrolador, no
caso C%4u/h00 (sendo % – símbolo identificador de campo variável; 4 – número de caracteres; u – decimal sem sinal; e /00
– caractere especial em formato hexadecimal de dois dígitos). Todas as
possibilidades para esta configuração encontram-se no manual do driver,
no capítulo Configuração dos Comandos ASCII.
3. Configure o meio físico de conexão (Physical Layer) como serial e preencha os dados conforme as informações dados pelo desenvolvedor da placa.
4. Insira e configure os tags conforme o ID configurado nos extras do driver e o parâmetro desejado, seja ele de leitura e/ou escrita. Para maiores informações dos parâmetros de leitura e escrita, ver o capítulo Referência de Tags do manual do driver.
Exemplos de configuração de tags:
N1 = 0; N2 = 3; N3 = 0; N4 = 0
Tag de leitura e escrita (N1=0); utilizando o comando de índice 3 (N2 = 3); com o índice da variável em 0 (N3 = 0); e sem Offset na mensagem (N4 = 0).
N1 = 1; N2 = 4; N3 = 0; N4 = 0
Tag que lê ou escreve os valores dos campos variáveis de TX antes de enviar um comando (N1 = 1); utilizando o comando de índice 4 (N2 = 4); com o índice da variável em 0 (N3 = 0); e padrão 0 no N4 (N4 = 0).
N1 = 4; N2 = 4; N3 = 0; N4 = 0
Tag que envia uma pergunta ao microcontrolador (N1 = 4); utilizando o comando de índice 4 (N2 = 4); padrão 0 no N3 (N3 = 0); e padrão 0 no N4 (N4 = 0).
5. Após configurados os tags, configure as telas conforme desejado.
4. Considerações Finais
É possível comunicar com um equipamento microcontrolado utilizando o driver ASCII, desde que ele tenha suporte a escrita e leitura de mensagens com o supervisório pela porta RS232. Estas mensagens são configuradas anteriormente no programa do microcontrolador.
bom