TFT 3,5" и Ардуино

URkA
Offline
Зарегистрирован: 21.03.2014

Тут на каждой странице написано,что китайцы не заморачиваются с такими мелочами как модель контроллера,что есть под рукой то и шлют. Фотки годами могут висеть у них и описание тоже. Нет времени у них корректировать описания. Кладите сюда фотку,что сейчас у Вас на руках,может кто и подскажет. Даже звездочкам в  отзывах на сайте продавца доверять надо с опаской. Народ так рад ,что получил и ставит отличные оценки только за сам факт получения,а с дальнейшим гемором на таких форумах сидит.

Ace Ventura
Offline
Зарегистрирован: 28.07.2015

URkA пишет:

Тут на каждой странице написано,что китайцы не заморачиваются с такими мелочами как модель контроллера,что есть под рукой то и шлют. Фотки годами могут висеть у них и описание тоже. Нет времени у них корректировать описания. Кладите сюда фотку,что сейчас у Вас на руках,может кто и подскажет. Даже звездочкам в  отзывах на сайте продавца доверять надо с опаской. Народ так рад ,что получил и ставит отличные оценки только за сам факт получения,а с дальнейшим гемором на таких форумах сидит.

Ace Ventura
Offline
Зарегистрирован: 28.07.2015

прочитал всю тему, перепробовал все библиотеки которые выкладывали, проверил подключение пинов UTFT myGLCD(31,A2,A1,A3,A4); дисплей отказывается работать. 

socknick
Offline
Зарегистрирован: 18.04.2015

Посмотри здесь может подойдет. У меня есть дисплей, но только 2.4 дюйма, и с такой же распиновкой.

Попробуй узнать ID, а там будет полегче

https://yadi.sk/d/kAdHVOdCiAG5Y

https://yadi.sk/d/NLdhZy3niAGFQ

Ace Ventura
Offline
Зарегистрирован: 28.07.2015

socknick пишет:

Посмотри здесь может подойдет. У меня есть дисплей, но только 2.4 дюйма, и с такой же распиновкой.

Попробуй узнать ID, а там будет полегче

https://yadi.sk/d/kAdHVOdCiAG5Y

https://yadi.sk/d/NLdhZy3niAGFQ

 

Перепробовал библиотеку, ничего не изменилось, ID загрузил, но никакой реакции вообше, несовсем понял куда должен выводится ID дисплея.

socknick
Offline
Зарегистрирован: 18.04.2015

Загружаешь скетч, потом через терминал смотришь ID, это в принципе и есть контроллер. Потом подставляешь нужную библиотеку для данного контроллера.

Сейчас не помню, но для SWTFT нужно разкоментировать строки для MEGA и закоментировать для UNO,  И наоборот.

 

Ace Ventura
Offline
Зарегистрирован: 28.07.2015
 
Initializing LCD...
Reading ID...0xB509
Loading LCD registers...
Filling the screen...
Done filling...
If your screen filled red, you may be able to use the library at http://misc.ws
 
чтото не могу найти к какому контроллеру относиться этот ID.
 
 
 
 
 
 
diger67
Offline
Зарегистрирован: 25.07.2015

Попробуй библиотеку из моего поста #545 скачать. У меня  ili9327,  все работает. Так же поддерживает ili9488. У  LCD на ili9327 есть косяк, память по оси Y на 432, а tft на 400 пикселей при ротации надо думать о смещении на эти 32 пиксиля.

URkA
Offline
Зарегистрирован: 21.03.2014

 MCU  R61509V 

Похоже Вам достался такой,судя по ответу проги.

slider
Offline
Зарегистрирован: 17.06.2014

Смотри внимательно на своё фото!  распиновка и надпись 61509 :) 

1. у тебя ADAFRUIT шилд(дисплей) , т.к. они зачастую 0 и 1 биты дисплея поднимают вверх, чтоб высвободить RX TX. Поэтому библиотеки с сайта UTFT не подойдут. (но здесь есть правленные )

2. на A0 приходится сигнал read (lcd_rd) на дисплей, поэтому библиотекой adafruit с него и можно в мониторе последовательного порта (Serial Monitor) вычитать ID  ( 0x1509 это R61509 , 0xB509 это R61509V ) . 

3. если приспосабливать библиотеку UTFT , то здесь приводилась ускоренная библиотека+IDE для зеленого шилда 3,5" на ili9327 (там  перекинуты lcd_D0 lcd_D1 на D8 D9 ардуино, и переставлены wr rs cs rst в строке инициализации, и на rd подана лог.1) , надо только подменить и подправить в ней инициализацию на эту  init r61509v :

 

void R61509V_Init(unsigned char contrast)//IC SETTING
{

	RegSet_Xbit(0x000,0x0000);
	RegSet_Xbit(0x000,0x0000);
	RegSet_Xbit(0x000,0x0000);
	RegSet_Xbit(0x000,0x0000);
	DelayX1mS(10);

	RegSet_Xbit(0x008,0x0808);
	RegSet_Xbit(0x010,0x0010);
	RegSet_Xbit(0x400,0x6200);

	RegSet_Xbit(0x300,0x0c06);//GAMMA
	RegSet_Xbit(0x301,0x9d0f);
	RegSet_Xbit(0x302,0x0b05);
	RegSet_Xbit(0x303,0x1217);
	RegSet_Xbit(0x304,0x3333);
	RegSet_Xbit(0x305,0x1712);
	RegSet_Xbit(0x306,0x950b);	
	RegSet_Xbit(0x307,0x0f0d);
	RegSet_Xbit(0x308,0x060c); 
	RegSet_Xbit(0x309,0x0000);

	RegSet_Xbit(0x011,0x0202);
	RegSet_Xbit(0x012,0x0101);
	RegSet_Xbit(0x013,0x0001);

	RegSet_Xbit(0x007,0x0001);
	RegSet_Xbit(0x100,0x0730);//BT,AP 0x0330
	RegSet_Xbit(0x101,0x0237);//DC0,DC1,VC
	RegSet_Xbit(0x103,0x2b00);//VDV	//0x0f00
	RegSet_Xbit(0x280,0x4000);//VCM
	RegSet_Xbit(0x102,0x81b0);//VRH,VCMR,PSON,PON
	DelayX1mS(100);

	RegSet_Xbit(0x001,0x0100);
	RegSet_Xbit(0x002,0x0100);
	RegSet_Xbit(0x003,0x1030);
	RegSet_Xbit(0x009,0x0001);
	
	RegSet_Xbit(0x0C,0x0000);	//MCU interface 
//  	RegSet_Xbit(0x0C,0x0110);	//RGB interface 18bit
//   RegSet_Xbit(0x0C,0x0111);	//RGB interface 16bit
//   RegSet_Xbit(0x0C,0x0020);	//VSYNC interface

	RegSet_Xbit(0x090,0x8000);
	RegSet_Xbit(0x00f,0x0000);

	RegSet_Xbit(0x210,0x0000);
	RegSet_Xbit(0x211,0x00ef);
	RegSet_Xbit(0x212,0x0000);
	RegSet_Xbit(0x213,0x018f);

	RegSet_Xbit(0x500,0x0000);
	RegSet_Xbit(0x501,0x0000);
	RegSet_Xbit(0x502,0x005f);
	RegSet_Xbit(0x401,0x0001);
	RegSet_Xbit(0x404,0x0000);
	DelayX1mS(100);	
	RegSet_Xbit(0x007,0x0100);
	DelayX1mS(100);
	RegSet_Xbit(0x200,0x0000);
	RegSet_Xbit(0x201,0x0000);

	WriteCom_Xbit(0x202);
}

void R61509V_DisplayColor(unsigned int color)
{
	unsigned int com,seg;	
	RegSet_Xbit(0x0200, 0x0000);
	RegSet_Xbit(0x0201, 0x0000);
	WriteCom_Xbit(0x202);
	for(com=0;com<400;com++)
	{
        for(seg=0;seg<240;seg++)
		{
			  WriteData_Xbit(color);			 
		}
	}
}

void R61509V_DeepStandBy_In()
{
	RegSet_Xbit(0x07, 0x0000);//BASEE
	DelayX1mS(100);	
	RegSet_Xbit(0x102,0xC180);
	DelayX1mS(100);	
	RegSet_Xbit(0x100,0x0004);	//
}

void R61509V_DeepStandBy_Out()
{
    WriteData_Xbit_IB(0x0000);
    WriteData_Xbit_IB(0x0000);	
    DelayX1mS(10); //DelayX1mS(1); 
    WriteData_Xbit_IB(0x0000);
    WriteData_Xbit_IB(0x0000);	
    WriteData_Xbit_IB(0x0000);	
    WriteData_Xbit_IB(0x0000);	
    DelayX1mS(20);//DelayX1mS(10);//necessary
   
	R61509V_Init(0);
}

 

об этом я рассказывал в теме  http://arduino.ru/forum/apparatnye-voprosy/arduino-i-displei-ot-sotikov-mobilnykh-telefonov#comment-92532 . Архив с похожей библиотекой для ili9326 там https://yadi.sk/d/7YDCfi14ddJhC, полагаю надо только в  инициалиции ....\libraries\UTFT\tft_drivers\ili9327_8  initlcd.h подставить эти значения из void R61509V_Init(unsigned char contrast)//IC SETTING { .... }  , заменив RegSet_Xbit на LCD_Write_COM16_DATA16 , DelayX1mS на delay , WriteCom_Xbit на LCD_Write_COM16 . В установке x y ....\libraries\UTFT\tft_drivers\ili9327_8 setxy.h , можно попробовать закоментить 2 первых строчки.

Что делать? 

- либо обратится к продавцу, пусть даёт библиотеку . Поискать на aliexpress подобные дисплеи с примерным размером " , иногда продавцы прикладывают ссылки на библиотеки

- либо поискать  на сайте mcufriend.com и м.б. adafruit.com (мало ли у них появилось, то что китайцы ляпают с того что подруку попадётся) . Погуглить init R61509V  , R61509V  ( на github.com много кодов )

- либо как предложил в п.3 , т.е. слепить самому или на базе UTFT.  или на базе ADAFRUIT 

PS//и внимательно на компе с папками arduino , UTFT (в них сохраняются не только библиотеки, но и перенаправление портов) , желательно подчищать, ибо иногда в сложных случаях может правится не только библиотека, но и оболочка arduino IDE. поэтому здесь иногда приводится библиотеки вместе с оболочками arduino IDE где они корректно работают.

Ace Ventura
Offline
Зарегистрирован: 28.07.2015

Пробую модифицировать библиотеку UTFT_v2.77b2_uno_ili9327_8bit_turbo, но что-то ничего не выходит, инициализация которая лежит в отдельной папке под каждый контроллер, бер для изменения 9327_8, заменяю на вашу (она по коду вообше другая), остальные фунции что-то не могу найти.

 

Первый раз сижу на ардуино, всю жизнь програм в авр студио, подскажите с нее нельзя сразу шить ардуино уно? как то очень неудобно и непривычно или не могу разобраться как открывать доб файлы в окне, а не редактировать через блокнот

slider
Offline
Зарегистрирован: 17.06.2014

Ace Ventura пишет:

Пробую модифицировать библиотеку UTFT_v2.77b2_uno_ili9327_8bit_turbo, но что-то ничего не выходит, 

ну блин, вот пробуй, на базе правленной UTFT  из ili9327_8turbo в  ili9326  https://yadi.sk/d/7YDCfi14ddJhC . В моих документах/ардуино/библиотеки/ стираешь utft и закидываешь этот utft.     По адресу     ...мои документы...UTFT\tft_drivers\ili9327_8 открыть файл initlcd блокнотом,  всё стереть и вставить



	LCD_Write_COM16_DATA16(0x0000,0x0000);
	LCD_Write_COM16_DATA16(0x0000,0x0000);
	LCD_Write_COM16_DATA16(0x0000,0x0000);
	LCD_Write_COM16_DATA16(0x0000,0x0000);
	delay(10);

	LCD_Write_COM16_DATA16(0x0008,0x0808);
	LCD_Write_COM16_DATA16(0x0010,0x0010);
	LCD_Write_COM16_DATA16(0x0400,0x6200);

	LCD_Write_COM16_DATA16(0x0300,0x0c06);//GAMMA
	LCD_Write_COM16_DATA16(0x0301,0x9d0f);
	LCD_Write_COM16_DATA16(0x0302,0x0b05);
	LCD_Write_COM16_DATA16(0x0303,0x1217);
	LCD_Write_COM16_DATA16(0x0304,0x3333);
	LCD_Write_COM16_DATA16(0x0305,0x1712);
	LCD_Write_COM16_DATA16(0x0306,0x950b);	
	LCD_Write_COM16_DATA16(0x0307,0x0f0d);
	LCD_Write_COM16_DATA16(0x0308,0x060c); 
	LCD_Write_COM16_DATA16(0x0309,0x0000);

	LCD_Write_COM16_DATA16(0x0011,0x0202);
	LCD_Write_COM16_DATA16(0x0012,0x0101);
	LCD_Write_COM16_DATA16(0x0013,0x0001);

	LCD_Write_COM16_DATA16(0x0007,0x0001);
	LCD_Write_COM16_DATA16(0x0100,0x0730);//BT,AP 0x0330
	LCD_Write_COM16_DATA16(0x0101,0x0237);//DC0,DC1,VC
	LCD_Write_COM16_DATA16(0x0103,0x2b00);//VDV	//0x0f00
	LCD_Write_COM16_DATA16(0x0280,0x4000);//VCM
	LCD_Write_COM16_DATA16(0x0102,0x81b0);//VRH,VCMR,PSON,PON
	delay(100);

	LCD_Write_COM16_DATA16(0x0001,0x0100);
	LCD_Write_COM16_DATA16(0x0002,0x0100);
	LCD_Write_COM16_DATA16(0x0003,0x1030);
	LCD_Write_COM16_DATA16(0x0009,0x0001);
	
	LCD_Write_COM16_DATA16(0x000C,0x0000);	//MCU interface 
//  	LCD_Write_COM16_DATA16(0x0C,0x0110);	//RGB interface 18bit
//   LCD_Write_COM16_DATA16(0x0C,0x0111);	//RGB interface 16bit
//   LCD_Write_COM16_DATA16(0x0C,0x0020);	//VSYNC interface

	LCD_Write_COM16_DATA16(0x0090,0x8000);
	LCD_Write_COM16_DATA16(0x000f,0x0000);

	LCD_Write_COM16_DATA16(0x0210,0x0000);
	LCD_Write_COM16_DATA16(0x0211,0x00ef);
	LCD_Write_COM16_DATA16(0x0212,0x0000);
	LCD_Write_COM16_DATA16(0x0213,0x018f);

	LCD_Write_COM16_DATA16(0x0500,0x0000);
	LCD_Write_COM16_DATA16(0x0501,0x0000);
	LCD_Write_COM16_DATA16(0x0502,0x005f);
	LCD_Write_COM16_DATA16(0x0401,0x0001);
	LCD_Write_COM16_DATA16(0x0404,0x0000);
	delay(100);	
	LCD_Write_COM16_DATA16(0x0007,0x0100);
	delay(100);
	LCD_Write_COM16_DATA16(0x0200,0x0000);
	LCD_Write_COM16_DATA16(0x0201,0x0000);

	LCD_Write_COM16(0x0202);

скетч этот  \UTFT\examples\Arduino (AVR)\UTFT_Demo_400x240

 

P.S.  IDE 1.5.5 у меня заругался на _delay_ms_ , а IDE 1.5.8 скомпилировал.  Если не поканает то можно в начало или конец инициализации попробовать также переработать содержимое 

void R61509V_DeepStandBy_Out()

setxy надеюсь одинаковый от ili9326 к r61509v . 

 

можешь попробовать от SPFD5420A и R61509 (без V) - там же в ветке про дисплеи от сотиков

вот ещё инициализации 400x240 432x240 дисплеев , найденные на просторах инета https://yadi.sk/d/RSmVUO3diBJMf , тамже ещё другие от r61509v . (названия функций могут отличаться из-за разных платформ, но главное там есть в какой регистр,что кидать и как кидать, чтоб дисплей завёлся) Блокнотом для редактирования пользуюсь Notepad++ 

 

Ace Ventura
Offline
Зарегистрирован: 28.07.2015

Заработал, большое спасибо slider подскажите пожалуйста, а где можно почитать как управлять и выводить данные и рисовать легкие фигуры (круги, треугольники и тд)

 

 

slider
Offline
Зарегистрирован: 17.06.2014

Ace Ventura пишет:

Заработал, большое спасибо slider подскажите пожалуйста, а где можно почитать как управлять и выводить данные и рисовать легкие фигуры (круги, треугольники и тд)

Работа с TFT дисплеем на ARDUINO  http://geektimes.ru/post/258166/ , (или в папке UTFT есть .pdf , там всё расписано)

+ русский шрифт   http://devicter.blogspot.ru/2013/11/utft-2-bigfont.html  ( http://medialounge.ru/files/bf.rar )

что именно подошло для R61509V ?, черкни, сфотай для народа.

 

Ace Ventura
Offline
Зарегистрирован: 28.07.2015

slider пишет:

Ace Ventura пишет:

Заработал, большое спасибо slider подскажите пожалуйста, а где можно почитать как управлять и выводить данные и рисовать легкие фигуры (круги, треугольники и тд)

Работа с TFT дисплеем на ARDUINO  http://geektimes.ru/post/258166/ , (или в папке UTFT есть .pdf , там всё расписано)

+ русский шрифт   http://devicter.blogspot.ru/2013/11/utft-2-bigfont.html

что именно подошло для R61509V ?, черкни, сфотай для народа.

 

 

Взял первое что Вы написали, библиотеку "инициализации 400(432)x240  ILI9326   +переделанные для UTFT   +PDF +UTFT2.77c" + подкоректировал скетч на инициализацию, подменива тем что Вы сверху написали и залил, сразу запустился, прошел тест и в конце первого прогона время 52205, это быстро рисует или медленно?

Еще остается открытый вопрос с тачем, как его проверить и инициализировать?

Вообше ардуино не использовал до этого неразу, все свои устройства делал на АВР, сам травил платы, шил через ISP, решил сейчас перейти на цветной дисплей, сразу заказал с ардуино для понимаия что к чему, в дальнейшем планирую подключить к другой меге с большими возможностями.

Подскажите, возможно на таком дисплее реализовать вот такую штуку.

https://www.youtube.com/watch?v=Qk2cmCaM9xA

slider
Offline
Зарегистрирован: 17.06.2014

Ace Ventura пишет:

прошел тест и в конце первого прогона время 52205, это быстро рисует или медленно?

Еще остается открытый вопрос с тачем, как его проверить и инициализировать?

.....

Подскажите, возможно на таком дисплее реализовать вот такую штуку.

https://www.youtube.com/watch?v=Qk2cmCaM9xA

1. нормально для него,  9327 побыстрей будет вроде около 41сек против 51с. Чем меньше команд в setxy.h , тем быстрее будет рисовать, ибо это вызывается при рисовании каждой точки. Это для каждого контроллера своё. Самое быстрая конфигурация на arduino due и 16ти битный дисплей.

2. по тачскрину тут всё обсасывалось. Могу разве что что уточнить, судя по фото, здесь нет спец контроллера тача. Тач напрямую подключен к пинам. Подключение стандартное для adafruit, есть и их библиотека. Проверить можно прозвонив пины аналоговые и цифровые пины, должно 2 раза гдето по 300 ом.  При касании это парочка замыкается с сопротивлением координаты точки. Сейчас юзаю https://yadi.sk/d/JblWoo7biBW6N , там есть 2 примера тача, координаты кидаются в монитор последовательного порта , один я подстроил под свои перепаянные A0 A1 D12 D13 для одновременной простой работы с utft , у   тебя должны стандартные. Смысл если хочешь определить нажатие, вызываешь функцию, она переконфигурирует порты ввода-вывода, посмотрит нажатие, и вернёт порты обратно, для графики adafruit, непробовал как с UTFT при стандартной распиновке. 

3. врятли. разве что один прибор.    Лучше на arduino due и 16ти битный дисплей или на плашетнике с андроидом. На крайняк ардуино мега с 16ти битным какимнибудь простым lcd tft контроллером. (глянь их setxy.h , чтоб наименьшее число команд было)

 

Ace Ventura
Offline
Зарегистрирован: 28.07.2015

А есть какие то дисплее с более быстрой шиной чем 16бит? 

То что на видео, дислпеи фирмы 4D systems

http://www.4dsystems.com.au

 

slider
Offline
Зарегистрирован: 17.06.2014

уже оффтоп получается. надеюсь мож кому ещё интересна тема каких дисплеев. Остальные битности выходят за разумную грань применения на arduino :  Дисплеи и шилды есть и 18бит (где весь цвет можно передать за 1такт, а не за 2 и больше, это те же используемые нами контроллеры, но их все биты редко выводятся в шлейф и на плату, и 16ти бит за глаза хватит) Далее уже контроллеры без видеопамяти:  24бит(RGB)-большинство планшетников. и шина LVDS (дисплеи от iphone 3 , и далее и им подобные, все матрицы ноубуков, компьютеров) - вы их запаритесь подключать, да и не надо, всё и с простыми TFT LCD дисплеями упирается в скорость ардуины.

Скорость дисплея значительна, слабое место это медленность ардуины. то что на ссылке - это совершенно другая платформа, возможно Raspberry Pi . она работает гораздо быстрее. Дисплеи те же как ардуиновские, теже контроллеры на них,  только чтоб их вокнуть в ардуино, надо шилд переходник где есть преобразователи уровней с 3,3в на 5в на плате. С этого раньше и начиналось. Потом уже стали ляпать экраны чисто для ардуины по пинам, с уже поставленными преобразователями. 

Если вы этот уновский дисплей напрямую поставите на ардуино мега, ещё медленнее будет из-за переброски шины данных дисплея по 3м портам микроконтроллера. Проверял. Лучший вариант по скорости вывода для ардуинщиков - ардуино дуе и самый обычный экран для меги/дуе он и будет 16ти битный, и если использовать UTFT то обратить внимание как выводятся данные в регистры дисплея в setxy.h  , хотя это не панацея было тест UTFT 51сек, станет 41сек к примеру на ардуино уно.  как-то так.

постарайтесь гуглить инфу, чтоб не засирать форум.

diger67
Offline
Зарегистрирован: 25.07.2015

Про использовании кирилицы в среде разработки arduino. Вы не пробовали сделать так:

изменить в настройках IDE preproc.substitute.unikode = false.

У меня с Adafruit библиотекой работает.

Пишу tft.print("Пишем по русски"); и на LCD без проблемм выводится кирилица, естественно в файле фонт прописана кирилица. Попробуйте, может и с UTFT будет работать.

pshonia
Offline
Зарегистрирован: 29.03.2015

Народ момогите с коментариями UTоuсh библиотеки для ATmega2560 + TFT 3.2 + шилд  - хочу перевести с ардуиновских на  Atmelstudio   привычнее  часть работы проделал но ещё есть над чем работать. 

 

sepulka
Offline
Зарегистрирован: 19.08.2015

to slider,
помоги пожалуйста !
"..по тачскрину тут всё обсасывалось..", ткни пожалуйста носом (просмотрел всю тему, не нашел).
Имею вот такое чудо: 3.6", подключенное к Arduino UNO R3 (прямо в разъемы). По виду точно такой, как в собщении №552.

"Wholesale Product Snapshot Product name is 3.6 дюймов TFT сенсорный жк-модуль экран для Arduino UNO R3 высокое качество бесплатная доставка"
http://www.aliexpress.com/snapshot/6793090995.html?orderId=68267667513545
"3.6 дюймов TFT сенсорный жк-модуль экран для Arduino UNO R3 высокое качество бесплатная доставка"
На самом деле тут уже продают: 3.95"

"Бесплатная доставка! модуль жк дисплей TFT 3.95 дюймов TFT жк экран для Arduino UNO R3 совета и в мега 2560 R3 купить на AliExpress
http://ru.aliexpress.com/item/3-5-inch-TFT-Touch-LCD-Screen-Display-Module-For-Arduino-UNO-R3-HIGH-QUALITY-Free/1854649569.html"

Раскладка по пинам:
3.6 inch TFTLCD - Arduino UNO ; 3.6 inch TFTLCD - Arduino UNO
--- ;
--- ;
SD_sck- 13_PB5 ;
SD_do - 12_PB4 ;
SD_di - 11_PB3 ; -----
SD_ss - 10_PB2 ; 3v - 3v
LCD_d1 - 9_PB1 ; 5v - 5v
LCD_d0 - 8_PB0 ; gnd - gnd
--------------- ; gnd - gnd
LCD_d7 - 7_PD7 ; -----
LCD_d6 - 6_PD6 ;
LCD_d5 - 5_PD5 ; LCD_RD - A0
LCD_d4 - 4_PD4 ; LCD_WR - A1
LCD_d3 - 3_PD3 ; LCD_RS - A2
LCD_d2 - 2_PD2 ; LCD_CS - A3
--- - 1_PD1 ; LCD_RST - A4
--- - 0_PD0 ; --- - A5
Видеоконтроллер ILI9327_8
Строка инициализации: UTFT myGLCD(31,A2,A1,A3,A4). Тест "UTFT_Demo_400x240.ino" - красиво отображается.
Тач-скрин прилеплен, но ничего нигде не прозванивается (эти самые 300 ом).
Как определить: есть тач-скрин , или нет ?
Если загрузить тест из твоей правленной библиотеки: TFT_adafruit/...touchscreendemoshield.ino , то
При нажатии на экран в разных местах отображаются координаты : X , Y, Z (в сериал-мониторе).
Но почему то, эти координаты находятся в диапазоне от 800 до 1020.
Сам я в этом деле темный, может чего посоветуеш.
Как побороть тач-скрин ?
(Блин, красивую табличку построил, а оно все поломалось.)

slider
Offline
Зарегистрирован: 17.06.2014

к sepulka

и так сначала, в таких шилдах не видать микросхемы тача(чтоб инфу передавать по двум проводам), значит тач включен напрямую , используя 4 провода - это 2 аналоговых (к примеру на A1 A2) и 2 цифровых ( к примеру на D6 и D7).   Другими словами Y между A1 D7 ,  X между  A2 D6.  Они должны прозваниваться мультиметром : координата X около 300 Ом , координата Y около 600 Ом. При нажатии на тач , между координатами появляется сопротивление. 

Если уж не прозванивается, то либо забыли припаять (можно погреть плату обычным феном, аккуратно поднять экран и посмотреть, зде контакт от тача затерялся) . Либо, что крайне редко, на самом таче отслоился шлейф в месте его приклейки к контактам на стекле, прижать чемнибудь гочим, остудить и отпустить.

Проверь это сам.  Да уж, пару месяцев назад, пожалел на него 350-370руб, сейчас он уже около 600р стоит, жаль.

 

ПослеСловие:

для тех кто следит за темой, проверьте напряжение +3,3 на ардуине, при работе экрана, у меня оказалось 4,2в ! это крайне нежелательно для контоллера в дисплее, у него максимум +3,3. Китайцы походу нифига не проверяли, что через резисторы или фиговые микросхемки-конверторы, сильные 5ти вольтовые "1" логические уровни от ардуино прут в контроллер дисплея, и аж запитывают его в виду его мизерного потребления, и перебивают его питание на завышение. Чтоб дисплей долго жил, поставил параллельно питанию  +3,3в, стабилитрон , на тоже напряжение.  

Если будете использовать microSD , то надо резать дорожки и напаивать 10 ком резисторы.

И да, тут в теме видел, что кто-то дисплейные 10ком резисторы (вместо микросхем-преобразователея уровня) меняет на гораздо меньшие, НЕЛЬЗЯ так делать! контроллер дисплея может вообще загнуться от передозы тока и напряжения по питанию! 10ком вполне хватает, даже и в обратном направлении (чтоб и с дисплея получать инфу).  С тачем напрямую, конечно посложнее, ведь через WR RS (A1 A2) лог. уровни должны перебивать сигналы от тача к ардуине, что совсем затруднит чтение инфы с дисплея, если их не перевести в Z состояние.

 

sepulka
Offline
Зарегистрирован: 19.08.2015

к slider,

"нащупал" таки тач:

"Y" - А1-Д7 меряется 275 ом
"X" - А2-Д6 - 729 ом.
А как это все учитывать ? Куда вписать ?
В тесте "touchscreendemoshield.ino",
в строчке "TouchScreen ts = TouchScreen(XP, YP, XM, YM, 300); " - только одно число, а куда девать другое ?

Результаты теста, если экран расположить "портретно" , то есть выводы с тач-панели находятся внизу, справа то:
нажать и держать левый верхний угол X меняется от 1010 до 1015, Y меняется от 930 до 948,
правый верхний угол - X меняется от 975 до 979, Y меняется от 541 до 549,
левый нижний угол - X меняется от 883 до 887, Y меняется от 981 до 985,
правый нижний угол - X меняется от 675 до 701, Y меняется от 809 до 812.
Как из этого какие то конкретные координаты для экрана вывести ? Делить ? Вычитать ?

slider
Offline
Зарегистрирован: 17.06.2014

sepulka пишет:
к slider, "нащупал" таки тач: "Y" - А1-Д7 меряется 275 ом "X" - А2-Д6 - 729 ом. А как это все учитывать ? Куда вписать ? В тесте "touchscreendemoshield.ino", в строчке "TouchScreen ts = TouchScreen(XP, YP, XM, YM, 300); " - только одно число, а куда девать другое ? Результаты теста, если экран расположить "портретно" , то есть выводы с тач-панели находятся внизу, справа то: нажать и держать левый верхний угол X меняется от 1010 до 1015, Y меняется от 930 до 948, правый верхний угол - X меняется от 975 до 979, Y меняется от 541 до 549, левый нижний угол - X меняется от 883 до 887, Y меняется от 981 до 985, правый нижний угол - X меняется от 675 до 701, Y меняется от 809 до 812. Как из этого какие то конкретные координаты для экрана вывести ? Делить ? Вычитать ?

прикалываетесь чтоль? 

если копаетесь с тачскрином, то хоть немного должны изучить как он сделан или как работает, почитайте в википедиа устройство тачскрина, сопротивления X и Y физически почти не меняются, меняется сопротивление между ними! сопротивления линий X и Y можно сказать постоянные, зависят от размеров тача(сопротивления напыленного прозрачного резистивного слоя). А если подвести 0(0v) и 1(5v) к примеру на пины Y, то измерив напряжение на Х (на любом из его контактов) мы узнаем  координату Y нажатия.

вот текст touchscreendemoshield.ino из adafruit https://github.com/adafruit/Touch-Screen-Library/blob/master/examples/touchscreendemoshield/touchscreendemoshield.ino

// Touch screen library with X Y and Z (pressure) readings as well
// as oversampling to avoid 'bouncing'
// This demo code returns raw readings, public domain

#include <stdint.h>
#include "TouchScreen.h"

// These are the pins for the shield!
#define YP A1  // must be an analog pin, use "An" notation!
#define XM A2  // must be an analog pin, use "An" notation!
#define YM 7   // can be a digital pin
#define XP 6   // can be a digital pin

#define MINPRESSURE 10
#define MAXPRESSURE 1000

// For better pressure precision, we need to know the resistance
// between X+ and X- Use any multimeter to read it
// For the one we're using, its 300 ohms across the X plate
TouchScreen ts = TouchScreen(XP, YP, XM, YM, 300);

void setup(void) {
  Serial.begin(9600);
}

void loop(void) {
  // a point object holds x y and z coordinates
  TSPoint p = ts.getPoint();
  
  // we have some minimum pressure we consider 'valid'
  // pressure of 0 means no pressing!
  if (p.z > MINPRESSURE && p.z < MAXPRESSURE) {
     Serial.print("X = "); Serial.print(p.x);
     Serial.print("\tY = "); Serial.print(p.y);
     Serial.print("\tPressure = "); Serial.println(p.z);
  }
}

там уже есть ваша распиновка:

#define YP A1  // must be an analog pin, use "An" notation!
#define XM A2  // must be an analog pin, use "An" notation!
#define YM 7   // can be a digital pin
#define XP 6   // can be a digital pin

Возможно распиновка тача  нестандартная , так поиграйтесь с заменой A1 A2  7 8 в #define в скетче , раз говорите что эти координаты находятся в диапазоне от 800 до 1020. И не вешайте пока ничего дополнительно на эти порты пока не найдете правильную комбинацию, чтоб координаты сильно менялись от 50 до 1000 (0-1023) .

чтоб потом привести их к диаппазону 0-240 0-320 0-400 пикселей на экране , можно применить функцию map() , ну или тупо разделить на число коэффициент

к примеру для Y    outputValue = map(sensorValue, 0, 1023, 0, 240);  

или   outputValue = map(sensorValue, 50, 1000, 0, 240); (только надо предусмотреть блокировку выходов за исходные пределы меньше 50 и больше 1000

 

И 300 ом по X тож уе стоит в скетче примере ,( по Y не надо, так понятно).

// For better pressure precision, we need to know the resistance
// between X+ and X- Use any multimeter to read it
// For the one we're using, its 300 ohms across the X plate

функция  TSPoint p = ts.getPoint(); проверяет нажатие и записывает их в переменные p.x  p.y  p.z .

попробуейте чисто тач проверить, потом уже графику на экран добавлять в скетч.

sepulka
Offline
Зарегистрирован: 19.08.2015

[quote=slider]

"прикалываетесь чтоль?"

Ни в коем случае. Просто пытаюсь разобраться. Огромное спасибо, что не посылаете нафиг учить матчасть.

Возможно неясно выразился. У тач-скрина два резистивных слоя, так вот по ширине меряется (и неизменно) - 275 ом между пинами A1-D7, а по длинне (по другой координате, между пинами A2-D6) меряется - 729 ом (и неизменно). (у меня Arduino UNO).
Так вот эти 729 ом куда-то вписывать надо? В какую-то формулу ? В виде какого-то коэфициента ?

[quote=slider]

"...,( по Y не надо, так понятно)."

Вот это как раз и не понятно. Одно число вписывать или оба, поскольку они разные ?

А изменяются цифры на экране сериал-монитора при запуске теста: "touchscreendemoshield.ino", при нажатии на разные углы тач-скрина.

slider
Offline
Зарегистрирован: 17.06.2014

sepulka пишет:
.......... Так вот эти 729 ом куда-то вписывать надо? В какую-то формулу ? В виде какого-то коэфициента Вот это как раз и не понятно. Одно число вписывать или оба, поскольку они разные ?..........

Y никуда не надо вписывать. (видимо обычно пропорции экранов около 4:3 , Y высчитать библиотеки самой ничего не стоит) . Да и вообще эти омы нафиг не нужны, хоть 300, хоть 600 , если не нужно подсчитывать силу(площадь) нажатия. Просто самому написать функцию, чтоб обойтись без  библиотеки тача в своем скетче.

sepulka
Offline
Зарегистрирован: 19.08.2015

Нашел хорошую книгу:
"Проекты с использованием контроллера Ардуино", Виктор Петин, «БХВ-Петербург» 2014 г.
Вот там рассматривается подключение TouchScreen к аналоговым входам.
Буду на базе этого и себе сочинять.

slider
Offline
Зарегистрирован: 17.06.2014

sepulka пишет:
Нашел хорошую книгу: "Проекты с использованием контроллера Ардуино", Виктор Петин, «БХВ-Петербург» 2014 г. Вот там рассматривается подключение TouchScreen к аналоговым входам. Буду на базе этого и себе сочинять.
 

книга лежит здесь http://arduino-project.net/download/arduino-books/proekty_s_ispolzovaniem_kontrollera_arduino.pdf

Замечу, иногда тачи бывают немного косячные, нет контакта ( просто нажать через скользкую бумагу в место крепления шлейфа на стекле, паяльником, и подержать давлением без него, дать остыть) , а бывает что он прожат в середине или углу (если запустить рисовалку, то видать где точки стремяться оказаться при слабом нажатии)

То для точности пробывал (правда снижает скорость программы) , замерять к примеру 20 раз в массив, во втором массиве пересчитывается , сколько каждое измерение раз встречается - потом ищется максимальная встречаемость - верить ей. Да , точность колоссальная. Но всё равно без задержки после только что появивщемся нажатии, через 0,1 сек дожатии , это даст ошибку.  Более простое и умеренно точное определение будет - отслеживать нажатие, появилось, подождать 50-100мс чтобы палец дожал, потом и определять. если не отпущено после измерения, то измерениям - верить как достоверным!

Вообще в адафруитской библиотеке вроде совмещение LCD и тача. Библиотека тача в момент вызова её функции определения координат, смотрит как были настроены пины и что на них было. Перестраивает их по свойму, считывает координаты . И возвращает пины обратно как были, чтоб следующий вывод на дисплей был без проблем. 

Если ляпаешь свою библиотеку или просто подпрограмму(функцию) в своем скетче, это надо предусмотреть.

Next
Offline
Зарегистрирован: 01.09.2015

diger67 пишет:

Сори. Ошибся при вводе. Исправил. С TouchScreen разобрался, нужно было в скетче подобрать парамеры. Можно посмотреть http://178.130.34.198/Adafruit/sketch

Работает со всеми LCD по списку библиотеки, нужно только перед компиляцией менять разрешение в .ccp

Уважаемый diger67!

Ссылка битая, можете выложить куда нибудь на файлообменник?

sepulka
Offline
Зарегистрирован: 19.08.2015

"Можно посмотреть http://178.130.34.198/Adafruit/sketch"

У меня скачалось без проблем.
Но работать не хочет, хотя видео процессор ili9327(8-битная плата TFT 3,6" подключена к UNO).
Белый экран - и все, только в сериал-монитор выводится "Paint!".
Что-то с инициализацией дисплея.
Для UTFT-библиотеки у меня работает строка инициализации - UTFT myGLCD(31,A2,A1,A3,A4);
А вот как это будет для TFT_adafruit ?

Там вот такой вызов: Adafruit_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);;
(и, соответственно: #define LCD_CD A2;)

А у меня: "LCD_RS A2".

Как их соотнести между собой ? Простое переименование "CD" в "RS" не проходит. Ошибок не выдает, но и толку никакого.

Next
Offline
Зарегистрирован: 01.09.2015

sepulka, хм спасибо. Щас и я скачал. 2 дня пробовал, сайт не отвечал.

У меня вроде ili9488. На UNO рабтает без проблем, на меге тупо белый экран.

Вечером проверю, заведется ли с этими библиотеками.

sepulka
Offline
Зарегистрирован: 19.08.2015

А мне что посоветуеш ?
Куда копать ?
Где почитать ?

Next
Offline
Зарегистрирован: 01.09.2015

Даже не знаю. Библиотеки то разные, параметры другие.

Почему бы не использовать UTFT, если на ней работает?

sepulka
Offline
Зарегистрирован: 19.08.2015

На "Adafruit" библиотека для сенсорной панели без микросхемы.
Хочу на базе этого слепить и себе что-то вроде графического калькулятора.
Но знаний явно маловато.

Next
Offline
Зарегистрирован: 01.09.2015

Под тач мне попалась отдельная библиотека, у меня работает:

https://github.com/adafruit/Touch-Screen-Library

sepulka
Offline
Зарегистрирован: 19.08.2015

Спасибо, но это тоже "Adafruit".
А вот как совместить "Adafruit" и "UTFT" для инициализации ?

Next
Offline
Зарегистрирован: 01.09.2015

Вот такой TFT 3,9 дюйма ili9488:

http://ru.aliexpress.com/item/3-5-inch-TFT-LCD-screen-module-Mega-2560-R...

С библетекой diger67 завелся на mege 2560 без проблем вместе с тачем и нормальной ориентецией.

Ура! Спасибо, товарищи!

sepulka
Offline
Зарегистрирован: 19.08.2015

Тач без микросхемы ? Подключен к аналоговым входам ?
Нормально себя ведет ?
Попробуй загрузи "Paint". Опиши впечатления.

(Может и себе такой комплект купить и ничего никому не морочить.)

Next
Offline
Зарегистрирован: 01.09.2015

1. Наверно бех микросхемы. Экран садится прямо на мегу или уно. Часть к аналогвым, часть цифровым ногам разьемы идут.

2. Я ж написал. Ведет себя отлично, проверял как раз в том числе и на примере tftpaint2.  Рисовать пальцем хорошие картинки вряд ли получится, а вот сделать например клавиатуру вполне можно.

Prygunovnp
Offline
Зарегистрирован: 27.07.2015

Граждане. У меня библиотека уважаемого diger67 работает на меге. У меня такая же или9488. Единственный миинус что в примере paint2 рисовать получается только на небольшом участке экрана. хотя водить приходится по всему экрану. Что не так ?

Next
Offline
Зарегистрирован: 01.09.2015

В Adafruit_TFTLCD.cpp нужное разрешение раскоментили а не нужное закоментили?

sepulka
Offline
Зарегистрирован: 19.08.2015

Спасибо.
Пожалуй это выход из положения.
Много нервных клеток сохранится !

Prygunovnp
Offline
Зарегистрирован: 27.07.2015

ДА. Так и сделал. Картинка на весь экран как и должна но тач рисует только в маленьком прямоугольнике.

Next
Offline
Зарегистрирован: 01.09.2015

У меня рисует по всему экрану. А вот стирает только в маленьком прямоугольнике. Но рабираться не стал, главное тач работает.

Gres
Gres аватар
Offline
Зарегистрирован: 26.03.2013

Добавлю, чтоб было, продублирую в нескольких темах.

Наткнулся при поиске на китайский ресурс, облачный диск человека, тогрующего дисплейными модулями на Таобао.

Там куча информации по дисплеям, библиотеки под разные контроллеры, в том числе большинство под Arduino, примеры, даташиты, схемы, фото распиновок и т.д.

raiderfm
Offline
Зарегистрирован: 07.09.2015

Дано экран из поста №552. Можно для криворучек повторить по шагам как экран на R61509V с UTFT подружить? Посты №562-564 вдоль и поперек уже прочитал. Не выходит каменный цветок хоть ты тресни ( Может кто-то работающий UTFT выложить сможет?

raiderfm
Offline
Зарегистрирован: 07.09.2015

raiderfm пишет:

Дано экран из поста №552. Можно для криворучек повторить по шагам как экран на R61509V с UTFT подружить? Посты №562-564 вдоль и поперек уже прочитал. Не выходит каменный цветок хоть ты тресни ( Может кто-то работающий UTFT выложить сможет?

Все. Разобрался. Забыл что для использования шилда УНО на меге надо подшаманить. Короче готовый вариант UTFT для R61509V - для УНО шилда (в т.ч. и на меге).

https://cloud.mail.ru/public/FzQ9/YUFA3E576

sepulka
Offline
Зарегистрирован: 19.08.2015

raiderfm] </p> <p>[quote=raiderfm пишет:

Все. Разобрался. Забыл что для использования шилда УНО на меге надо подшаманить.

А можете так же лихо и с тач-скрином разобраться ?

Там тач-скрин без микросхемы специальной, прерывания не использует,
подключен прямо на два аналоговых и два цифровых канала.

С библиотеками "Adafruit" у меня получилось его оживить. Но информацию он отдает только в сериал-монитор.
А экран при этом я не знаю как инициализировать. Экран белый, только подсветка.

raiderfm
Offline
Зарегистрирован: 07.09.2015

sepulka пишет:
А можете так же лихо и с тач-скрином разобраться ? Там тач-скрин без микросхемы специальной, прерывания не использует, подключен прямо на два аналоговых и два цифровых канала. С библиотеками "Adafruit" у меня получилось его оживить. Но информацию он отдает только в сериал-монитор. А экран при этом я не знаю как инициализировать. Экран белый, только подсветка.

Хммм.... тачскрин работает у меня на меге но как-то не так. Попробую посмотреть что там. А насчет белого экрана. Файл с UTFT из моего поста пробовали? Скетч с примером 400х240 из библиотеки подправьте строку инициализации, с 31 на 33(код R61509V) На меге конечно этот экран просто чудеса тормознутости показывает тест по 120 секунд выполняет.

sepulka
Offline
Зарегистрирован: 19.08.2015

Скетч с примером 400х240 выполняется красиво, без проблем. Даже исправлять ничего не надо. (У меня видео -контроллер ILI9327_8, так что 31 - в самый раз. (Плата UNO)).

Но в тесте не используется тач-скрин, а как их совместить я не знаю. А с нуля, все полностью сочинять не хочется. В посте №580 я уже это описывал эту проблему.

Я уже заказал на "Али" другой экран с процессором ILI9488. Может с ним будет проще.