Я потому и спрашиваю что в библиотеке
#define LCD_CS A3 // Chip Select goes to Analog 3
#define LCD_CD A2 // Command/Data goes to Analog 2
#define LCD_WR A1 // LCD Write goes to Analog 1
#define LCD_RD A0 // LCD Read goes to Analog 0
#define LCD_RESET A4 // Can alternately just connect to Arduino's reset pin
А на дисплее LS020 нет выводов
LCD_CD
LCD_WR
LCD_RD
поэтому и спрашиваю чему соответствуют эти выводы если соеденять с LS020
А можно на пальцах что и куда в скетче. Сильно не пинайте только осваиваю)
/***************************************************
This is a library for the Adafruit 1.8" SPI display.
This library works with the Adafruit 1.8" TFT Breakout w/SD card
----> http://www.adafruit.com/products/358
The 1.8" TFT shield
----> https://www.adafruit.com/product/802
The 1.44" TFT breakout
----> https://www.adafruit.com/product/2088
as well as Adafruit raw 1.8" TFT display
----> http://www.adafruit.com/products/618
Check out the links above for our tutorials and wiring diagrams
These displays use SPI to communicate, 4 or 5 pins are required to
interface (RST is optional)
Adafruit invests time and resources providing this open source code,
please support Adafruit and open-source hardware by purchasing
products from Adafruit!
Written by Limor Fried/Ladyada for Adafruit Industries.
MIT license, all text above must be included in any redistribution
****************************************************/
#include <Adafruit_GFX.h> // Core graphics library
#include <Adafruit_ST7735.h> // Hardware-specific library
#include <SPI.h>
// For the breakout, you can use any 2 or 3 pins
// These pins will also work for the 1.8" TFT shield
#define TFT1_CS 53
#define TFT2_CS 50
#define TFT1_RST 8 // you can also connect this to the Arduino reset
// in which case, set this #define pin to -1!
#define TFT2_RST 8 // you can also connect this to the Arduino reset
// in which case, set this #define pin to -1!
#define TFT1_DC 9
#define TFT2_DC 9
// Option 1 (recommended): must use the hardware SPI pins
// (for UNO thats sclk = 13 and sid = 11) and pin 10 must be
// an output. This is much faster - also required if you want
// to use the microSD card (see the image drawing example)
//Adafruit_ST7735 tft1 = Adafruit_ST7735(TFT1_CS, TFT1_DC, TFT1_RST);
//Adafruit_ST7735 tft2 = Adafruit_ST7735(TFT2_CS, TFT2_DC, TFT2_RST);
// Option 2: use any pins but a little slower!
#define TFT1_SCLK 52 // set these to be whatever pins you like!
#define TFT2_SCLK 52 // set these to be whatever pins you like!
#define TFT1_MOSI 51 // set these to be whatever pins you like!
#define TFT2_MOSI 51 // set these to be whatever pins you like!
Adafruit_ST7735 tft1 = Adafruit_ST7735(TFT1_CS, TFT1_DC, TFT1_MOSI, TFT1_SCLK, TFT1_RST);
Adafruit_ST7735 tft2 = Adafruit_ST7735(TFT2_CS, TFT2_DC, TFT2_MOSI, TFT2_SCLK, TFT2_RST);
float p = 3.1415926;
void setup(void) {
Serial.begin(9600);
Serial.print("Hello! ST7735 TFT Test");
//writeRegister8(0x36, 0x0A) //попробуй
// Use this initializer if you're using a 1.8" TFT
tft1.initR(INITR_BLACKTAB); // initialize a ST7735S chip, black tab
tft2.initR(INITR_BLACKTAB); // initialize a ST7735S chip, black tab
Serial.println("Initialized");
uint16_t time = millis();
tft1.fillScreen(ST7735_BLACK);
tft2.fillScreen(ST7735_GREEN);
time = millis() - time;
Serial.println(time, DEC);
delay(500);
// large block of text
tft1.fillScreen(ST7735_RED);
testdrawtext("HELLO PEOPLE ", ST7735_GREEN);
delay(11000);
// large block of text
tft2.fillScreen(ST7735_BLUE);
testdrawtext("HELLO World ", ST7735_RED);
delay(11000);
// a single pixel
tft1.drawPixel(tft1.width()/2, tft1.height()/2, ST7735_GREEN);
delay(500);
// a single pixel
tft2.drawPixel(tft2.width()/2, tft2.height()/2, ST7735_GREEN);
delay(500);
tft1.fillScreen(ST7735_BLACK);
delay(500);
tft2.fillScreen(ST7735_WHITE);
delay(500);
Serial.println("done");
delay(1000);
}
void loop() {
tft1.fillScreen(ST7735_RED);
testdrawtext("HELLO WORLD ", ST7735_GREEN);
tft2.fillScreen(ST7735_RED);
testdrawtext("HELLO PEOPLE ", ST7735_GREEN);
}
void testdrawtext(char *text, uint16_t color) {
tft1.setCursor(0, 0);
tft1.setTextColor(color);
tft1.setTextWrap(true);
tft1.print(text);
tft2.setCursor(0, 0);
tft2.setTextColor(color);
tft2.setTextWrap(true);
tft2.print(text);
}
с китайского телефона 2009-10 чтоль года (времен нокии N9) - когда пошли первые смартфоны 2х симочные еще с теликом аналоговым (антенка выдвигалась) - это те, которые подделывали аля бренды всех марок и мастей
этот вроде nexus7 обзывался (клон)
в общем он работал полностью - у него лет 5 назад сдох сенсор, а замена стоила как такойже телефон. с тех пор и валялся на полке пыль собирал...
//кстати на удивление но углы экрана шикарные, прядка 160 градусов без искажений и зизменений цвета практически....
{
Serial.println("***********use minimal init 2************");
// от ili9488
writeRegister8(0x11, 0);//Exit Sleep
delay(150);
// writeRegister8(0x00, 0x00);// очень важен, иначе перевернуто и цветопередача не та
writeRegister8(0x3A, 0x05);// очень важен, иначе черно-белые кракозябры
writeRegister8(0x29, 0);//display on
writeRegister8(0x2c, 0);//write end
}
пробовал и 0х0А и вообще разные варианты и даже просто закоментировал - экран не реагирует никак на эти манипуляции :(
хотя в порт выводит сообщение, что подтверждает, что и менно эта часть кода включается
Всем привет . Решил хоть ,что то изобрести или повторить за кем то хоть какую нибудь фитюльку. Обажаю паять и повторять за кем то какие то интересные поделки . Решил подключить дисплей от сотового телефона к ардуино . Была мобилка и умерла . Остался живой LSD c маркировкой TXDT350DH-111.Не могу найти распиновку . Если я не туда пишу , то подскажите куда обратиться с вопросом . ТУТ ПРОСТО Я ВПЕРВЫЕ .
чтото нифига толком не выходит, такое впечатление, что библиотека вообще не верно формирует запрос цвета... как я понял ДШ - на 948* цвет отправлять надо за 2 захода - а библиотека только 1 раз шлет - вот и не проходит полный цвет...
ну тут моих знаний уже не хватает это переписать...
На каком у тебя запустился? На 9488 ?
https://drive.google.com/file/d/1oMNJmfqJ3j1AiVxAJY5vqb9etbaHzF2i/view?usp=sharing https://drive.google.com/file/d/1pNr2JbChzjxZlRiuMWlYWBeUp0lfMb0D/view?usp=sharing https://drive.google.com/file/d/10JXPxplUQTyOQm-eyAiU5JWyBQAxxCB0/view?usp=sharing
Добрый день! вот фото ....Лучше не получается ...Извините.
только на 0x9341
как я понял - в библиотеке работает этот блок
writeRegister8(0x36, 0x00) попробуй так изменить
kalugin77 не нашел нормального reset.
Разводка такая
0,1,2,3 как обычно, либо RD,WR,DC,CS , либо наоборот. Подсветка у тебя больше 3В.
С ней разберешься после. Сначала подключай без нее и считывай.
RESET сначала подключи к 7, попробуй считать и выкладывай.
Если считает фигню, подключи ресет к 8.
Хочу проверить дисплей LS020 рабочий или нет подключив к ардуино уно или мега . Нашёл в интернете скетч читалку V5.2
Там идёт по SPI а в скетче
LSD_CS
LSD_CD
LSD_WR
LSD_RD
LSD_RESET
какие ножки прописать куда Если брать уно или мега .
в SPI каким выводам соответствуют например LSD_WR или LSD_RD и так далее
сМОТРИ БИБЛИОТЕКИ ДЛЯ АРДУИНО. тАМ ОН ДОЛЖЕН БЫТЬ. тАМ ЖЕ И ПОДКЛЮЧЕНИЕ.
Я потому и спрашиваю что в библиотеке
#define LCD_CS A3 // Chip Select goes to Analog 3
#define LCD_CD A2 // Command/Data goes to Analog 2
#define LCD_WR A1 // LCD Write goes to Analog 1
#define LCD_RD A0 // LCD Read goes to Analog 0
#define LCD_RESET A4 // Can alternately just connect to Arduino's reset pin
А на дисплее LS020 нет выводов
LCD_CD
LCD_WR
LCD_RD
поэтому и спрашиваю чему соответствуют эти выводы если соеденять с LS020
Ищи в библиотеке подключение по SPI, а ты смотришь про параллельное.
Если б я это всё знал мне бы и обрашаться не нужно было ) Там про подключение только
#define LCD_CS A3 // Chip Select goes to Analog 3
#define LCD_CD A2 // Command/Data goes to Analog 2
#define LCD_WR A1 // LCD Write goes to Analog 1
#define LCD_RD A0 // LCD Read goes to Analog 0
#define LCD_RESET A4 // Can alternately just connect to Arduino's reset pin
// use these 8 data lines to the LCD: // For the Arduino Uno, MEGA //
D0 connects to digital pin 8
D1 connects to digital pin 9
D2 connects to digital pin 2
D3 connects to digital pin 3
Теперь так что ли
#define LCD_CS 8
#define LCD_CD 9
#define LCD_WR 2
#define LCD_RD 3
#define LCD_RESET A4
?
Я запутался )
Как это всё соеденить с ардуино и дисплеем
Спасибо!
writeRegister8(0x36, 0x00) попробуй так изменить
тоже не дало никакого результата
вообще удалил из библиотеки этот блок - оно работает по прежнему....
завтра буду думать что я не так делаю....
нужно с библиотекой разбираться.
ELITE а откуда ты снял этот дисплей?
А можете подсказать как прописывать два диспа в скетче? Пока показывают одно и тоже...
нужно с библиотекой разбираться.
writeRegister8(0x36, 0x0A) попробуй
А можно на пальцах что и куда в скетче. Сильно не пинайте только осваиваю)
ELITE а откуда ты снял этот дисплей?
с китайского телефона 2009-10 чтоль года (времен нокии N9) - когда пошли первые смартфоны 2х симочные еще с теликом аналоговым (антенка выдвигалась) - это те, которые подделывали аля бренды всех марок и мастей
этот вроде nexus7 обзывался (клон)
в общем он работал полностью - у него лет 5 назад сдох сенсор, а замена стоила как такойже телефон. с тех пор и валялся на полке пыль собирал...
//кстати на удивление но углы экрана шикарные, прядка 160 градусов без искажений и зизменений цвета практически....
writeRegister8(0x36, 0x0A) попробуй
спасибо, утром буду пробовать - все железки на работе валяются, домой не таскаю, на работе времени больше свободного, чем дома
2354resd
Сигналы на CS у тебя разведены на 2 разные ноги.
Инициализируешь дисплеи. Можно одновременно. Поднимаешь оба CS вверх.
Затем опускаешь CS 1 дисплея и пишешь в него. Поднимаешь CS.
Опускаешь CS 2 дисплея и пишешь в него. Поднимаешь CS.
ELITE Нужно искать по инициализациям или даташитам похожие команды у контроллеров.
Основные команды могут совпадать, а регистры, отвечающие за цветность и инверсию
могут быть отличными от 0х36. Начни с записи в 0х36 сначала 00, затем FF. Если ничего не поменяется, то
нужно искать, как писал выше.
2354resd
Сигналы на CS у тебя разведены на 2 разные ноги.
Инициализируешь дисплеи. Можно одновременно. Поднимаешь оба CS вверх.
Затем опускаешь CS 1 дисплея и пишешь в него. Поднимаешь CS.
Опускаешь CS 2 дисплея и пишешь в него. Поднимаешь CS.
Если не сложно поправьте пожалуйста в скетче как примерно должно быть..
Не могу разобраться. При одной инициализации оба показывают одно и тоже, прописываю оба один который tft1 молчит второй работает.
Я не пишу для ардуино. Наверное так.
void
loop
() {
digitalWrite(TFT1_CS, HIGH);
digitalWrite(TFT2_CS, HIGH);
digitalWrite(TFT1_CS, LOW); // пишем в 1 дисплей
tft1.fillScreen(ST7735_RED);
testdrawtext(
"HELLO WORLD "
, ST7735_GREEN);
digitalWrite(TFT1_CS, HIGH);
digitalWrite(TFT2_CS, LOW); // пишем во 2 дисплей
tft1.fillScreen(ST7735_BLUE);
testdrawtext(
"HELLO PEOPLE "
, ST7735_GREEN);
digitalWrite(TFT2_CS, HIGH);
}
Не помогло. Один работает, второй при запуске пишет Hello черно белым и перевернутым и все белый фон
Тогда начни с изучения библиотеки, которой пользуешься. Когда поймешь, как она работает,
напишешь что хочешь.
Тогда начни с изучения библиотеки, которой пользуешься. Когда поймешь, как она работает,
напишешь что хочешь.
Текст пишет на одном дисплее сразу оба варианта один поверх другого... Библиотека пока совсем потемки для меня
Я не знаю, как написана библиотека. Поэтому не смогу помочь. Жди, может появится кто разбирается,
посоветует что-нибудь.
для кеонтроля сделал вывод в порт
но результатов нет, на команды не реагирует никак
пробовал и 0х0А и вообще разные варианты и даже просто закоментировал - экран не реагирует никак на эти манипуляции :(
хотя в порт выводит сообщение, что подтверждает, что и менно эта часть кода включается
Посмотри инициализации на контроллеры ILI. 93хх , 94хх. Разрешение у тебя скорее всего 240х320.
Больше для 3,2 дюймов врятли. Если в инициализации есть регистры 0х11 0х29, то смотри по даташитам
какие регистры отвечают за поворот и цветность (RGB - BGR) дисплея. И в них пытайся поменять в
соответствии с даташитом. У табя сейчас инициализируется режим BGR, поэтому цвета не те.
320*480 это точно, тк рисует толинейно в этом размере точно по пикселам и во весь экран
writeRegister8(0x36, 0x10)
дало правильную ориентацию :)
теперь цветность осталось победить
Всем привет . Решил хоть ,что то изобрести или повторить за кем то хоть какую нибудь фитюльку. Обажаю паять и повторять за кем то какие то интересные поделки . Решил подключить дисплей от сотового телефона к ардуино . Была мобилка и умерла . Остался живой LSD c маркировкой TXDT350DH-111.Не могу найти распиновку . Если я не туда пишу , то подскажите куда обратиться с вопросом . ТУТ ПРОСТО Я ВПЕРВЫЕ .
Вот ссылки с фото на дисплей :
https://pp.userapi.com/c841534/v841534794/6cc03/EhsILuCvHBE.jpg
сделал тест с авто подставой значений
и чтото мне кажется, что у меня картинка в негативе именно идет, тк вебый выводит черным и наоборот
Если 320х480, то посмотри даташиты на ILI 9481(86,88). В них с картинками описывается
какой бит в этом регистре за что отвечает. Возможно инверсия изображения лежит в другом регистре.
В даташите в принципе и без знания языка все понятно.
TonitoCampos
Пока его можно включить только на 9 или 18 бит. Попробуй считать ID контроллера
подключив D0-D7. 0123 это RD,WR,DC,CS или наоборот
Спасибо.. Опробуем ) Еще раз спасибо ...
если 9488 то выбор или 3 бит или 16 и 24 бит цветность
лежат в 3А блоке - но тут пробовал - или искажено или черно-белое или без картинки вобще
но по идее он умеет по SPI 3 и 4 работать (что немного обнадеживает)
чтото нифига толком не выходит, такое впечатление, что библиотека вообще не верно формирует запрос цвета... как я понял ДШ - на 948* цвет отправлять надо за 2 захода - а библиотека только 1 раз шлет - вот и не проходит полный цвет...
ну тут моих знаний уже не хватает это переписать...
у 9488 в 36 регистре есть бит переворачивающий цветность RGB --BGR
да, это я пробовал - цвета меняются, но он меняет всего 2 варианта - но конечный итог не идет
вместо желтого у меня или красный или синий
итого не хватает части зеленого
по ДШ выходит что зеленый 2 раза отправляется
RG + GB пара
при перевороте выходит BG + GR
но видимо отправка библиотекой идет только первой части
Ты запускаешь библиотеку в 8 битном или 16 битном режиме? Если в 16 битном, то она посылает два байта цвета
одновременно на D0-D15. Тогда ты теряешь часть зеленого плюс синий или красный цвет.
Какой скетч ты запускаешь?
и библиотеку подправил так
Adafruit_TFTLCD
как на 8бит переключить пока не разобрался
В ветке Слайдер писал как подсунуть нужный инит.
fps Очень навороченный шлейф. Попробую разобраться.
У тебя телефон с которого он снят есть?
Попался вот такой дисп 4" от китайца.
Поискал на просторах...ничего более-менее не нашел. Помогите с распиновкой.
Выложи хорошее фото, чтоб видно было.
Вот тут в архиве крупные
https://yadi.sk/d/n_kDgDQp3SAJ9j
Дисплей 800х480. Сейчас заточен под 24 бит. Шлейф слегка наворочен.
Придется помучаться. Ты уверен, что оно тебе надо. Плюс для ардуин библиотеки
думаю нет. Шрифт 8х8 будет очень маленьким. Для картинок памяти нужно будет немеряно.
Дисплей 800х480. Сейчас заточен под 24 бит. Шлейф слегка наворочен.
Придется помучаться. Ты уверен, что оно тебе надо. Плюс для ардуин библиотеки
думаю нет. Шрифт 8х8 будет очень маленьким. Для картинок памяти нужно будет немеряно.
Там не особо стандартный контроллер? Пока этот дисп первый у меня с нормальным паябельным шлейфом)
С двумя по SPI так толком и не разобрался, пока, один мешает второму инициализироваться...почему хз.