Go Down

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


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

(deleted)


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

(deleted)

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

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