O que há para se dizer deste chip? Bem, ele é basicamente a versão da microchip do atmega 328p, em outras palavras, o coração do arduino.
Até aqui tudo bem, mas e agora? Simples, ele possui saídas analógicas, digitais, saídas de comunicação RX e TX, "as quais usaremos em conjunto com o bluetooth". e as configurações básicas necessárias para se configurar o chip, usando o pic.
Primeiro de tudo, baixem meu aplicativo para controlar pic pelo celular android,clicando aqui.
A interface dele e ésta que vos apresento:
E agora vamos ao pic.
Antes de mais nada o pic que vos falo é este aqui:
Lembram de como eu falei que pra configurar no pickit 3 voces tinham que pegar os pares iguais? Pois bem, aqui vai a datasheet do pickit 3:
As minhas ligações ficaram assim:
PIC KIT 3 PIC16F876A
1-------------------------------------------------------------1
2-------------------------------------------------------------20
3-------------------------------------------------------------19/8(jumpeie o 19 e 8)
4-------------------------------------------------------------28
5-------------------------------------------------------------27
6--------------------------------------------------------------Ñ é usado.
As ligações ficariam mais ou menos nesse nipe:
Depois que tiverem feito tudo isto vocês terão que compilar este código fonte no pic de vocês. :
---------------------------------------------------------------------------
//***************************************************************************************************************//
//***************************************************************************************************************//
// ELETRONICA E UTILIDADES
// Fonte: www.eletronicaemcasa.blogspot.com
// Autor: Guilherme Vianna Santos
// Versão: 1.0
// Data: 18/10/2015
// E-mai:eletronicaemcasa@gmail.com
//
// Ajudem a divulgar o eletrônica eme casa, seja um seguidor do blog e curtem nossa pagina
// no Facebook
//
// Projeto: Aplicativo para Modulo Bluetoth com o PIC
//***************************************************************************************************************//
//***************************************************************************************************************//
#include <16F876a.h> //Biblioteca do dispositivo PIC16F876A
#use delay(clock=20M) //Informa a frequência do clock de trabalho do processador(20MHZ)
#fuses NOWDT, BROWNOUT, PUT, NOLVP, HS //Configura FUSES
#use fast_io (B) //Informa ao CCS que as I/O serão configuradas manualmente
#use fast_io (C) //Informa ao CCS que as I/O serão configuradas manualmente
#use rs232(baud=9600,xmit=PIN_C6,rcv=PIN_C7)//Configura a comunicação RS232 via Hardware
//Configurações manual dos I/Os
#BYTE PORTC = 0x07 //Endereço de memoria 0x07 define PORTC
#BYTE TRISC = 0x87 //Endereço de memoria 0x87 define configuração do pino como I/O
#BIT LED_Power = PORTC.0 //Define o endereço de memoria 0x07.0 (pino C0) como led power
#BIT Comando_LED = PORTC.3 //Define o endereço de memoria 0x07.3 (pino C3) como Comando LED
#BYTE PORTA = 0x05 //Informa o endereço de memoria do registrador TrisA
#BYTE TRISA = 0x85 //Informa o endereço de memoria do registrador PortA
#BYTE TRISB = 0x86 //Informa o endereço de memoria do registrador TrisB
#BYTE PORTB = 0x06 //Informa o endereço de memoria do registrador PortB
#BYTE STATUS = 0x81 //Informa o endereço de memoria do registrador STATUS
#BIT RBPU = STATUS.7 //Define o endereço de memoria 0x81.7 (RBUP) registrador do pullup_portB
//------------------------------------------Variaveis do Sistema-------------------------------------------------//
void main()
{
int sinal;
TRISB=0b00000000; //Define PortB como pinos de saida
PORTB=0B00000000; //Limpa portB
TRISC=0b10000000; //Define PortC como pinos de saida
PORTC=0B00000000; //Limpa portC
RBPU =0; //Desbilita os pullups do portB
//Teste do LED de Comando
Comando_LED=1; // Liga LED
delay_ms(1000); //Espera 1s
Comando_LED=0; //Desliga LED
//Configura Modulo Bluetooth
printf("AT+NAMEPICBLUE"); //Define Nome do Modulo como "PIC BLUETOOTH"
delay_ms(200); //Espera 0,2s
printf("AT+BAUD4"); // Define a taxta de transmissão para 9600bps
delay_ms(200); //Espera 0,2s
while(true)
{
LED_Power=1; //Liga Led de Power (POWER)
sinal=getc();//Ler o buffer da serial
if (sinal=='a') //Verifica se o sinal é igual a "a"
{
Comando_LED=1; //Liga LED
}
if (sinal=='b') //Verifica se o sinal é igual a "b"
{
Comando_LED=0; //Desliga LED
}
}
}
----------------------------------------------------------------------
Caso tenham se esquecido de como compilar, reveja meu topico anterior sobre pic no display lcd que lah ensino como compilar o arquivo usado o software mplab.
Após configurar , monte o esquema conforme a figura
Pessoal, pra quem quiser fiz a versão melhorada desse programa, que em vez de acionar um led aciona 3, segue o link para novo aplicativo: download
Tive que mudar a interface do mesmo, obs: se voce instalar este, a instalação ira passar por cima do aplicativo anterior, e aquela imagem charmosa ira sumir, caso queira regredir, so desinstalar este aqui e instalar o anterior novamente.
A nova interface ficou com este jeitão aqui:
E óbvio, o código fonte para poder usá-la:
---------------------------------------------
//***************************************************************************************************************//
//***************************************************************************************************************//
// ELETRONICA E UTILIDADES
// Fonte: www.eletronicaemcasa.blogspot.com
// Autor: Guilherme Vianna Santos,alterado por Luciano Cristiano de Oliveira Braun
// Versão: 1.0
// Data: 18/10/2015, alterado em 30/05/2016
// E-mai:eletronicaemcasa@gmail.com
//
// Ajudem a divulgar o eletrônica eme casa, seja um seguidor do blog e curtem nossa pagina
// no Facebook
//
// Projeto: Aplicativo para Modulo Bluetoth com o PIC
//***************************************************************************************************************//
//***************************************************************************************************************//
#include <16F876a.h> //Biblioteca do dispositivo PIC16F876A
#use delay(clock=20M) //Informa a frequência do clock de trabalho do processador(20MHZ)
#fuses NOWDT, BROWNOUT, PUT, NOLVP, HS //Configura FUSES
#use fast_io (B) //Informa ao CCS que as I/O serão configuradas manualmente
#use fast_io (C) //Informa ao CCS que as I/O serão configuradas manualmente
#use rs232(baud=9600,xmit=PIN_C6,rcv=PIN_C7)//Configura a comunicação RS232 via Hardware
//Configurações manual dos I/Os
#BYTE PORTC = 0x07 //Endereço de memoria 0x07 define PORTC
#BYTE TRISC = 0x87 //Endereço de memoria 0x87 define configuração do pino como I/O
#BIT LED_Power = PORTC.0 //Define o endereço de memoria 0x07.0 (pino C0) como led power
#BIT Comando_LED = PORTC.3 //Define o endereço de memoria 0x07.3 (pino C3) como Comando LED
#BIT Comando_LED1 = PORTC.4
#BIT Comando_LED2 = PORTC.5
#BYTE PORTA = 0x05 //Informa o endereço de memoria do registrador TrisA
#BYTE TRISA = 0x85 //Informa o endereço de memoria do registrador PortA
#BYTE TRISB = 0x86 //Informa o endereço de memoria do registrador TrisB
#BYTE PORTB = 0x06 //Informa o endereço de memoria do registrador PortB
#BYTE STATUS = 0x81 //Informa o endereço de memoria do registrador STATUS
#BIT RBPU = STATUS.7 //Define o endereço de memoria 0x81.7 (RBUP) registrador do pullup_portB
//------------------------------------------Variaveis do Sistema-------------------------------------------------//
void main()
{
int sinal;
TRISB=0b00000000; //Define PortB como pinos de saida
PORTB=0B00000000; //Limpa portB
TRISC=0b10000000; //Define PortC como pinos de saida
PORTC=0B00000000; //Limpa portC
RBPU =0; //Desbilita os pullups do portB
//Teste do LED de Comando
Comando_LED=1; // Liga LED
delay_ms(1000); //Espera 1s
Comando_LED=0; //Desliga LED
//Configura Modulo Bluetooth
printf("AT+NAMEPICBLUE"); //Define Nome do Modulo como "PIC BLUETOOTH"
delay_ms(200); //Espera 0,2s
printf("AT+BAUD4"); // Define a taxta de transmissão para 9600bps
delay_ms(200); //Espera 0,2s
while(true)
{
LED_Power=1; //Liga Led de Power (POWER)
sinal=getc();//Ler o buffer da serial
if (sinal=='a') //Verifica se o sinal é igual a "a"
{
Comando_LED=1; //Liga LED
}
if (sinal=='b') //Verifica se o sinal é igual a "b"
{
Comando_LED=0; //Desliga LED
}
if (sinal=='c') //Verifica se o sinal é igual a "c"
{
Comando_LED1=1; //Liga LED
}
if (sinal=='d') //Verifica se o sinal é igual a "d"
{
Comando_LED1=0; //Desliga LED
}
if (sinal=='e') //Verifica se o sinal é igual a "e"
{
Comando_LED2=1; //Liga LED
}
if (sinal=='f') //Verifica se o sinal é igual a "f"
{
Comando_LED2=0; //Desliga LED
}
}
}
------------------------------------------
ficando assim a montagem final:
Não vou fazer um vídeo dele funcionando por que dei provas mais do que suficientes para conseguir a confiança do povo que me assiste:). Além do mais, ja tem 2 vídeos meus no youtube relacionado a bluetooth, pra quê mais um não eah?.
Bom pessoal e é isso, até a próxima.
Nenhum comentário:
Postar um comentário