Bom dia pessoal,
Estou tenando comunicar um display TFT serial (Nextion 3,2") com um PIC16F877A.
Não consegui encontrar nenhum exemplo ou biblioteca para essa comunicação na internet com o PIC.
Porem para o arduino encontrei, fiz o teste e funcionou.
---------------------------------------------------------------------------------
//t0 000
//t1 %
//j Progerss Bar
//http://www.instructables.com/id/PROGRESS-BAR-EN-PANTALLA-NEXTION-CO...
// A0 entrada analigoca del potenciometro
int pot = 0; // entrada analigoca del potenciometro
int Valor = 0; // variable para almacenar los datos de la entrada
int val =0; //variable para mandar por el puerto serial
void setup() {
Serial.begin(9600); //inicia el puerto serial a 9600
}
void loop() {
Valor = analogRead(pot); //lee el valor del potenciometro
val= (Valor/4)/2.55;// se divide entre 4 porque los valores analogicos se leen de 0 a 1023 y los valores analogicos se escriben de 0 a255
//y se divide entre 2.55 para que de el porcentaje
delay(150);
Serial.print("j0.val="); //variable de la pantalla que se va a modificar
Serial.print(val); //manda el valor optenido del potenciometro
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);
Serial.print("t0.txt="); //variable de la pantalla que se va a modificar
Serial.write(0x22);
Serial.print(val); //manda el porcentaje de la entrada
Serial.write(0x22);
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);
Serial.print("t1.txt="); // variable de la pantalla nextion
Serial.write(0x22);
Serial.print("%"); //solo manda el simbolo de porcentaje
Serial.write(0x22);
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);
}
---------------------------------------------------------------------------------
Fiz o seguinte código
while(1)
{
DELAY_US(10);
ADVALOR = READ_ADC();
VALOR=((ADVALOR*0.0196978)*20);
delay_ms(50);
printf("j0.val=");
printf("%u",valor);
printf("0xff");
printf("0xff");
printf("0xff");
}
Acredito que o problema está na função printf, pois no código do arduino foi utulizado duas funções difrentes, no pic não sei como fazer essa diferença.
Alguém pode me ajudar?
Tags:
Minhas sugestões para estudo - Serial communication with PIC16F877
http://www.microcontrollerboard.com/pic_serial_communication.html
Pessoal, acabou que eu mesmo achei a solução do problema
Vou compartilhar com vocês
WHILE(1)
{
DELAY_US(10);
ADVALOR = READ_ADC();
VALOR=((ADVALOR*0.0196978)*20);
delay_ms(50);
printf("j0.val=");
printf("%u",valor);
printf("ÿÿÿ");
}
esse caracter ÿ é a forma em ASCII do 0xFF, e na função printf do CCS teve o mesmo resultado que Serial.write do Arduino.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por