Go Down

Topic: TFTLCD (Read 813 times) previous topic - next topic

panteranera

Salve,

vi contatto perché ho acquistato un monitor per arduino volevo allegarvi una sua immagine ma no  ci riesco,comunque ho provato ad inserirlo in arduino ed a collegarlo al pc il tutto sembra funzionare solo del tipo che lo schermo si accende succede solo quello ho provato vari schetc per il dislay ma non ne trovo uno che funzioni.

qualcuno mi saprebbe indicare qualcosa per verificare se funziona un programmino semplice giusto per testare se funziona.


nid69ita

Prova a vedere questo thread (in inglese)    http://forum.arduino.cc/index.php?topic=366304.0
Mi pare sia un TFT conosciuto come   MCUFRIEND
Da molti problemi un pò a tutti, non tutti sono riusciti a farlo funzionare
my name is IGOR, not AIGOR

panteranera

Salve,

niente di fatto non ce nessun codice con cui riesco far andare il display con arduino lui rimane acceso come sempre poi basta alcuni schetc arrivo a caricarli poi zero non succede niente chissa in cosa sbaglio se ci fosse una guida su come fare.

nid69ita

#3
Feb 02, 2017, 06:24 pm Last Edit: Feb 02, 2017, 06:29 pm by nid69ita
Mi pare di avere quello shield. Dopo tanti tentativi, riuscii con questo codice:
HeartRateOnShield.ino  (legge da sensore cuore e fa grafico, messo su Arduino Mega)
Code: [Select]
// All the mcufriend.com UNO shields have the same pinout.
// i.e. control pins A0-A4.  Data D2-D9.  microSD D10-D13.
// Touchscreens are normally A1, A2, D7, D6 but the order varies
//
// This demo should work with most Adafruit TFT libraries
// If you are not using a shield,  use a full Adafruit constructor()
// e.g. Adafruit_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);

#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

#include <SPI.h>          // f.k. for Arduino-1.5.2
#include "Adafruit_GFX.h"// Hardware-specific library
#include <MCUFRIEND_kbv.h>

MCUFRIEND_kbv tft;

// Assign human-readable names to some common 16-bit color values:
#define K_BLACK   0x0000
#define K_BLUE    0x001F
#define K_RED     0xF800
#define K_GREEN   0x07E0
#define K_CYAN    0x07FF
#define K_MAGENTA 0xF81F
#define K_YELLOW  0xFFE0
#define K_WHITE   0xFFFF

#ifndef min
#define min(a, b) (((a) < (b)) ? (a) : (b))
#endif

const byte PinLoM=40;
const byte PinLoP=41;
int xPos = 1;         // horizontal position of the graph
int height_old = 0;
int height_new = 0;
int inByte = 0;
int ForeColor=0;
#define K_ZOOM 1

void setup(void)
{ uint16_t g_identifier;
  delay(1000);
  Serial.begin(9600);
  //    tft.reset();                 //we can't read ID on 9341 until begin()
  g_identifier = tft.readID(); //
  Serial.print("ID = 0x"); Serial.println(g_identifier, HEX);
  if (g_identifier == 0x00D3 || g_identifier == 0xD3D3) g_identifier = 0x9481; // write-only shield
  if (g_identifier == 0xFFFF) g_identifier = 0x9341; // serial
  tft.begin(g_identifier);
  tft.setRotation(1);
  tft.fillScreen(K_WHITE);
  pinMode(PinLoP, INPUT); // Setup for leads off detection LO +
  pinMode(PinLoM, INPUT); // Setup for leads off detection LO -}
}

void loop(void)
{ if((digitalRead(PinLoP) == 1)||(digitalRead(PinLoM) == 1))
  { Serial.println('!');
    inByte = 512;
    ForeColor=K_BLUE;
  }
  else
  { // send the value of analog input 0:
    Serial.println(inByte);
    inByte = analogRead(A15)*K_ZOOM;
    ForeColor=K_RED;
  }
  //Map and draw the line for new data point
  inByte = map(inByte, 0, 1023, 0, tft.height());
  height_new = tft.height() - inByte;
  //tft.drawLine(x1, y1, x2, y2, color);
  tft.drawLine(xPos , 0, xPos, tft.height(), K_BLACK);
  tft.drawLine(xPos , 0, xPos, tft.height(), K_WHITE);
  tft.drawLine(xPos - K_ZOOM, height_old, xPos, height_new, ForeColor);
  height_old = height_new;
  if (xPos >= tft.width())
  { xPos = 0;
  }
  else
  { xPos+=K_ZOOM;     
  }
}

Nella setup ci sono degli if per capire bene quale chip monta.
Il tutto funziona con la libreria GFX di adafruit e la MCUFRIEND_Kbv, quella che ho io è versione 2.9

In allegato ti metto il file .rar della mcufriend che ho io. Il file è un .rar  ma l'estensione è zip perchè il forum non accetta i rar  (dentro c'e' anche lo sketch di cui sopra, HeartRateOnShield.ino)
my name is IGOR, not AIGOR

panteranera

#4
Feb 04, 2017, 09:57 am Last Edit: Feb 04, 2017, 10:19 am by panteranera
Salve,

ho provato lo schetc da lei indicato ma mi da errore durante la lettura cosa simile, cosi ho ricominciato a girare per la rete fno a che sono arrivato ad visualizzarne uno sembra funzionaresolo che mi si cambia solo il colore dello schermo da bianco doventa rosso.
Lo schetc lo trovato sul sito:
 https://zoomxtech.wordpress.com/2015/08/14/mcufriend-lcd-tft-shield-con-ili9325-test-librerie/
ed è sotto il nome di : LCD_ID_Reader Version 1.2.
Arrivato fin qui mi piacerebbe andre un po oltre del tipo colegargli la possibilità di fare altro, tipo visualizzare immagini da un SD e creare / visualizzare delle frasi / ogetti  o roba del genere solo che qualsiasi modifica faccia poi non funziona più non so come andare avanti.


nid69ita

#5
Feb 04, 2017, 11:51 am Last Edit: Feb 04, 2017, 11:52 am by nid69ita
Senza offesa, ma le pagine bisogna leggerle in toto.
Cito: "Sono qunindi andato su questo sito http://misc.ws/2015/01/24/lcd-touch-screen-information/ da dove ho scaricato un programma di test, LCD_ID_Reader Version 1.2 che ho scaricato e provato usando un Arduino UNO R3 e l'IDE 1.6.5. Ho così avuto conferma che il controllore è un ILI9325 e visualizzato una schermata tutta rossa che dovrebbe significare che la libreria di Justin, l'autore del post, dovrebbe funzionare. E così è stato..."
Quindi, certo che quell'esempio ti fa diventare lo schermo tutto rosso!! E' la conferma che funziona !


Bisogna a questo punto leggersi da quel punto cosa ha fatto, da li in poi. Cita ben 3 librerie che han funzionato ma con modifiche.
my name is IGOR, not AIGOR

Go Up