TFT st7781 jock

art100
Offline
Зарегистрирован: 09.03.2014

Сказка дети начинается

И купил иван царевич чудо юдо заморское, кинув клич 10$ на http://www.aliexpress.com/item/2-4-inch-TFT-touch-LCD-Screen-Module-For-Arduino-UNO-Free-Shipping/1418497586.html

Выбирал конечно с кодом.

https://drive.google.com/file/d/0B3hqYAvAOKllZ0M3d3E4REdiS2c/edit?usp=sharing

Компилятор древнющий да бетта какая-то, с дурко именами папок и фалов, но запускался.

С трудом был найден криворабочий пример TFTLCD7781 хотя чип упорно говорит что я 7783.

И понеслась судьбинушка по кочкам.

Был поддержен ценнейшими и содержательными беседами с разработчиками компилятора http://forum.arduino.cc/index.php?topic=223769.0

Сказка закончилась.

Я в ЖКИ как свинья в апельсинах.

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

Теперь вопрос:

Теоретически возможно надежно клаву и экран ввод и вывод по общим проводам развести , допустим ЖКИ способен запоминать и после получения удерживать изображение, а клавку опрашивать допустим изредко delay(10);?

Ключевое слово - надежно.

мой код работает но плеваться хочеться

01[code]
02//TouchScreen
03#define YP A1 //tftloop-YU pcbundertft-13 arduinoshieldLCD_WR!!! arduinouno-A1
04#define XM A2 //tftloop-XR pcbundertft-14 arduinoshieldLCD_RS!!! arduinouno-A2
05#define YM 7  //tftloop-XR pcbundertft-15 arduinoshieldLCD_D7 arduinouno-7
06#define XP 6  //tftloop-XR pcbundertft-12 arduinoshieldLCD_D6 arduinouno-6
07 
08//TFT
09#define LCD_RESET A4//
10#define LCD_CS A3
11#define LCD_CD A2 //cmosbuffer-arduinoshieldLCD_RS!!! arduinouno-A2
12#define LCD_WR A1 //cmosbuffer-arduinoshieldLCD_WR!!! arduinouno-A1
13#define LCD_RD A0
14[/code]

как вы видите меня смутило что ЦАПы у клавы и моника оказались общие по очереди

как вы видите я даже вскрыл моник и под ним на шлейфе вызвонил что там накудесено

поэтому встряхивать их приходится

[code]

void loop(){
  pinMode(XM, OUTPUT);
  pinMode(YP, OUTPUT);
[/code]

Вопрос второй

2. Как привильно подключать библиотеки?

Мне за несколько дней никто ничего не смог ответить.

 

Китай жлепает отходы жки наклеивает на них матрицы резиствные все это напаивают на шилд как китайский бог подал и кричат эй ардуиноводы е...сь.

Код думаю можете не искать в мире его нет .

Можете взять мой.

Я 118-ый кто купил такой новомодный шилд.

Не понимаю как остальные в темную покупают без кода :-?

нате вам рабочего кода

Чисто вывод .

Работает адекватно.

[code]

// art100 write message 
//TOUCH PCB ARDUINO UNO
//YU 13 A1
//XL 12 6
//YD 15 7
//XR 14 A2     
//TFT    
//A 
//K1 
//K2 
//K3 
//K4
#include "TFTLCD.h"
//pins
#define LCD_RESET A4
#define LCD_CS A3    
#define LCD_CD A2    
#define LCD_WR A1   
#define LCD_RD A0    
// Color definitions
#define BLACK           0x0000
#define BLUE            0x001F
#define RED             0xF800
#define GREEN           0x07E0
#define CYAN            0x07FF
#define MAGENTA         0xF81F
#define YELLOW          0xFFE0 
#define WHITE           0xFFFF
TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);
//-----------------------
void setup(void) {
  Serial.begin(9600);
  Serial.println("8 Bit LCD test!");
  tft.reset();
  tft.initDisplay();
//  testtext(YELLOW);
}
//===================
void loop(void) {
 
//Serial.println("testFillRoundRect();");
//testFillRoundRect();
//delay(1000);
 
 
//Serial.println("testRoundRect();");
//testRoundRect();
//delay(1000);
 
 
//Serial.println("testtriangles();");
//testtriangles();
//delay(1000);
 
//testfilltriangles();
//Serial.println("testfilltriangles();");
//delay(1000);
 
//Serial.println("testfillcircles(50,RED);");
//testtext(RED);
//delay(1000);
 
//Serial.println("testdrawcircles(50,RED);");
//testdrawcircles(50,RED);
//delay(10000);
 
//Serial.println("testfillrects(YELLOW, RED);");
//testfillrects(YELLOW, RED);
//delay(1000);
 
//Serial.println("testdrawrects(YELLOW);");
//testdrawrects(YELLOW);
//delay(10000);
 
//Serial.println("testfastlines(YELLOW, RED);");
//testfastlines(YELLOW, RED);
//delay(10000);
 
Serial.println("testlines(RED);");
testlines(RED);
delay(10000);
 
//Serial.println("testBars();");
//testBars();
//delay(10000);
 
}
//----------------------------------
void testtext(uint16_t color) {
  tft.fillScreen(BLACK);
  tft.setCursor(0, 0);
  tft.setTextColor(color);
  tft.setTextSize(3);
tft.println("Chego");
tft.println("ustavilsya?");
tft.println("Pizdec");
tft.println("proshol.");
tft.println("Fashists");
tft.println("from Europe");
tft.println("in Kiev."); 
tft.println("Havaysya");
tft.println("in ogurci."); 
tft.println("Undestand?");
  //tft.println(0xDEADBEEF, HEX);
}
//------------------------------
void testFillRoundRect() {
  tft.fillScreen(BLACK);
  
  for (uint16_t x=tft.width(); x > 20 ; x-=6) {
    tft.fillRoundRect(tft.width()/2 -x/2, tft.height()/2 -x/2 , x, x, x/8,  tft.Color565(0, x, 0));
 }
}
//-------------------------------
void testRoundRect() {
  tft.fillScreen(BLACK);
  
  for (uint16_t x=0; x < tft.width(); x+=6) {
    tft.drawRoundRect(tft.width()/2 -x/2, tft.height()/2 -x/2 , x, x, x/8, tft.Color565(x, 0, 0));
 }
}
//-------------------------------
void testtriangles() {
  tft.fillScreen(BLACK);
  for (uint16_t i=0; i<tft.width()/2; i+=5) {
    tft.drawTriangle(tft.width()/2, tft.height()/2-i,
                     tft.width()/2-i, tft.height()/2+i,
                     tft.width()/2+i, tft.height()/2+i, tft.Color565(0, 0, i));
  }
}
//-------------------------------
void testfilltriangles() {
  tft.fillScreen(BLACK);
  
  for (uint16_t i=tft.width()/2; i>10; i-=5) {
    tft.fillTriangle(tft.width()/2, tft.height()/2-i,
                     tft.width()/2-i, tft.height()/2+i,
                     tft.width()/2+i, tft.height()/2+i, 
                     tft.Color565(0, i, i));
    tft.drawTriangle(tft.width()/2, tft.height()/2-i,
                     tft.width()/2-i, tft.height()/2+i,
                     tft.width()/2+i, tft.height()/2+i, tft.Color565(i, i, 0));    
  }
}
//----------------------------
void testfillcircles(uint8_t radius, uint16_t color) {
  for (uint16_t x=radius; x < tft.width(); x+=radius*2) {
    for (uint16_t y=radius; y < tft.height(); y+=radius*2) {      tft.fillCircle(x, y, radius, color);    }
  }  
}
//-------------------------------
void testdrawcircles(uint8_t radius, uint16_t color) {
  for (uint16_t x=0; x < tft.width()+radius; x+=radius*2) {
    for (uint16_t y=0; y < tft.height()+radius; y+=radius*2) {      tft.drawCircle(x, y, radius, color);    }
  }  
}
//-------------------------------
void testfillrects(uint16_t color1, uint16_t color2) {
 tft.fillScreen(BLACK);
 for (uint16_t x=tft.width()-1; x > 6; x-=6) {
   //Serial.println(x, DEC);
   tft.fillRect(tft.width()/2 -x/2, tft.height()/2 -x/2 , x, x, color1);
   tft.drawRect(tft.width()/2 -x/2, tft.height()/2 -x/2 , x, x, color2);
 }
}
//-------------------------------
void testdrawrects(uint16_t color) {
 tft.fillScreen(BLACK);
 for (uint16_t x=0; x < tft.width(); x+=6) {   tft.drawRect(tft.width()/2 -x/2, tft.height()/2 -x/2 , x, x, color); }
}
//-------------------------------
void testfastlines(uint16_t color1, uint16_t color2) {
   tft.fillScreen(BLACK);
   for (uint16_t y=0; y < tft.height(); y+=5) {     tft.drawHorizontalLine(0, y, tft.width(), color1);   }
   for (uint16_t x=0; x < tft.width(); x+=5) {     tft.drawVerticalLine(x, 0, tft.height(), color2);   }
  
}
//-------------------------------
void testlines(uint16_t color) {
   tft.fillScreen(BLACK);
   for (uint16_t x=0; x < tft.width(); x+=6) {     tft.drawLine(0, 0, x, tft.height()-1, color);   }
   for (uint16_t y=0; y < tft.height(); y+=6) {     tft.drawLine(0, 0, tft.width()-1, y, color);   }
   tft.fillScreen(BLACK);
   for (uint16_t x=0; x < tft.width(); x+=6) {     tft.drawLine(tft.width()-1, 0, x, tft.height()-1, color);   }
   for (uint16_t y=0; y < tft.height(); y+=6) {     tft.drawLine(tft.width()-1, 0, 0, y, color);   }
   tft.fillScreen(BLACK);
   for (uint16_t x=0; x < tft.width(); x+=6) {     tft.drawLine(0, tft.height()-1, x, 0, color);   }
   for (uint16_t y=0; y < tft.height(); y+=6) {     tft.drawLine(0, tft.height()-1, tft.width()-1, y, color);   }
   tft.fillScreen(BLACK);
   for (uint16_t x=0; x < tft.width(); x+=6) {     tft.drawLine(tft.width()-1, tft.height()-1, x, 0, color);   }
   for (uint16_t y=0; y < tft.height(); y+=6) {     tft.drawLine(tft.width()-1, tft.height()-1, 0, y, color);   }
}
//-------------------------------
void testBars() {
  uint16_t i,j;
  for(i=0; i < tft.height(); i++)
  {
    for(j=0; j < tft.width(); j++)
    {
      if(i>279) tft.writeData(WHITE);
      else if(i>239) tft.writeData(BLUE);
      else if(i>199) tft.writeData(GREEN);
      else if(i>159) tft.writeData(CYAN);
      else if(i>119) tft.writeData(RED);
      else if(i>79) tft.writeData(MAGENTA);
      else if(i>39) tft.writeData(YELLOW);
      else tft.writeData(BLACK);
    }
  }
}
//-------------------------------
[/code]

вывод и ввод

но работает не адекватно

[code]

//20140208 art100  tft2.4" st7783 shield on arduino uno
// art100 write message 
//#include "st7783SD.h" // pins SD_SS-10 SD_DI-11(in) SD_DO-12(out) SD_SCK-13 no work
//#include "st7783TFT.h" //has not written
//#include "st7783TouchScreen.h" //has not written
#include "TFTLCD.h" // work
#include "TouchScreen.h" // bad but it works
//TouchScreen define
#define YP A1 //tftloop-YU pcbundertft-13 arduinoshieldLCD_WR!!! arduinouno-A1
#define XM A2 //tftloop-XR pcbundertft-14 arduinoshieldLCD_RS!!! arduinouno-A2
#define YM 7  //tftloop-XR pcbundertft-15 arduinoshieldLCD_D7 arduinouno-7
#define XP 6  //tftloop-XR pcbundertft-12 arduinoshieldLCD_D6 arduinouno-6
#define TS_MINX 150//0
#define TS_MINY 120//0
#define TS_MAXX 920//900//320      //for calibrate analog resistans ~1500om/700om
#define TS_MAXY 940//800//900//240 //for calibrate analog resistans ~1500om/700om
// 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);
//TFT  define
#define LCD_RESET A4// 
#define LCD_CS A3
#define LCD_CD A2 //cmosbuffer-arduinoshieldLCD_RS!!! arduinouno-A2
#define LCD_WR A1 //cmosbuffer-arduinoshieldLCD_WR!!! arduinouno-A1
#define LCD_RD A0
// Color definitions
#define WHITE           0xFFFF
#define BLACK           0x0000
#define RED             0xF800
#define BLUE            0x001F
#define GREEN           0x07E0
#define YELLOW          0xFFE0 
TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);
//SD define //has not written
#define bordur   5
#define pen      3
//---------------------------------------
void setup(void) {
  Serial.begin(9600);
  Serial.println("Paint");
  tft.reset();
  uint16_t identifier = tft.readRegister(0x0);
  tft.initDisplay(); 
  tft.fillScreen(RED);
}
#define MINPRESSURE 10    // analog calibrate
#define MAXPRESSURE 1000  // analog calibrate
//=======================================
void loop(){
  Point p = ts.getPoint(); // get analog point
  pinMode(XM, OUTPUT); //2 chip on one pins
  pinMode(YP, OUTPUT); //2 chip on one pins
  if (p.z > MINPRESSURE && p.z < MAXPRESSURE) { // analog calibrate
    p.x = map(p.x, TS_MINX, TS_MAXX, 0, tft.width ()); // aprocsimate variable
    p.y = map(p.y, TS_MINY, TS_MAXY, 0, tft.height()); // aprocsimate variable
    
//    if (300< p.x) { // erase only on bordur  //no need have reset button
//      Serial.println("erase"); // test
//      tft.fillRect(0, 0, tft.width(), tft.height(), RED);// BLACK); //fill black
//    }
    
    // test
    Serial.print("getPoint x=");Serial.print(p.x);Serial.print(" y=");Serial.print(p.y);Serial.print(" PRESSURE=");Serial.print(p.z);  
    
    // paint
    if (((p.x)<tft.width()) && ((p.y)<tft.height())) { tft.fillRect(p.x,p.y,pen,pen,GREEN); } 
  }
}
 

[/code]

Последний код

Важно!

Я нарисовал свой жене на 8 марта сердечко и меня не стали убивать.

Вас тоже может спасти. :)

Жду критики.

 

 

 

 

art100
Offline
Зарегистрирован: 09.03.2014

ввод вывод

который спасает мир

потому что нравится женщинам

только вывод

работает легко

но какой практический смысл

только если политика

распиновочка

 

Неужто я опять впереди планеты всей :-0

А где остальные 117 купивших этот шилд :-?

art100
Offline
Зарегистрирован: 09.03.2014

Вопрос следующий 3-ий

Как SD писать читать.

Что модного нынче лучше рабочим кодом

Задача скажем такая:

Если втыкнул miniSD то прочитал картинку и сразу на экран.

Я в этом тоже как свинья в апельсинах.

Вижу распаяны 4 ноги некиt

SD_SS ни чего не думаю

SD_DI думаю Input

SD_DO дмуаю Output 

SD_SCK думаю синхроимпульс

мне как чайнику надо обьяснять что это за 4 ноги

как порт называется

 

art100
Offline
Зарегистрирован: 09.03.2014

ну чтож продолжим беседу с умным человеком и мастером на все руки.

Говорите

Цитата:

Я в этом тоже как свинья в апельсинах.

не с пятачками тут мало совсем с кривыми руками тут поболей  - на гоблины откликаются

мало того что крывые, так растут не ровно из плечей

вот и код выложит не в состоянии

хотя он у каждого кто сюда заходит в стандартных библиотеках

на твое фото малек посмотреть и чуток подправить

Цитата:

Вижу распаяны 4 ноги некиt

думаю SPI назывется ключевое словцо

Цитата:

SD_SS ни чего не думаю

инициализацией зовется

Цитата:

SD_DI думаю Input

SD_DO дмуаю Output 

SD_SCK думаю синхроимпульс

как всегда прав

Цитата:

мне как чайнику надо обьяснять что это за 4 ноги

как порт называется

термит с выражоувыванием читай выше

код можешь мой попользовать

пин вместо по умолчанию да и ты сам видишь 10 11 12 13(4)

код возьами внутри компилятора отсюда http://arduino.cc/en/Main/Software#toc2 /labriary/SD/...

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

не ровен час сгавняет твою инфу на miniSD-шке

почитай неспешно

а через денек как начитаешся приходи поговорим

ответ сожержимого вот такой будет

[code]

 
Initializing SD card...Wiring is correct and a card is present.
 
Card type: SDHC
 
Volume type is FAT32
 
Volume size (bytes): 3123707904
Volume size (Kbytes): 3050496
Volume size (Mbytes): 2979
 
Files found on the card (name, date and size in bytes): 
MINIWOOF.BMP  2011-08-24 11:04:48 57654
TEST.BMP      2011-08-24 11:04:48 230456
WOOF.BMP      2011-08-24 11:04:48 230456
LOGO.BMP      2014-03-10 18:10:28 6966
DATALOG.TXT   2000-01-01 01:00:00 35897
 

[/code]

или такой

[code]

Initializing SD card...Wiring is correct and a card is present.
 
Card type: SDHC
 
Volume type is FAT32
 
Volume size (bytes): 2667610112
Volume size (Kbytes): 2605088
Volume size (Mbytes): 2544
 
Files found on the card (name, date and size in bytes): 
TEST/         2014-02-26 20:55:42
  20MM_C~1.STL  2014-02-26 20:55:50 1521
[/code]

и извини мил человек 64 Gbyte miniSD мало кто читает, а не с латинице вооще гавнецо

спасибо мил человек за совет заблудшему :)

и тебе спасибо

заходи поговорим :)

 

 

 

toc
Offline
Зарегистрирован: 09.02.2013

>> SD_SS...

SS - Slave Select. Выбрать раба. Если мастер (хозяин) spi шины подаст на этот вход ноль, то раб (управляемое устройство) подключится к шине и мастер сможет с ним общаться. Если мастер подаст единицу, то раб отключится от шины и мастер сможет общаться с другим рабом. Если на шине один раб, то, обычно, можно соединить SS с землёю.

art100
Offline
Зарегистрирован: 09.03.2014

спасибо мил человек за разум и просвящение :)

toc
Offline
Зарегистрирован: 09.02.2013

Не надо тут о политике, по моему скромному мнению.

Вот был один уважаемый мною украинский детский доктор с "поляцкой фамилией". Полез в политику. И стал неуважаемым. 

"" - цитата из Стиллавина, кажется. Извините если что. Если вам показалось, что я ясно выразился, значит вы неправильно меня поняли.

art100
Offline
Зарегистрирован: 09.03.2014

а мне не смешно

этот переворот рядом со мной

может это последние игрушки что я делаю

 

toc
Offline
Зарегистрирован: 09.02.2013

попробуйте использовать ПО Arduino 1.0.5, если актуально. Я считаю версию стабильной. 

Похоже, эти китайцы хитропопые набрали в один архив всякого ардуино-тфт хлама на 80 мегабайт, с миру о нитке. А толку нет. Отзывы на али превосходные. Али платит за отзывы?

art100
Offline
Зарегистрирован: 09.03.2014

toc пишет:

попробуйте использовать ПО Arduino 1.0.5, если актуально. Я считаю версию стабильной. 

Похоже, эти китайцы хитропопые набрали в один архив всякого ардуино-тфт хлама на 80 мегабайт, с миру о нитке. А толку нет. Отзывы на али превосходные. Али платит за отзывы?

просто очень быстро присылают мне вместо 30 дней за 14 пришло вот и отзывы exelent -  ошалел

а споследними верисями эта FTFLCD7781 библиотека ругается

не разбирался с этим

это что-то повыше чем c:/arduino/library/...

я вопросы задавал но ни ответа ни привета

что в ведре сменилось при переходе pde на ino с 2.6->1.05

часть кода в старой часть в новой

http://yadi.sk/d/_WvSpnMdKHahV

art100
Offline
Зарегистрирован: 09.03.2014
author=kometa111 link=action=profile;u=256188 date=1399005596 пишет:
Спасибо за твой опыт! 
Почитал про Arduino - всё просто и быстро. Попробовал - вылезает совместимость железа, версии библиотек, потом памяти не хватает, скорости. Наверное проще Arduin-у использовать как интерфейс между датчиками и компьютером.
 
Ну как бы в PC Процессор, а мы тут применяем МикроПроцессор.
Экраны не 1000 точек кнопки не 106 штук видеопотоки не распаяны спец чипы.
Клубничка Raspberry PI B 512 только одно направление видеопотока не теряя клавитуру 106 и мышь вытягивает за цену 100$.
Тут всего 8 бит - это чисто логика за ~7...50$ 
ИнтерФейс это всего-лишь МеждународнаяМорда.
Я бы сказал контроллеры для мотороллера :)
Я второй станок с ЧПУ запустил http://yadi.sk/d/z1PiJiPuNr5uc
Ардуинка с двумя слоями щитков в нее воткнутыми слево видна хорошо.
Кода 100 килобайт всего. Это по поводу "потом памяти не хватает".
4 шаговых мотора одновренно координируют положение в пространстве это по поводу "скорости"
Мое живое видео посмотри как скорости "не хватает".
Когда римбики начинаются аж визг стоит от скорости точность говорят 0.01мм я считаю наверно правильно считать 0.35mm.
Мне кажется 16 мегагенц выше крыши для контроллеров для мотороллеров.
Код надо писать руками не из .адницы.
То есть понимаем, что такой обьем пишут не в одиночку а командами. то есть мы понимаем что это всего-то arduino 128 за 14$ от официальной arduino 256 за 30$ Для станков я сдуру взял arduino google adk за 50$. Где 70% ресурсов не нужны.
Возможности применения макеток с вменяемым компилятором в IDE arduino ни чем не отличается от НедоКомпиляторов непосредственно от производителей микропроцессоров.
microchip вчера самые последние версии развернул глянуть MPLAB 18 20 30 как оно - .авно .авном как было
atmel на gcc врукопашную аналогичный НодоIDE  как и было НО можно хоть на linux применять в отличие от микрочипа Я в серверной одного вора так сигналкой отловил и уволил.
proteus8 развернул глянуть как вчера оброс библиотеками чтоб не паяя теоретически "палить" - ну если не имея макетки и не паяя потратить 1 месяц на рисование тогда можно отладить перед травлением паянием.
Начинаешь считать допустим по atmel за 300$ по microchip за 300$+время на 2 умножить надо.
Имея отлаженную макетку с atmel за допустим 20$+Internet+безплатныйIDE и надевая на нее щитки массу времени деньги экономим. В 100$ баксов легко укладываемся.
Прежде чем деалть станок челиком я на попрограммы узлы на ардуинках uno mini piki самодел разложил и отлаживал шаговые моторы шаговы драверы лазеры щмазеры крошилки грохоталки свистелки пищалки могралки тыкалки.
До смешного доходит.
Казалось бы при 1-ом устройтсве выигрышь, а при серии 100 штук козалось бы microchip дешевле получиться с долгим assembler-ом.
А на деле 1-ая макетка со щитками дорого, а остальные делаешь свою плату и микрухи россыпью и дешевле получаются.
 
Так что от заточенности рук зависят возможности.
 
По щитку с жки тачскрин карточкочитатель.
.авно.
в теме я намекаю - шутки :)
Можно конечно переинициализируя ноги в цикле на вход и выход в теле одного кода опрашивать кнопку и светить светодиодом.
Тоеретически и в теле цикла можно развести ноги сего .авно-девайса.
Но я тупо купил arduino mega adk где микрух поболее и ног до.ерища, и забыл.
Решать аппаратное несовершенство программными решениями это не для меня.
Я предпочитаю брать надежное аппаратное обеспечение.
По уму конечно опять оторвать скоч и ноги тачскрина на отдельные распаять и выкинуть ноги SD - чуток подправить код, и как я думал сделать кнопкотыкательный ЖКИ для меню на станок с ЧПУ.
Но мне предложено для ЧПУ готовое решение  за 20$ с крутелькой и классическим ЖКИ 16x2 .
Я что похож на дебила время и деньги терять.
 
Подсказка под ЖКИ резаками определено режим чипа 7783 вроде 8 бит может есть такой набор закоротышей и ног по меньше надо будет. Мне лень даташит варианты вычитывать. Читай st7781 это теже яйца только в профиль.
У мнея например с даиташит с оторванным ЖКИ по ногам все совпало где и увидел дебило-перехлест ног ввода/вывода.
Я пишу экран красный и все тут, а пока пальцем вожу ЖКИ успевает синим поморгать. Народ думает так задумано ;)
 
Мне моя уже готовая отлаженная панелька управления по почте приходит 2-ая.
 
Я уже писал юзаю только надежный вывод как тупо терминал подслушивать что по USB летает.
 
P.S. постарайся не брать эту дешевую отбраковку arduino128 от нормального чипа arduino 256 , тут уже кто-то взял и плакал что глючит на ровном месте.
Поищи тут по форуму ключевыми словами ЖКИ 256
И на нее одевай ЖКИ с тачскрином ног даже у меня много лишних в станке
шде 5 шаговиков масса концевиков терхпроводных короче считать долго и не благодарное дело.
Сегодня столько-то, в обед вентилятор подоткнул на свободные ного и стало столько-то.
Станок молотит уже 38 час, гляжу ночь, вентиятор вырвал ног уже столько стало.
Я сам не знаю сколько ног через два слоя щитко задействованы.
Инициализируются все,  а код трясет по выбору и по времни.
Мне неинтересно считать хватет ног не хватает.
Вижу что хватает.
 
Выкинь этот индикатор, если только старым компилятором в качестве только вывода как я не планируешь.
код искать что я себе для вывода заливал заливал?
 
Не пытайся сразу станок с ЧПУ поднимать.
Тут пока руку набьешь бюджет 1500$ надо иметь.
И это я ничего не спалил.
И два месяца отладки юстировки по 12 часов без праздников и выходных.
Большая часть узлов конечно из Китая в полуфабрикатном виде заказывается.
 
На жки пока поиграйся.
 
Краткий курс микропроцессоры закончен.
Вопросы?
 
 
kometa111
Offline
Зарегистрирован: 02.05.2014

Ты посоветовал искать 7781 - через гугль 7781 - нашёл тебя здесь :)

У меня экран приклеен немного криво - может под ним сопли. Отрывать пока не решился.

Код если можно - поищи - мне меньше граблей достанется.

Ардуина 256-я есть. Поиграюсь.

А что за плата (20$ с крутелькой и классическим ЖКИ 16x2) - на алиэкпресс или под заказ?

art100
Offline
Зарегистрирован: 09.03.2014

щас гляну

мне просто замечательно с крутелкой с SD и простеньким индикатором вываливающиеся много уровнеыве меню начали работать с этим за 15$

раз пошла такая пьянка

мне по usb щас код поменяю

как поменяю и он заработает выложу

я думаю понятно что компилятор старый с последним tftlcd.h..cpp нужен

проверил код от USB в ASCII поймал

в ардуину воткнуты сразу два щитка с ЖКИ и промежуточный с резисторами не обращай внимания мне лень выдергивать

не работает промежуточный щиток с панелкой контактов

01// art100 write message
02//TOUCH PCB ARDUINO UNO
03//YU 13 A1
04//XL 12 6
05//YD 15 7
06//XR 14 A2    
07//TFT   
08//A
09//K1
10//K2
11//K3
12//K4
13#include "TFTLCD.h"
14//pins
15#define LCD_RESET A4
16#define LCD_CS A3   
17#define LCD_CD A2   
18#define LCD_WR A1  
19#define LCD_RD A0   
20// Color definitions
21#define BLACK           0x0000
22#define BLUE            0x001F
23#define RED             0xF800
24#define GREEN           0x07E0
25#define CYAN            0x07FF
26#define MAGENTA         0xF81F
27#define YELLOW          0xFFE0
28#define WHITE           0xFFFF
29TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);
30int  commandusb        = 0; //
31 
32//-----------------------
33void setup(void) {
34  Serial.begin(9600);
35//  Serial.println("8 Bit LCD test!");
36  tft.reset();
37  tft.initDisplay();
38//  testtext(YELLOW);
39}
40//===================
41void loop(void) {
42  if (Serial.available() > 0) {  
43    commandusb = Serial.read();
44//    Serial.print("commanda usb received: "); Serial.println(commandusb);
45    usbtextlcd(commandusb,YELLOW);
46  }
47 
48}
49//----------------------------------
50void usbtextlcd(int text,uint16_t color) {
51  tft.fillScreen(BLACK);
52  tft.setCursor(0, 0);
53  tft.setTextColor(color);
54  tft.setTextSize(3);
55tft.println(text);
56//tft.println("ustavilsya?");
57//tft.println("Pizdec");
58//tft.println("proshol.");
59//tft.println("Fashists");
60//tft.println("from Europe");
61//tft.println("in Kiev.");
62//tft.println("Havaysya");
63//tft.println("in ogurci.");
64//tft.println("Undestand?");
65  //tft.println(0xDEADBEEF, HEX);
66}
67//-------------------------------

вот скоч уже не держит от тепла поплыл :)

 

art100
Offline
Зарегистрирован: 09.03.2014

фото с работающего станка

прямо сейчас визжит :)

у меня код для такого варинта с одной крутелкой просто на ура пошел

пищалки кнопки не пользую

а вот снизу SD в большом размере очень даже хорошо пошла

 

art100
Offline
Зарегистрирован: 09.03.2014

отрывать не бойся

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

и отрывай  с краев тихонько ножичком где шлейфов нет сразу с жестянкой экрана

шлейф клавы 4 провода сбоку виден

шлейф экранчика проводов много по центру не порежешь

резисторы выбора режимов проводов чипа 16/8//// прямо на шлейфике припаяны и прячутся в экранчик

оторвешь увидешь что вручную китайка паяла выбирала :)

так что я практически пользую текстовые многострочные с вываливающимися менюшками экранчики на которые кода отлаженного очень много

думал еще вариант есть с графическим ЖКИ есть код но реально когда вникать начал опять кривой код

может попозже

 

kometa111
Offline
Зарегистрирован: 02.05.2014

не - отрывать пока не буду, помучаюсь пока так. когда программным путём упрусь в тупик - тогда полезу hardware переделывать :) Да и скотча кстати нету. А код сейчас попробую.

Компилятор старый - это arduino-1.0.5-r2 или arduino-2.6-7781-after12.22 ?

"с последним tftlcd.h..cpp нужен"  - TFTLCD╘н.zip 471563 байта или из компилятора?

art100
Offline
Зарегистрирован: 09.03.2014

щас мой реальный для этой игрушки запакую выложу

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

как есть as is c живого компьютера только что ардуинку с экраном "поднял"

72 мега на яндекс выложил

можешь забирать

тупо на вынь7 32бита в корне разверни

начихай на крывыве имена библиотек

там два примера из библиотек работают с ходу (запамятовал какие)

исходники от меня бери

современный и старый оба компилятора без проблем на одной машине

каталог ты уже понял специфический только для старого 

http://yadi.sk/d/DFEUfxMMNrv5T

пиши как оно

а то по видимому 150 лохов как и я купили на сдачу 10$ некую зверушку ЖКУ-шку

повидимому я только один

1.жене на 8-ое марта сердечко нарисавал золотом по красному.

2.да тупо текстово тестер из графики оставил для USB анализов

Ты вторым будешь кто применит эти 10$

:)

ты посмотри нас таких лохов уже 197

http://www.aliexpress.com/item/2-4-inch-TFT-touch-LCD-Screen-Module-For-Arduino-UNO-Free-Shipping/1418497586.html

и только я один что-то написал.

весело :)

google.com молчит как партизан

 

 

 

 

kometa111
Offline
Зарегистрирован: 02.05.2014

скачал, запускаю, выводит текст, красные лини из углов, или код из компорта на экранчик - что-то работает.

НЕ работает примеры с тач.  Один пример touchscreendemo - в цикле тишина, если убрать условие if (p.z > ts.pressureThreshhold) {

идут строки

X = 1021 Y = 554 Pressure = 0
X = 1021 Y = 554 Pressure = 0

на нажатие не реагирует.

 

Если пробую пример с этой страницы 

//20140208 art100 tft2.4" st7783 shield on arduino uno

и т.д. 

тогда в монитор идёт

Paint
getPoint x=265 y=352 PRESSURE=586
getPoint x=266 y=352 PRESSURE=981
getPoint x=266 y=352 PRESSURE=981
getPoint x=264 y=352 PRESSURE=341
getPoint x=264 y=352 PRESSURE=876
getPoint x=265 y=352 PRESSURE=587
getPoint x=265 y=352 PRESSURE=411
getPoint x=265 y=352 PRESSURE=470
getPoint x=267 y=352 PRESSURE=590
getPoint x=266 y=352 PRESSURE=412
getPoint x=266 y=352 PRESSURE=883
getPoint x=267 y=352 PRESSURE=886
getPoint x=265 y=352 PRESSURE=879
getPoint x=266 y=352 PRESSURE=252
getPoint x=268 y=352 PRESSURE=474

и НЕ рисует ничего. может тач негожий :( или руки

Если можно - для танкистов - напиши работающий код для тач для этой чудо платы

Что-то я наверное туплю, пойду лопатой часок поработаю...

art100
Offline
Зарегистрирован: 09.03.2014

судя по коду

это я пытался понять где-ж у экрана 0 0 а где 320 на 240

пальцем поводи по экрану координаты небось выдаю другие

а  прямую сылку дай што за мой код

я все что написал не помню

kometa111
Offline
Зарегистрирован: 02.05.2014

Запускаю этот код, экран заливается красным. При нажимании в районе выводов тачпанели ИНОГДА на красном появляются желтые точки, однажды получилось провести пунктирную линию. Иногда экран становится синим с желтыми точками. Нажимал-нажимал, точки стали всё реже появляться. По видимому диагноз - тач дохлый, этот экземпляр только для вывода графики. Это всё на Arduino UNO. Поставил экран на Мегу2560. Там ещё чудесатее глюки.

Может купить ещё экран - а ВДРУГ тач нормальный попадётся? 

 

 

 

01//20140208 art100  tft2.4" st7783 shield on arduino uno
02// art100 write message
03//#include "st7783SD.h" // pins SD_SS-10 SD_DI-11(in) SD_DO-12(out) SD_SCK-13 no work
04//#include "st7783TFT.h" //has not written
05//#include "st7783TouchScreen.h" //has not written
06#include "TFTLCD.h" // work
07#include "TouchScreen.h" // bad but it works
08//TouchScreen define
09#define YP A1 //tftloop-YU pcbundertft-13 arduinoshieldLCD_WR!!! arduinouno-A1
10#define XM A2 //tftloop-XR pcbundertft-14 arduinoshieldLCD_RS!!! arduinouno-A2
11#define YM 7  //tftloop-XR pcbundertft-15 arduinoshieldLCD_D7 arduinouno-7
12#define XP 6  //tftloop-XR pcbundertft-12 arduinoshieldLCD_D6 arduinouno-6
13#define TS_MINX 150//0
14#define TS_MINY 120//0
15#define TS_MAXX 920//900//320      //for calibrate analog resistans ~1500om/700om
16#define TS_MAXY 940//800//900//240 //for calibrate analog resistans ~1500om/700om
17// For better pressure precision, we need to know the resistance// between X+ and X- Use any multimeter to read it
18// For the one we're using, its 300 ohms across the X plate
19TouchScreen ts = TouchScreen(XP, YP, XM, YM, 300);
20//TFT  define
21#define LCD_RESET A4//
22#define LCD_CS A3
23#define LCD_CD A2 //cmosbuffer-arduinoshieldLCD_RS!!! arduinouno-A2
24#define LCD_WR A1 //cmosbuffer-arduinoshieldLCD_WR!!! arduinouno-A1
25#define LCD_RD A0
26// Color definitions
27#define WHITE           0xFFFF
28#define BLACK           0x0000
29#define RED             0xF800
30#define BLUE            0x001F
31#define GREEN           0x07E0
32#define YELLOW          0xFFE0
33TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);
34//SD define //has not written
35#define bordur   5
36#define pen      3
37//---------------------------------------
38void setup(void) {
39  Serial.begin(9600);
40  Serial.println("Paint");
41  tft.reset();
42  uint16_t identifier = tft.readRegister(0x0);
43  tft.initDisplay();
44  tft.fillScreen(RED);
45}
46#define MINPRESSURE 10    // analog calibrate
47#define MAXPRESSURE 1000  // analog calibrate
48//=======================================
49void loop(){
50  Point p = ts.getPoint(); // get analog point
51  pinMode(XM, OUTPUT); //2 chip on one pins
52  pinMode(YP, OUTPUT); //2 chip on one pins
53  if (p.z != 0) {
54 Serial.print("getPoint x=");Serial.print(p.x);Serial.print(" y=");Serial.print(p.y);Serial.print(" PRESSURE=");Serial.print(p.z); 
55       Serial.println("--");
56     
57  }
58  if (p.z > MINPRESSURE && p.z < MAXPRESSURE) { // analog calibrate
59    p.x = map(p.x, TS_MINX, TS_MAXX, 0, tft.width ()); // aprocsimate variable
60    p.y = map(p.y, TS_MINY, TS_MAXY, 0, tft.height()); // aprocsimate variable
61     
62//    if (300< p.x) { // erase only on bordur  //no need have reset button
63//      Serial.println("erase"); // test
64//      tft.fillRect(0, 0, tft.width(), tft.height(), RED);// BLACK); //fill black
65//    }
66     
67    // test
68    Serial.print("getPoint x=");Serial.print(p.x);Serial.print(" y=");Serial.print(p.y);Serial.print(" PRESSURE=");Serial.print(p.z); 
69       Serial.println("++");
70     
71    // paint
72    if (((p.x)<tft.width()) && ((p.y)<tft.height())) { tft.fillRect(p.x,p.y,pen,pen,GREEN); }
73  }
74}

 

art100
Offline
Зарегистрирован: 09.03.2014

значит и ты мой код запустил

и тебя посчитали

ТЫ ТЕПЕРЬ 2-ой кто этот экранчик запустил с тачскрином 

не заливается, а я заливаю

не иногда а веди линии неспеша

я же в коде написал ноги экрана и жки дебило-запаралелены

ардуинка с ума с ходит что на ее ногах творится и ввод и вывод одновременно

в строках 9 и 10 и 22 и 23 что я написал?

ты видео мое видел ссылку на http://arduino.cc вот нашел что-то

http://yadi.sk/d/EPYljwnIKAWUT

введи карандашом помедленне и всего делов-то

потренируйся

и жене сердечко нарисуй

она тебя полюбит

золотом по красному :)

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

моргать перестанет и станет все работать и станет скучно :(

шутки закончаться

по отдельности все там очень даже рабочее а 

все сопротивления экрана я кодом отьюстировал

я кому писал

запаяли как китайский бог подал

перепаяй

отпишись

 

 

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

Что вы курили?

art100
Offline
Зарегистрирован: 09.03.2014

Tomasina пишет:
Что вы курили?

за безтолковое набивание постов

садись два

следующий

kometa111
Offline
Зарегистрирован: 02.05.2014

видио видел.

Про  9и10 и 22и23 - сравнил платы - для меги нужно А3и4-ага. Спасибо, невнимательно смотрел. Я то думал мега просто длиннее...  (а внутри скетча можно определить на какой плате запущено - на uno или на mega? хотя это конечно извращение)

А тач всё-таки контуженный. ЕСЛИ прижать в одном месте в районе торца (где шлейф тач панели подходит к самой панели) ТОГДА тач почти работает: моргает красно-синим и рисуются желтые точки. Только линии сплошные никак не получаются - только пунктирные и на несколько пикселей смещены от точки касания. Смещение - ладно, можно скорректировать. Но прижимать шлейф в ОСОБОЙ точке под особым углом - напрягает.

Если придумаю куда мне ОЧЕНЬ необходим тач - куплю ещё экран у твоего продавца (я покупал у другого). А пока буду с графикой тренироватся. Как выводить текст горизонтально? tft.setRotation(rotation) у тебя работает ?

art100
Offline
Зарегистрирован: 09.03.2014

в моем коде все работало

что не работало я сразу удалял

хотя может 

ты смотришь наверно не мой код

а библиотечный наверно там подгонка под резисторы тачскрина не всегда попадали вроде

в разных подкаталогах вроде разные варианты валялись\

не помню

не пользую

полгода еще не прошло 2 месяца

вот пройдет забуду совсем если комментарий не увижу

отруби вывод на экран отсавь вывод в USB поводи пальцем если координаты обе плавненько значит не обломан на краю

я ведь координаты по факту отлавливал через usb

так точно строчка 68 вывод только в usb

тупо строчку 6 ую закоментируй

и все остальное на что ругнется компилятор

останется

тачскрин->usb

поймешь есть обрыв нет

может тебе постоянные константы подобрать нужно

партия отмороженная отпаренная сопротивление поплыло

я при комнатной температуре 18 градусов отлаживал

kometa111
Offline
Зарегистрирован: 02.05.2014

Этот код твой - в начале этой темы идут два твоих примера: один рисует красные линии из углов, второй - рисовалка. 

Если закомментировать 6- ругается на 19, закомментировать 19 -ругается на 33 и т.д.

Неконтачит шлейф и верхний элемент (резистивный?емкостный) примерно в том месте где нарисована книжка, прижимать не с торца и не сверху - а под 45 градусов - тогда тач работает нормально. Там 4 контакта, не контачит 3-й считая слева. Отрывать от красной платы нет смысла.

Как выводить текст в "альбомной ориентации"?

Как выводить текст, чтобы при достижении нижней строки верхний текст прокручивался и уходил наверх - окно прокрутки - наверное только самому руками...

 

art100
Offline
Зарегистрирован: 09.03.2014

kometa111 пишет:
..Неконтачит шлейф...

сочувствую

kometa111
Offline
Зарегистрирован: 02.05.2014

Говорят - утро вечера мудренее - а я что-то теперь не пойму: что нужно написать в строках 9,10,22,23 для Меги? Разьемы то одинаковые

kometa111
Offline
Зарегистрирован: 02.05.2014

(больше не у кого спросить )

1) Оставил из первоначального кода только нужное, запускаю: в цикле горизонтальные полосы и из угла красные линии.  раскомментирую строку  // tft.println("Undestand?1"), запускаю - горизотнальные полосы, красные линии, ВЕРТИКАЛЬНЫЕ полосы... Почему?

2) если поменять местами код полосы и линии - то правая часть полос рисуется на 1 пиксель ниже 

Программу я как-нибудь составлю-отлажу, а тут такое  :(

Или библиотека глючная, или к чипу не подходит, или компилятор, ...

01// art100 write message    //TOUCH PCB ARDUINO UNO //+
02#include "TFTLCD.h"
03//pins
04#define LCD_RESET A4
05#define LCD_CS A3   
06#define LCD_CD A2   
07#define LCD_WR A1  
08#define LCD_RD A0   
09// Color definitions
10#define BLACK           0x0000
11#define BLUE            0x001F
12#define RED             0xF800
13#define GREEN           0x07E0
14#define CYAN            0x07FF
15#define MAGENTA         0xF81F
16#define YELLOW          0xFFE0
17#define WHITE           0xFFFF
18TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);
19//-----------------------
20void setup(void)
21{
22  Serial.begin(9600);
23  Serial.println("8 Bit LCD test!");
24  tft.reset();
25  tft.initDisplay();
26}
27 
28void loop(void)
29{
30  tft.fillScreen(BLACK);
31 
32//--------------------------------
33  Serial.println("testBars();");
34  for(uint16_t i=0; i < tft.height(); i++)
35  {
36    for(uint16_t j=0; j < tft.width(); j++)
37    {
38      if(i>279) tft.writeData(WHITE);
39      else if(i>239) tft.writeData(BLUE);
40      else if(i>199) tft.writeData(GREEN);
41      else if(i>159) tft.writeData(CYAN);
42      else if(i>119) tft.writeData(RED);
43      else if(i>79) tft.writeData(MAGENTA);
44      else if(i>39) tft.writeData(YELLOW);
45      else tft.writeData(BLACK);
46    }
47  }
48  delay(1000);
49//--------------------------------
50  Serial.println("testlines(RED);"); 
51  for (uint16_t x=0; x < tft.width(); x+=19) {     tft.drawLine(0, 0, x, tft.height()-1, RED);   }
52  delay(1000);
53//--------------------------------
54  Serial.println("testtext(YELLOW);");
55  tft.setCursor(0, 0);
56  tft.setTextColor(YELLOW);
57  tft.setTextSize(3);
58 // tft.println("Undestand?1");
59  delay(1000);
60}

 

art100
Offline
Зарегистрирован: 09.03.2014

ак что вы от меня хотите?

сначало определитесь с начальным координатами

потом отсчитывая от них пробуйте по фигурке за раз рисовать

сами поймете где отступы заступы шаги нашаги нужны

все вроде были корректные

там есть код где 15 фигур вроде все кроме одно все были адекватны

я же писал мне не интересно 

я как терминал для отладки пользую только потому как только это надежно

я думал кнопки реальзовать на менюшки и Rect-англовые регионы опрашивать для выбора нажатой виртуальной кнопки

но потому как перепаивать клаву надо чтобы адекватно интерес пропал

потом увидел не быстрый экран получается

в принципе хватит но в вываливающие ся FillRact-англить не интересно становится картинки хотел подменивать с SD для подмены интерфейса а тут несовместимость компиляторв которые надо сразу два применять если в дебри компияторов не лезть

зачем?

мне подходящаая панель управления пришла с управлением за 15$

я больше на эту время не трачу с глюкоуправлением за 10$

зачем?

вы определитесь чего хотите

то и пробуйте

попробуйте эти подпрограмки

не помню точно вроде все кроме одной рабочие

тут кстати код определения типа чипа st7783 но правду искать надов st7781

вы даташит читали возможности поняли

может вам сосвем не подойдет

мне не подошел

001#define LCD_CS A3   
002#define LCD_CD A2   
003#define LCD_WR A1  
004#define LCD_RD A0   
005// you can also just connect RESET to the arduino RESET pin
006#define LCD_RESET A4
007//Duemilanove/Diecimila/UNO/etc ('168 and '328 chips) microcontoller:
008// Color definitions
009#define BLACK           0x0000
010#define BLUE            0x001F
011#define RED             0xF800
012#define GREEN           0x07E0
013#define CYAN            0x07FF
014#define MAGENTA         0xF81F
015#define YELLOW          0xFFE0
016#define WHITE           0xFFFF
017 
018#include "TFTLCD.h"
019 
020TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);
021 
022void setup(void) {
023  Serial.begin(9600);
024  Serial.println("8 Bit LCD test!");
025   
026   
027  tft.reset();
028   
029  //uint16_t identifier = tft.readRegister(0x0);
030//  if (identifier == 0x9325)
031//  {
032 //   Serial.println("Found ILI9325");
033 // } else if (identifier == 0x9328)
034  //{
035  //  Serial.println("Found ILI9328");
036  //} else
037 // {
038 //   Serial.print("Unknown driver chip ");
039 //   Serial.println(identifier, HEX);
040  //  while (1);
041  //} 
042  
043  tft.initDisplay();
044   
045  testtext(RED);
046 
047 
048}
049 
050void loop(void) {
051 
052 
053}
054 
055 
056 
057void testFillRoundRect() {
058  tft.fillScreen(BLACK);
059   
060  for (uint16_t x=tft.width(); x > 20 ; x-=6) {
061    tft.fillRoundRect(tft.width()/2 -x/2, tft.height()/2 -x/2 , x, x, x/8,  tft.Color565(0, x, 0));
062 }
063}
064 
065void testRoundRect() {
066  tft.fillScreen(BLACK);
067   
068  for (uint16_t x=0; x < tft.width(); x+=6) {
069    tft.drawRoundRect(tft.width()/2 -x/2, tft.height()/2 -x/2 , x, x, x/8, tft.Color565(x, 0, 0));
070 }
071}
072 
073void testtriangles() {
074  tft.fillScreen(BLACK);
075  for (uint16_t i=0; i<tft.width()/2; i+=5) {
076    tft.drawTriangle(tft.width()/2, tft.height()/2-i,
077                     tft.width()/2-i, tft.height()/2+i,
078                     tft.width()/2+i, tft.height()/2+i, tft.Color565(0, 0, i));
079  }
080}
081 
082void testfilltriangles() {
083  tft.fillScreen(BLACK);
084   
085  for (uint16_t i=tft.width()/2; i>10; i-=5) {
086    tft.fillTriangle(tft.width()/2, tft.height()/2-i,
087                     tft.width()/2-i, tft.height()/2+i,
088                     tft.width()/2+i, tft.height()/2+i,
089                     tft.Color565(0, i, i));
090    tft.drawTriangle(tft.width()/2, tft.height()/2-i,
091                     tft.width()/2-i, tft.height()/2+i,
092                     tft.width()/2+i, tft.height()/2+i, tft.Color565(i, i, 0));   
093  }
094}
095void testtext(uint16_t color) {
096  tft.fillScreen(BLACK);
097  tft.setCursor(0, 20);
098  tft.setTextColor(color);
099  tft.setTextSize(3);
100  tft.println("Hello aitendo!");
101  // tft.setTextSize(3);
102  //tft.println(1234.56);
103  //tft.setTextSize(3);
104  //tft.println(0xDEADBEEF, HEX);
105}
106 
107void testfillcircles(uint8_t radius, uint16_t color) {
108  for (uint16_t x=radius; x < tft.width(); x+=radius*2) {
109    for (uint16_t y=radius; y < tft.height(); y+=radius*2) {
110      tft.fillCircle(x, y, radius, color);
111    }
112  
113}
114 
115void testdrawcircles(uint8_t radius, uint16_t color) {
116  for (uint16_t x=0; x < tft.width()+radius; x+=radius*2) {
117    for (uint16_t y=0; y < tft.height()+radius; y+=radius*2) {
118      tft.drawCircle(x, y, radius, color);
119    }
120  
121}
122 
123 
124void testfillrects(uint16_t color1, uint16_t color2) {
125 tft.fillScreen(BLACK);
126 for (uint16_t x=tft.width()-1; x > 6; x-=6) {
127   //Serial.println(x, DEC);
128   tft.fillRect(tft.width()/2 -x/2, tft.height()/2 -x/2 , x, x, color1);
129   tft.drawRect(tft.width()/2 -x/2, tft.height()/2 -x/2 , x, x, color2);
130 }
131}
132 
133void testdrawrects(uint16_t color) {
134 tft.fillScreen(BLACK);
135 for (uint16_t x=0; x < tft.width(); x+=6) {
136   tft.drawRect(tft.width()/2 -x/2, tft.height()/2 -x/2 , x, x, color);
137 }
138}
139 
140void testfastlines(uint16_t color1, uint16_t color2) {
141   tft.fillScreen(BLACK);
142   for (uint16_t y=0; y < tft.height(); y+=5) {
143     tft.drawHorizontalLine(0, y, tft.width(), color1);
144   }
145   for (uint16_t x=0; x < tft.width(); x+=5) {
146     tft.drawVerticalLine(x, 0, tft.height(), color2);
147   }
148   
149}
150 
151void testlines(uint16_t color) {
152   tft.fillScreen(BLACK);
153   for (uint16_t x=0; x < tft.width(); x+=6) {
154     tft.drawLine(0, 0, x, tft.height()-1, color);
155   }
156   for (uint16_t y=0; y < tft.height(); y+=6) {
157     tft.drawLine(0, 0, tft.width()-1, y, color);
158   }
159    
160   tft.fillScreen(BLACK);
161   for (uint16_t x=0; x < tft.width(); x+=6) {
162     tft.drawLine(tft.width()-1, 0, x, tft.height()-1, color);
163   }
164   for (uint16_t y=0; y < tft.height(); y+=6) {
165     tft.drawLine(tft.width()-1, 0, 0, y, color);
166   }
167    
168   tft.fillScreen(BLACK);
169   for (uint16_t x=0; x < tft.width(); x+=6) {
170     tft.drawLine(0, tft.height()-1, x, 0, color);
171   }
172   for (uint16_t y=0; y < tft.height(); y+=6) {
173     tft.drawLine(0, tft.height()-1, tft.width()-1, y, color);
174   }
175 
176   tft.fillScreen(BLACK);
177   for (uint16_t x=0; x < tft.width(); x+=6) {
178     tft.drawLine(tft.width()-1, tft.height()-1, x, 0, color);
179   }
180   for (uint16_t y=0; y < tft.height(); y+=6) {
181     tft.drawLine(tft.width()-1, tft.height()-1, 0, y, color);
182   }
183}
184 
185 
186void testBars() {
187  uint16_t i,j;
188  for(i=0; i < tft.height(); i++)
189  {
190    for(j=0; j < tft.width(); j++)
191    {
192      if(i>279) tft.writeData(WHITE);
193      else if(i>239) tft.writeData(BLUE);
194      else if(i>199) tft.writeData(GREEN);
195      else if(i>159) tft.writeData(CYAN);
196      else if(i>119) tft.writeData(RED);
197      else if(i>79) tft.writeData(MAGENTA);
198      else if(i>39) tft.writeData(YELLOW);
199      else tft.writeData(BLACK);
200    }
201  }
202}

 

fly245
fly245 аватар
Offline
Зарегистрирован: 25.08.2013

Здравствуйте !Приобрел такой вот модуль экрана http://www.aliexpress.com/snapshot/6109553363.html но без кнопки ресет.Перепробовал разные библиотечки для экрана-но при заливке скетчей получается вот такое .Подскжите где искать проблему и как решить.. 

alex_brn
Offline
Зарегистрирован: 24.07.2014

Вот только пришло это чудо, инфы мало, а полосы такие же!

Буду капаться! скорее всего програмный косяк!

alex_brn
Offline
Зарегистрирован: 24.07.2014

Скачал по второй ссылке art100

прогу все работает без полс!

art100
Offline
Зарегистрирован: 09.03.2014

alex_brn пишет:

Скачал по второй ссылке art100

прогу все работает без полс!

ну и ладушки

alex_brn
Offline
Зарегистрирован: 24.07.2014

В скейче по прорисовки изображений, удалось только поднять только красные линии по диагонали (tft.drawLine), изображение текста (tft.setTextSize), и РПГ (tft.writeData) 

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

Интересно где можно посмотреть полный перечень операторов для отрисовки изображений, возможно в место планометрии осей (Х,У) в них может применяться и Z,X.Y.

Вобще и меня стоит задача написать элементарное сенсорное текстовое меню (на русском языке), но примера так ни где и ни нашел полного скейча, а http://misc.ws/2013/11/08/touch-screen-shield-for-arduino-uno/ не полный, я не смог запустить может у кого есть скейтч подобного меню? 

art100
Offline
Зарегистрирован: 09.03.2014

alex_brn пишет:
.... сенсорное.... меню...
 

А координаты я что зря на видео нарисовал 0 у штектра питания.

Перечитай пост 29.

Через 12 дней уже третий комплект экранчик+ енкодер+ драйвера+ ардунина256+ с надетым щитком за 44$ получать на почте буду. Если сможешь дешевле будет интересно увидеть. И никаких проблем с надежностью нажатий. Вложений менюшек даже не знаю весь набор на сколько пунктов. Думаю менюшек с 255 положениями не более 50.

Короче ардуинка20$+глючный тормоз тфт10$ и и и :( больше ничего не втыкается - ерунда без практического применения.

Я попытался в промежуток щиток с потенциометрами воткнуть индикатор уровней звуковых слепить.

Смотрю скорости на одно еле хватает, а на правый канал уже сосвем ерунда.

Я тоже брал чтоб 6 сенсорных кнопок сделать, но искать различия между двумя компиляторами из-за 10$?

Сомнительное удовольствие.

Но если на версии 1.0.5 1.5.6 заведете стучитесь.

 

 

 

 

SergKT
Offline
Зарегистрирован: 04.08.2014

Доброго времени суток.

Получил подобный дисплейчик, только без кнопки "ресет". У дисплея шлейф на 40pin, из регистра идентификации читается 0083h. Может кто знает что за "чудо зверь" мне попался.

Все описания что я накопал на подобные дисплеи имеют 37pin шлейфы, и идентификаторы у них более понятные.

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

Вечер добрый всем.  И меня почта порадовала рассматриваемым девайсом. От такой братец - http://www.dx.com/ru/p/2-8-lcd-touch-shield-module-for-arduino-leaf-mapl... . Завёлся с пол тыка паяльником. Подключил к нане, там без паяльника - никак. Персонально art100 - особый респект. Исходники пошли без допиливаний, раскоментировал все тесты, все ок. А либка (которая TFTLCD) не порадовала, тормознутая - жуть, день правил работу с шиной, напрямую на порты перевел, еще по мелочам. Стало поживей раза в 3-4. Судя по спеке на контроллер, либа "левая" часть возможностей контроллера не знает. Ниче, понемногу может научу. Ща на повестке дня "русификация". Там проблем не видно. После этого, если кому интерестно, могу выложить.  

fly245
fly245 аватар
Offline
Зарегистрирован: 25.08.2013

Долгие мучения с этим экранчиком и вуаля поиски привели меня вот сюда http://www.smokeandwires.co.nz/blog/a-2-4-tft-touchscreen-shield-for-arduino/  ,здесь дана ссылка на либу которая сразу заработала вкупе с адафруитской GFX,вот ссылка на либу 

https://github.com/Smoke-And-Wires/TFT-Shield-Example-Code

fly245
fly245 аватар
Offline
Зарегистрирован: 25.08.2013

Вот скрин в тестовом режиме 

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

И я графику поборол :

fly245
fly245 аватар
Offline
Зарегистрирован: 25.08.2013

Красота.Вопрос а каквдоль экрана расположитьво всю длинну?

SergKT
Offline
Зарегистрирован: 04.08.2014

Это в смысле изменить "портретную" ориентацию на "альбомную" ?

А если в регистр 0х0003 записать значение 0ч1028 (или 0х1018) - не поможет?

Или речь не о том?

SergKT
Offline
Зарегистрирован: 04.08.2014

Народ, в посте 38 ссылки на библиотеки, выложите их в файлобменник (если возможно) или укажите другой источник, меня браузеры не пускают на сайт github :(

fly245
fly245 аватар
Offline
Зарегистрирован: 25.08.2013

Так понял сейчас выложим 

fly245
fly245 аватар
Offline
Зарегистрирован: 25.08.2013

Вот выложил http://putit.ru/Mjc5MTgxNjM5NTg3OQ==

SergKT
Offline
Зарегистрирован: 04.08.2014

Спасибо.

Кстати, в этой библиотеке есть функция "вращения"   -  Adafruit_TFTLCD::setRotation(uint8_t x)

fly245
fly245 аватар
Offline
Зарегистрирован: 25.08.2013

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

SergKT
Offline
Зарегистрирован: 04.08.2014

Ну, на счет "слабоват в программировании" это судя по всему не проблема - скрин выложил, значит тест уже запустил ;)

А в выложенной по моей просьбе библиотеке есть пример "rotationtest", в нем уже всё сделано для презентации поворота экрана. Остается только собрать, запустить и посмотреть (на сколько я понимаю). Я чесно говоря проверить не могу, поскольку у меня нет нужного железа, только дисплей с тачскрином, библиотеки от которых и использую как основу софта для своего девайса.

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

fly245
fly245 аватар
Offline
Зарегистрирован: 25.08.2013

Пытаюсь программить время от времени.Думал прикрутить DHT11  к этому экранчику и либу rcswitch но по ходу выводы прерываний  заняты дисплеем

fly245
fly245 аватар
Offline
Зарегистрирован: 25.08.2013

Блин обнаружил-что не ту либу выложил,сечас  ту которая у меня робит кину