Pessoal, estou enviando um caractere serial para o PIC, mas o mesmo não está conseguindo identifica-lo. Para garantir que o meu transmissor está funcionando, conectei ele a um arduino programado com um código de echo, enviando tudo que ele recebe para o monitor serial, e o caractere desejado apareceu no mesmo.
O código que estou usando no PIC16F877A no CCS é o seguinte:
#use rs232(baud=9600,xmit=PIN_C6,rcv=PIN_c7)
#define LED (output(pin_c0))
char test;
MAIN()
{
WHILE(1)
{
test=GETC();
if(test=="L")
{
output_high(led);
}
}
}
Como podem ver, minha intenção é que ao identificar o caractere "L" vindo pela serial,
o PIC acenda um LED, porem ele nunca executa essa instrução IF
Minhas duvidas são:
Se o monitor serial enxerga o caractere corretamente, existe a
possibilidade do problema ser a transmissão?
E o código que fiz para o PIC, está correto?
Tags:
Não ficou claro - quem esta transmitindo para a serial do PIC?
Mostre o diagrama da ligação da interface serial com o PIC.
Se tiver foto, envie também.
Você consegue receber o caracter L no Arduino ?
Então, é um display LCD touch screen com comunicação serial.
A ligação é TX>RX e RX>TX, e acredito que não tenha problema na conexão, pois eu consigo escrever no display. Mas não consigo ler os comandos programados para ele enviar de volta para o PIC quando um botão do touch é acionado.
No monitor serial do arduino o L sai perfeitamente, sem nenhum espaço, e é impresso um para cada toque na tela, bem como deveria ser.
Mas por algum motivo não consigo receber nada no PIC
Pode ser a programação da função touch do seu display.
Qual modelo e fabricante do seu display ? envie o link.
Que biblioteca usou no Arduino para acessar o seu display ? Envie o sketch.
O display é do seguinte fabricante
O modelo é NX4024T032
A biblioteca do arduino que está conseguindo interpretar o código é a seguinte:
/* Simple Serial ECHO script : Written by ScottC 03/07/2012 */
/* Use a variable called byteRead to temporarily store
the data coming from the computer */
byte byteRead;
void setup() {
// Turn the Serial Protocol ON
Serial.begin(9600);
}
void loop() {
/* check if data has been sent from the computer: */
if (Serial.available()) {
/* read the most recent byte */
byteRead = Serial.read();
/*ECHO the value that was read, back to the serial port. */
Serial.write(byteRead);
}
}
Apenas conectei o RX e TX do arduino ao do display igual ao que fiz no PIC
E o arduino imprime perfeitamente o que eu envio pelo display
Beleza , veja o datasheet :
https://www.itead.cc/wiki/NX4024T032
Existem dois modelos :
NX4024T032_011N (N: No touch) |
NX4024T032_011R (R: Resistive touchscreen) |
O que enviou não é uma biblioteca e sim um Sketch de teste de eco da interface serial.
Com esse sketch de Eco, você recebe o caracter L quando pressiona alguma parte do Touch?
Outros caracteres são ecoados quando outras partes da tela são pressionadas ?
Pelo que eu entendi, terá que usar um programa para editar a programação do display .
Nextion Editor
http://nextion.itead.cc/download.html
Não consigo instalar no meu Windows 10 ....
Acabei conseguindo resolver o problema, e era uma coisa bem boba na verdade.
O PIC é 5V e a tela 3,3V..... ai já viu né
A tela entendia 5V como nivel alto, mas o PIC nao aceita 3,3V como nivel alto.
Agora consigo tanto receber como enviar. Obrigado pela ajuda José.
Saudações, estou com um problema semelhante mais o meu caso é com o esp8266 e Arduíno, quando uso o Arduíno como simples adaptador de USB consigo receber e transmitir informac mais quando ligo o esp8266 para se comunicar com o atmega 328p o esp entra em um lup infinito de transmissão de caracter estranhos.
Podia ajudar com a solução que tiveste.
Veja isso :
ESP8266 - Interface Serial 5V - testado e aprovado OK :
http://labdegaragem.com/forum/topics/conhecendo-o-esp8266?commentId...
ESP8266 12E - Conexão USB Serial
http://labdegaragem.com/forum/topics/conhecendo-o-esp8266?commentId...
ESP8266 - Teste de comunicação serial do Arduino com o ESP8266 :
http://labdegaragem.com/forum/topics/conhecendo-o-esp8266?commentId...
ESP8266 - Usando IDE Arduino (exemplos ADAFRUIT/SPARKFUN )
http://labdegaragem.com/forum/topics/conhecendo-o-esp8266?commentId...
Olá Vitor, beleza ?
Como vc resolveu o problema com a diferença de voltagem na serial ?
Vc usou algum hardware a parte nos pinos RX TX do PIC ?
Agradeço sua ajuda.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por