Nextion TFT lcd sayfa değiştirme

Başlatan berkay_91, 27 Ekim 2015, 11: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

               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.
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ı

#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_init( UART_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

#7
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

#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_init( UART_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.


lostromos


fahri-

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

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