Nextion TFT lcd sayfa değiştirme

Başlatan berkay_91, 27 Ekim 2015, 14:31:02

berkay_91

merhaba, http://wiki.iteadstudio.com/Nextion_HMI_Solution daha önce linkteki LCD yi kullanan oldu mu? eğer olduysa bana nasıl sayfa değiştiriceğimi söyleyebilir mi? elimde 2.4" olanı var iditöründe 2 farklı sayfaya 2 farklı resim koydum ve compile edip TFT ye gönderdim
ancak sadece 0. sayfadaki resimi görüyorum RX TX hattı ile Atmega 328 bağladım şöyle bi şeyler yazdım yine sayfa değişmedi

Kod Seç

               char buffer
[3];
               
uart_puts("page1");
	
	

	
	
sprintf(buffer,"%d",0xFF);
	
	
uart_puts(buffer);
	
	
sprintf(buffer,"%d",0xFF);
	
	
uart_puts(buffer);
	
	
sprintf(buffer,"%d",0xFF);
	
	
uart_puts(buffer);
	
	

	
	
_delay_ms(1000);
	
	

	
	
uart_puts("page0");
	
	

	
	
sprintf(buffer,"%d",0xFF);
	
	
uart_puts(buffer);
	
	
sprintf(buffer,"%d",0xFF);
	
	
uart_puts(buffer);
	
	
sprintf(buffer,"%d",0xFF);
	
	
uart_puts(buffer);
                
                
_delay_ms(1000);

Gökhan BEKEN

Ben kullandım.
Kod Seç
page 40xFF 0xFF 0xFF
yani page boşluk sayfa id'si, ve 3 kere üst üste 0xFF gönderin.
Özel mesaj okumuyorum, lütfen göndermeyin.

berkay_91

böyle yaptım yine olmadı

Kod Seç
#define F_CPU 16000000UL
#include <stdlib.h>
#include <stdio.h>
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#include <avr/pgmspace.h>
#include "uart.h"

#define UART_BAUD_RATE  9600

void send_data(int);

void send_data(int x){
	

	
char buffer[3];
	

	
sprintf(buffer,"%d",x);
	
uart_puts(buffer);
}


int main(void){
	

	
DDRC|=(1<<5); // LED için
	

	
uart_initUART_BAUD_SELECT(UART_BAUD_RATE,F_CPU) );
	

	
sei();
	

	
for(;;){
	
	

	
	
uart_puts("page 0");
	
	
send_data(0xff);
	
	
send_data(0xff);
	
	
send_data(0xff);
	
	

	
	
_delay_ms(1000);
	
	

	
	
uart_puts("page 1");
	
	
send_data(0xff);
	
	
send_data(0xff);
	
	
send_data(0xff);
	
	

	
	
_delay_ms(1000);
	
	

	
// end of while
	

	
return 
0;
}

Gökhan BEKEN

Bazen 0xff'leri hem sonunda hem başında göndermemeniz gerekebiliyor.
En iyisi bilgisayarda bir terminal programı ile deneyin.
Bu arada baudrate doğru ayarlı olmalı, kontrol ettiniz mi?
standartı 115200 diye hatırlıyorum.
Özel mesaj okumuyorum, lütfen göndermeyin.

berkay_91

115200 Baud rate de Tera Term de kodları denedim işin UART kısmında problem yok gibi Tera term de (page 0255255255page 1255255255) gibi şeyler çıktı, ancak TFT yi Atmegaya taktığımda yine herhangi bir sayfa geçişi olmadı

Gökhan BEKEN

Hocam teratermde hex sayı girilemiyordu benim hatırladığım. Eğer doğru hatırlıyorsam öyle olmaz. Realterm ile deneyin bence, çünkü realterm'de sayı girilebiliyor.
İsterseniz teamviewer ile bağlanıp yardımcı olabilirim şu an.
Özel mesaj okumuyorum, lütfen göndermeyin.

berkay_91

aslında bu TFT ile ilgili sağlam bir yardıma ihtiyacım olucak çünkü ilk sayfaya buton ekledim TFT nin üstünde butona dokununca debugger daki datalar yani (0x65 0x00 0x02 0x01 0xff 0xff 0xff ) dan sadece 0x65 doğru geliyor diğer gelen dataları 256 okuyorum. yani bi şey beceremedim... bi arkadaştan söz aldım devre üstünde uğraşıcaz eğer onunlada halledemez isem sizden tel. numaranızı rica edicem

Gökhan BEKEN

28 Ekim 2015, 02:39:27 #7 Son düzenlenme: 28 Ekim 2015, 13:31:54 Gökhan BEKEN
0x65 buton anlamına geliyor, ikinci byte ise sayfa id'si , üçüncü byte ise o sayfadaki hangi butona tıkladığınızı söylüyor, geriye kalanları dikkate almanıza gerek yok.
Özel mesaj okumuyorum, lütfen göndermeyin.

berkay_91

Atmega 328 den gönderdiğim bu kodlarla sayfa değişimi yapabiliyorum Nextion TFT kullanıcak arkadaşlara faydası olur belki, pg0, pg1, pg2, pg3 ler benim Nextion editöründe belirlediğim sayfa isimleri

Kod Seç
#define F_CPU 16000000UL
#include <stdlib.h>
#include <stdio.h>
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#include <avr/pgmspace.h>
#include "uart.h" // Peters Fluery 

#define UART_BAUD_RATE  9600

int main(void){
	

	
uart_initUART_BAUD_SELECT(UART_BAUD_RATE,F_CPU) );
	

	
sei();
	

	
for(;;){
	
	

	
	
uart_puts("page pg0");
	
	
uart_putc(255);
	
	
uart_putc(255);
	
	
uart_putc(255);

	
	
_delay_ms(3000);

	
	
uart_puts("page pg1");
	
	
uart_putc(255);
	
	
uart_putc(255);
	
	
uart_putc(255);
	
	

	
	
_delay_ms(3000);
	
	

	
	
uart_puts("page pg2");
	
	
uart_putc(255);
	
	
uart_putc(255);
	
	
uart_putc(255);
	
	

	
	
_delay_ms(3000);
	
	

	
	
uart_puts("page pg3");
	
	
uart_putc(255);
	
	
uart_putc(255);
	
	
uart_putc(255);
	
	

	
	
_delay_ms(3000);
	
	

	
// end of while
	

	
return 
0;
}



Gökhan BEKEN

Özel mesaj okumuyorum, lütfen göndermeyin.

berkay_91

daha önceden olmamasının bir kaç sebebi var 1. si "page ***" * yerine sayfa ismi gelicekmiş, 2.si gönderdiğim 3 adet 255 değerini gönderme biçimimde sıkıntı vardı onu buffer a çevirip uart_puts(buffer); ile gönderyordum şimdi uart_putc(255); ile gönderdim...

lostromos

arkdaşlar konuyu yeniden canlandırayım dedim. Bende bu nextion hmi ekrandan aldım. Genell kullanım ve tasarımı yapması kolay. Ancak buton,progresbar, sayfa değişimi vs gibi işlemlerin kodlarını en kolay şekilde nereden -nasıl öğrenebilir.z Yardımcı olursanız sevinirim.

berkay_91

Hangi işlemci ile kullanacaksın

lostromos


fahri-

http://support.iteadstudio.com/support/discussions

Linkte örnekler var. kodları değiştirerek kendinize uyarlayabilirsiniz.