i2c + TFT на Arduino Uno
- Войдите на сайт для отправки комментариев
Втр, 11/07/2017 - 23:16
Есть arduino uno с дисплеем 3.2 дюйма TFT. Проблема простая: не хватает ног. Одна нога занята для 1-wire, как я понял еще свободна одна нога - A5. Мне конечно для управления нужно больше, я поставил расширитель через i2c на PCF8574. Только вот как я понял порт А4 тоже занят диплеем:
#define YP A2 #define XM A1 #define YM 6 #define XP 7 TouchScreen ts = TouchScreen(XP, YP, XM, YM, 300); UTFT myGLCD(31,A2,A1,A3,A4);
Кто-нибудь знает можно ли перекинуть на другой порт вместо A4? Кто-нибудь может сказать, сколько там пинов занято вообще? Я думаю для Uno все дисплеи примерно одинаковые. У меня такое чудо:
Товарищи, подскажите, кто знает. Можно ли сигнал в инициализации UTFT myGLCD(31,A2,A1,A3,A4); перенести на другой пин? Какие пины тут вообще свободны у ардуины?
все можно перенести . подменив аппаратно и програмно (в вызовах тача и дисплея).
//
дополнительно можно вообще выкинуть LCD_RD -A0 , LCD_CS -A3 , LCD_RST -A4 ,. как раз на UTFT так делал и выкладывал в теме про диспы. Оставить только необходимые для вывода графики LCD_WR -A1 и LCD_CD(RS) -A2 и , на них к стати и тач висит.
//// если карту памяти не используете то с этим шилдом свободны 7(9)пинов D0 , D1 , D10 , D11 , D12 , D13 . A5 (A6 A7- выведены в нано, мини, и некоторых уно)
при аппаратном и програмном вырезании RD CS RST получаете свободными 10(12) пинов.
Спасибо большое за ответ. Я пробую припаять пин RST с A4 на 10-й. В конструктор класса передаю вместо
UTFT myGLCD(31,A2,A1,A3,A4);
вот это
UTFT myGLCD(31,A2,A1,A3,10);
Но результат - белый экран. Причем даже с этими изменениями если пин возвращаю на место - начинает работать. Я так понимаю где-то в библиотеке жестко определен этот пин? Куда посмотреть?
1. попробуйте оставить как было UTFT myGLCD(31,A2,A1,A3,A4); , и просто загните пин RST , проводком на шилде соедените RST c RST ардуино (при подаче питания на ардуину, она сама даст нужный короткий лог1 , для диспа этого хватит)
выкл/вкл питание - дисп должен запуститься , проверьте.
2. обычно так, в скетче после вызова либы графики и инита (она настроит и воспользуется пином A4 , далее используйте вызов инита вашей либы (она перестроит пин A4 под себя и будет им пользоваться дальше ) // в вашем случае вроде этот пункт делать не надо , I2C сам подтягивается при первом обращении.
slider, спасибо большое! Вечером попробую!
В принципе мне достаточно I2C, я туда поставил расширитель GPIO на PCF8574, четырех входов и четырех выходов мне в этом проекте более чем достаточно. Если что - можно расширить еще одной микросхемой.
Я тут в прошлой теме задавал вопрос почему не работает дисплей на Arduino Mega. Мне кто-то сказал потому что SPI у меги в другом месте. Но как я понимаю конкретно этот дисплей не использует SPI вообще. Что тогда может быть?
Сейчас конечно этот дисплей на меге не очень актуален так как портов с расширителем будет достаточно. Только вот боюсь не хватит памяти. Сейчас свободно всего 6 кб, а мне еще кнопочки на экран прилепить надо для управления этим хозяйством...
именно для этого шилда SPI не причем.
дело в библиотеке , а именно в файле UTFT\hardware\avr\HW_ATmega1280.h
что идет после строчек
slider, Спасибо большое! Я повесил RST на сигнал RST ардуино и i2c заработал. Теперь почти нет преград для завершения проекта!