Ir ao conteúdo
  • Cadastre-se

Pedro S.M

Membro Júnior
  • Posts

    6
  • Cadastrado em

  • Última visita

  1. Bom dia amigos. Problemas resolvidos! Como o @Microdesign lembrou, eu ainda não tinha citado sobre o que se tratava o meu projeto, então vamos lá: Se trata de um sensor de distância para deficientes visuais. Estou utilizando um sensor ultrassônico hc-sr04 para medir a distância até qualquer obstáculo, e minha PIC mandará uma string via bluetooth pro app de acordo com a distância calculada. O aplicativo, de acordo com a string recebida, vai "dar play" em uma fala dizendo "1 metro" ou "2 metros" e assim em diante. Quanto aos erros, eu estava utilizando comandos errados na minha programação ( c=(sinal+0x30); e putc(c); ao invés de simplesmente putc('string')) e também tinha definido o TX da PIC como entrada no "set_tris". Enfim consegui comunicar a PIC com o meu aplicativo usando o HC-06. Brigadão a todos que comentaram aqui. Qualquer coisa, estou à disposição }
  2. Bom dia! Perdão pela demora pra responder, tive alguns contratempos. Primeiramente, vamos eliminar os erros que eu já corrigi. Eu estava usando uma placa já pronta com um chip max232 pra comunicação serial, o que de acordo com o meu instrutor, não permitia que o módulo se comunicasse. Retirando ele obtive sucesso em alguns testes. Agora fiz o divisor de tensão que você me disse também. Quanto aos testes, fiz o que me pediu e funcionou, os LEDs acenderam. Também fiz outro teste mandando o comando pelo PC através do MagistrumsTerminal via serial, diretamente pro módulo HC-06, sem a PIC, e recebi corretamente no celular. Joinha, o módulo funciona! Porém, quando ponho a PIC com a minha programação, as coisas simplesmente não funcionam... O módulo pareia com o celular, mas não recebo nada tanto no meu aplicativo quando no blueterm. Estou mandando em anexo as imagens dos blocos da programação do meu aplicativo. O HC-06 também está configurado corretamente (chequei isso ontem); o baud rate é 9600, paridade None, 8 bits, 1 Stop Bit. Acredito que o erro está na minha programação, entretanto não consegui encontrar o erro. Vou colocar ela aqui também, talvez você consiga encontrar. O que eu estou tentando enviar via serial é o valor da variável sinal. #include "C:\Users\pedro.junior\Desktop\TCC_Futuro\16f877a.h"#use delay (clock=20000000)#use RS232(baud=9600, parity=N, bits=8,stop=1, xmit=PIN_C6,rcv=PIN_C7)#include "C:\Users\pedro.junior\Desktop\TCC_Futuro\lcd_flexible.c"#include "C:\Users\pedro.junior\Desktop\PICC\Drivers\string.h"void main() { output_high(PIN_E1); char c; float Valor = 0; long int duracao=0; long int cm=0; int sinal=0;set_tris_a(255);set_tris_d(0b00001110);set_tris_c(0b00000110); //Cotrigset_tris_e(255);lcd_init();printf(lcd_putc, "\fMedidor" "\nde Distancia");delay_ms(3000);output_high(PIN_E1);output_low(PIN_D0);duracao=0;while (1){ c=(sinal+0x30); putc(c); // manda c de volta para pc lcd_putc("\f"); lcd_putc(c); // imprime c no LCD delay_ms(1000);output_low(PIN_D0);delay_us(4);output_high(PIN_D0);delay_us(20);output_low(PIN_D0);duracao=0;while (!input(PIN_D1)){}while (input(PIN_D1)){duracao++;delay_us(130);}duracao = duracao*130;cm=(duracao/29)/2;printf(lcd_putc,"\fCentimetros:\n= %lu",cm);delay_ms(1000);if(cm<90){delay_ms(100);if(cm<90){sinal="e";}} if((cm>=90)&&(cm<=110)){delay_ms(100);if((cm>=90)&&(cm<=110)){sinal="a";}}if((cm>=190)&&(cm<=210)){delay_ms(100);if((cm>=190)&&(cm<=210)){sinal="b";}}if((cm>=290)&&(cm<=310)){delay_ms(100);if((cm>=290)&&(cm<=310)){sinal="c";}}if(cm>390){delay_ms(100);if(cm>390){sinal="d";}}} } Novamente, obrigado pela ajuda
  3. @Microdesign, obrigado pela ajuda. Testei sua programação na minha PIC, mas não sei se entendi direito. Compilei o seu código e baixei na PIC, mas quando mando o comando pelo blueterm nada acontece. De qualquer modo, tudo o que eu preciso é enviar um dado qualquer da PIC pro celular, mas o terminal não recebe nada. Estou usando a programação como se fosse enviar os dados via serial normalmente através de um cabo (o que funciona pra mim). Talvez eu não esteja fazendo certo. Se você tiver parte da programação do seu projeto que faça isso, talvez pudesse me ajudar. Sinto que estou cometendo algum erro besta. Alterei a paridade de Even para None, mas nada mudou.
  4. O baudrate está de acordo com as informações que peguei no datasheet. Testei minha programação comunicando com o PC com um cabo serial usando o MagistrumsTerminal, e os dados que eu queria enviar chegaram. Só através do HC-06/Blueterm ele parece não receber. Amanhã testarei dar o curto nos pinos do conector e posto o resultado aqui. valeu
  5. Pessoal, primeiramente obrigado pela atenção. Como vocês devem ter notado, eu estava bastante perdido. Bem, fiz o que disseram mas infelizmente não funcionou. Criei um programa de testes só pra mandar o valor de uma variável qualquer pela serial e já mostrar o mesmo valor em um display conectado à PIC, para ter certeza que a programação está correta: #include "C:\Users\pedro.junior\Desktop\PICC\Devices\16f877a.h"#use delay (clock=20000000)#use RS232(baud=9600, parity=E, bits=8, xmit=PIN_C6,rcv=PIN_C7)#include "C:\Users\pedro.junior\Desktop\TCC_Passado\lcd_flexible.c"#include "C:\Users\pedro.junior\Desktop\PICC\Drivers\string.h"void main() { output_high(PIN_E1); char c; lcd_init(); while(1) { c=(1+0x30); putc(c); lcd_putc("\f"); lcd_putc(c); delay_ms(1000); } } Acredito que a programação está correta. Ela deveria enviar o valor "1" via serial, e o valor chega a ser mostrado no meu display. Porém , absolutamente nada aparece no Blueterm. Ele até encontra e se conecta ao meu dispositivo, mas o valor enviado não aparece, fica só na tela azul inicial. Também já tentei fazer o caminho oposto, enviando algo do Blueterm para a PIC usando o comando c=getch(); e mandando dar um printf no display, mas novamente nada aparece. Caso eu esteja cometendo algum erro besta ou tenha alguma sugestão que vocês possam me dar, será de grande ajuda. Novamente, obrigado
  6. Hello World! Galero, sou novo aqui e este é o meu primeiro tópico, então já peço desculpas adiantado em caso de qualquer vacilo. Pois bem, estou concluindo meu técnico em eletrônica e em meu TCC preciso transferir informações da PIC 18f77.a para um aplicativo para android que desenvolvi no app inventor. Basicamente preciso enviar o valor de uma variável da programação em C da minha PIC até o aplicativo, que vai recebê-lo e executar certas funções. O problema é que estou bastante perdido quanto a como fazer essa integração da pic com o módulo bluetooth. Eu estou utilizando um módulo HC-06 com seu terminal TX conectado diretamente no RX da PIC e vice-versa. O módulo aparentemente funciona corretamente, pareia com o celular ao ser alimentado. A minha grande dúvida está no software, pois não encontro em lugar algum um exemplo de biblioteca Bluetooth para incluir no meu Main.C, e sou bastante inexperiente quanto à programação. Estou usando o CCS como compilador, se alguém conseguir me ajudar com a biblioteca, serei bastante grato. valeu

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!