Comunicação serial RS232 com Leitura/Escrita da EEPROM no PIC16F628A

Muitos cursos de eletrônica fazem uma breve introdução ao mundo dos microcontroladores, mostrando superficialmente como utilizar seus recursos. Pensando nisso, este artigo tem como objetivo mostrar como utilizar dois recursos muito úteis no PIC 16F628A, comunicação serial e armazenamento de dados na memória EEPROM interna do PIC.

Com a comunicação serial é possível que seu projeto interaja com qualquer outro dispositivo que possua este recurso, como computadores, outros microcontroladores e placas de comunicação wireless (os famosos módulos HC-05 por exemplo), entre outras. Já armazenar dados na EEPROM, permite armazenar dados, para que sejam recuperados posteriormente, mesmo que seu circuito tenha sido desligado completamente da alimentação.

Neste pequeno tutorial, irei demonstrar como fazer esta comunicação, de maneira bem simples e didática. Iremos utilizar, além do PIC, uma placa Arduino para recepção e envio de dados pela serial.  Ao enviar um dado do Arduino pela serial para o PIC, ele  armazena este na sua memória interna e reenvia para o Arduino.  Ao pressionar o botão, é feita a leitura da memória e enviado o último dado gravado. O Arduino por sua vez, faz leitura do serial monitor, enviando para a serial tudo o que for escrito, e exibe na tela o que foi recebido pela serial.

Abaixo segue código fonte para o PIC:

Na rotina principal do PIC, temos o chamado da função que faz a leitura do buffer da serial, caso existir algum dado, ele grava este valor na posição definida da EEPROM, e responde com o mesmo valor, também, caso o botão for pressionado, ele faz a leitura do valor gravado na EEPROM e envia pela serial.

Abaixo código para Arduino:

A função deste código é apenas fazer a leitura dos dois canais seriais utilizados, o que faz comunicação com o PIC e a serial do Serial monitor, quando receber algum valor do PIC, ele exibe o valor no serial monitor, e quando algo for inserido no serial monitor, ele envia este valor para o PIC.

Esquema Elétrico:

esquema

Este foi um breve tópico introdutório para utilização da Serial e EEPROM do PIC, estas duas funcionalidades podem ser melhoradas utilizando-se interrupções, para um melhor aproveitamento da performance do seu PIC. Interrupções no PIC já é tema para um próximo artigo.

Imagem da montagem do PIC no protoboard:

IMG_3152