Сколько ножек занимает ili9341?

sirota
Offline
Зарегистрирован: 18.08.2015

В общем сколько займет ножет такой шилд?

http://ru.aliexpress.com/item/2-4-inch-TFT-touch-LCD-Screen-Module-For-U...

Как я понимаю он занимает все ноги, если не пользоватся SD картой, то 10-13 ноги свободны. А тач там по уровню на одной ноге переключается, т.е. две ноги заняты на 2 дела.

Вообще дайте ссыль на ноги ардуинок. Т.е. какая за что. Типа почему 13 ногу не желательно использовать при свободных других и т.д. Спасибо.

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

Потому что на 13 висит светодиод с резистором и из-за этого она не всегда корректно работает в режиме digitalRead.

sadovod
Offline
Зарегистрирован: 09.10.2015

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

slavyan75
Offline
Зарегистрирован: 30.11.2015

sadovod пишет:

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

с чего вы взяли, что все ноги ? у меня практически такой же дисплей   http://www.ebay.com.au/itm/Uno-LCD-Display-2-8-inch-TFT-Touch-Screen-Module-Transfer-PCB-Board-for-Arduino-/381238351575?ssPageName=ADME:X:RTQ:AU:1123

сделана метеостанция с передачей показаний на narodmon.ru

http://s020.radikal.ru/i700/1512/a9/69430094774f.jpg

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Перебрасываете reset display на какую-нибудь другую ногу и подключаете сколько угодны (по дэйташиту - до 127) устройств по I2C.

sadovod
Offline
Зарегистрирован: 09.10.2015

А можно подробней или ссылку как это сделать или хотя бы логику описать?Я правильно понимаю LSD_RST с А4 убрать,но что это даст?И если я правильно понял теоретически к контактам ардуины в которые подключен сам дисплей можно подключить паралейно другие устройства,а когда надо переводить контакты в нужный режим и делать опрос нужных датчиков?Уже было хотел одну ардуину оставать под дисплей,а к другой нацеплять датчиков,а потом их связать.

slavyan75
Offline
Зарегистрирован: 30.11.2015
andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

sadovod, I2C подключается через A4 и A5, никаких жругих ног для приема/передачи данных не нужно. И убрать I2C с этих ног тоже нельзя, т.к. протокол реализован аппаратно. Если не отпаять сбргос дисплея с А4, он будет требовать инициализации после каждого обращения к I2C. Один из вариантов - подключить сброс дисплея к сбросу Ардуино - пусть они сбрасываются одновременно.

Какую логику описать, честно говоря, не очень представляю: режете дорожку на плате и подпаиваете проводком в другое место.

sadovod
Offline
Зарегистрирован: 09.10.2015

slavyan75,огромное спасибо за ссылку,это то что нужно,я на такой материал не натыкался,пошел изучать ))

andriano,тоже благодарю за объяснение 

sadovod
Offline
Зарегистрирован: 09.10.2015

Чтение мануало привело к осознанию,что можно всего лишь освободить порт А4 перекинув LSD_RST,но каким образом освобождение всего одного аналогового порта позволит сделать полноценную метеостанцию,с сохранением тача и SD модуля не понятно. В моем случае необходимо подключить приемник на 433 mHz,датчик DHT22,часы RTC DS1307 и ESP8266 для передачи данных на самртфон.Правильно ли я понимаю,что мне все же придется все это добро вешать на другую ардуину и связывать с ардуиной оснащенной этим дисплеем? Сразу прошу прощения если вопрос до безобразия прос и глуп,я только начинаю во всем разбираться ))

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Напротив - разбираться полезно. И раз разбираешься, значит, уже не глуп.

Для некоторых применений  3 упомянутых устройства (дисплей, тачскрин, какрта) при наличии внешнего USB, да и при том еще и возможностью подключения любых I2C устройств - просто предел мечтаний. Но никто не обещал, что так будет для любого устройства.

В конце концов, кроме UNO существует еще и MEGA, к которой этот шилд подходит, и у которой еще остается целая уйма ног.

Плохо, конечно, что пордобного дисплея нет в другом исполнении кроме шилда. Хотя, с другой стороны, там ведь 160К видеорпамяти, и для ее заполнения предусмотрен параллельный интерфейс, который, собственно, и жрет все ноги. При том, что работает не слишком шустро. Если его перевести на последовательный - будут вообще тормоза. Так что более десятка управляющих ног - считай, что плата за возможности дисплея. Кстати, компьютер, у которого оперативной памяти в 80 раз меньше, чем видеопамяти, вряд ли можно назвать сбалансированным. Так что UNO, считай, используется на пределе возможностей, потому надеять, что его хвати на что-то другое, кроме управления дисплеем - слишком оптимистично.

Я вижу следующие варианты:

 

1. В качестве контроллера использовать Mega 2560.

2. Ограничтть проект использованием только I2C периферии.

3. Использовать 2 Ардуины, например, UNO и MINI (связать их по I2C).

4. Взять дисплейчик попроще.

sadovod
Offline
Зарегистрирован: 09.10.2015

Спасибки,я так и думал,закажу мегу,ее портов мне полностью хватит,а пока она будет идти использую уно и мини,благо они есть в наличии.Еще раз спасибо.

sadovod
Offline
Зарегистрирован: 09.10.2015

Дисплей коректно работает с библиотекой Adafruit_GFX,но в отличии от UTFT в ней нет возможности смены шрифта наподоби команды из UTFT setFont.Кто знает можно ли на этом дисплее как то менять шрифты при выводе текста на экран?

slavyan75
Offline
Зарегистрирован: 30.11.2015

вы внимательно читали статью по моей ссылке в #6 ? особенно стр. 7,8

sadovod
Offline
Зарегистрирован: 09.10.2015

slavyan75 пишет:

вы внимательно читали статью по моей ссылке в #6 ? особенно стр. 7,8

спасибо за статью,но там нет ответа на мой вопрос.Шрифт хранится в файле glcdfont.c,я в нем поменял некоторые символы добавив кирилицу,но если я хочу к примеру подключить другой шрифт или использовать символы не 5х7,а любого другого размера,мне каждый раз менять файл glcdfont.c или в нем каким то образом можно прописать несколько таблиц шрифтов?К примеру мне не нравится шрифт,стандартный,который идет по умолчанию в glcdfont.c,при увеличении его в 5 раз на экране совсем не красивая картинка,скачал специально большой цифровой шрифт SevenSegNumFont размером 32х50 ,но как его использовать не пойму.В стандартной библиотеке UTFT есть команда setFont,и нужный шрифт устанавливается.А в адафруйт замена шрифта возможна только при изменение файла glcdfont.c ? Я правильно понял?

sadovod
Offline
Зарегистрирован: 09.10.2015

Всем привет! Может кто ответить по даному дисплею?

суть вот в чем:если выводить на дисплей символы в одно и тоже место командой tft.println то почему то не происходит затирание старой,ранее выведенной на это место информации,а делать отчистку командой tft.fillScreen(BLACK) не очень хочется так как скорость этой команды не высока.Есть конечно наверное еще вариант перед выводом новой инфы выводить на это место пустую строку,но правильно ли это или есть еще варианты?

Logik
Offline
Зарегистрирован: 05.08.2014

sadovod пишет:

выводить на дисплей символы в одно и тоже место командой tft.println то почему то не происходит затирание старой

Да. Отакая фигня. Приймите как неизбежное зло. Еще и тормозит при этом, т.к. символ попиксельно выводится.

Зависит от либки. На самом мелком (или другом немаштабированом)  шрифте может и не быть. 

[quote=sadovod]

 еще вариант перед выводом новой инфы выводить на это место пустую строку,но правильно ли это или есть еще варианты?

[/quote]

Варианты:

1. Правильная либа.

2. рисовать черный залитый прямоугольник на месте вывода.

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

Посетила такая вот мысль. Функция вывода символа реагирует толко если в строке втречается 1, тогда она пишет на это место пиксель заданного цвета. Что если попробовать модифицировать эту функцию так, что бы при значении бита 0 она писала пиксель цвета фона. Тогда перезапись символа на указанном знакоместе будет происходить за один цыкл. Обычно приходтся писать на это место пустой прямоугольник, а затем выводить новый символ.

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

прочитайте описание к либе, её функций.  можно задавать цвет знакоместа, по умолчанию он прозрачен, поэтому и не затирается старый символ. Установите цвет знакоместа - чёрный (ну или цвета как у вас фон)

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

slider пишет:

прочитайте описание к либе, её функций.  можно задавать цвет знакоместа, по умолчанию он прозрачен, поэтому и не затирается старый символ. Установите цвет знакоместа - чёрный (ну или цвета как у вас фон)

В UTFT не пробавал потому как не юзал сильно, только тесты. На адафруит есть функция SetTextColor(clor) и SetTextColor(color, bgcolor). По ходу мысли вторая функция как бы должна передавть в функцию DrawChar(char) две переменные и перерисовывать символ, но по факту работаеи все одинаково. Новый символ накладывается на старый. Или я совсем не доганяю эту тему..... )))

sadovod
Offline
Зарегистрирован: 09.10.2015

Так и есть и установка цвета не помогает,затиранее символа не происходит,вывод ведется поверх старого.Видимо глюк в библиотеке адафруит.Зачем тогда две разных функции вывода drawChar и print когда они делают одно и тоже.Может кто сможет поправить библиотеку?

sadovod
Offline
Зарегистрирован: 09.10.2015

А знает кто-нибудь как регулировать подсветку на этом дисплее?

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

sadovod пишет:

Так и есть и установка цвета не помогает,затиранее символа не происходит,вывод ведется поверх старого.Видимо глюк в библиотеке адафруит.Зачем тогда две разных функции вывода drawChar и print когда они делают одно и тоже.Может кто сможет поправить библиотеку?

разберитесь и поправьте вы. у других времени и надобности нет (хоть и лежит адафруитский дисплей, но честно нет свободного 1-2 часика подобрать либы и протестировать как там на каких есть затирание, а на каких нет). Попробуйте другие версии либы, поищите решения в инете. Можете попробовать UTFT переделку на ili9327_turbo в соседней ветке про 3.5" . на крайняк у неё подменить инит в папках ili9327  на тот что из папки ili9341.

sadovod пишет:

А знает кто-нибудь как регулировать подсветку на этом дисплее?

Что вам даст ответ? Если бы вы знали в электронике, то сами бы сделали. Если нет, то ответ вам не поможет.

 Также как и на большинстве дешевых шилдов ( нет пина LEDA ) , если сборки низкоомников нет с тыльной стороны, то нагревать плату и поднять дисплей, перерезать дорожки от катодов подсветки и поставить smd мосфет. завести его управление на какой нибудь PWM  пин. или на любой чтоб хотябы включать ярко или светло ( тогда между истоком и стоком поставить резистор ом 50-200). 

sadovod
Offline
Зарегистрирован: 09.10.2015

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

По поводу затирания знакоместа перед выводом нового символа,решение оказалось до банального простым,если нет надобности отчищать весь экран долгой командой tft.fillScreen(BLACK)  достаточно просто указать перед выводом не только цвет выводимого символа,но и цвет заливки фона и все,символ выводится затирая предыдущую информацию tft.setTextColor(uint16_t colorChar, uint16_t backgroundcolor)