2016-08-25 1 views
0

Hier, j'ai reçu l'expédition pour mon pilote RA8875 et l'écran TFT de 5,0". J'ai fait quelques lectures avant l'arrivée du pilote et de l'affichage et j'ai utilisé les exemples de programmes dans les bibliothèques pour obtenir de l'aide initiale. Le TFT ne semble pas fonctionner pour une raison quelconque. J'ai fait un peu de dépannage en ayant quelques commandes d'initialisation dans le moniteur périodique qui a indiqué que l'écran a été activé et le RA8875 a été détecté.Arduino 5.0 "pilote TFT adn RA8875 problème

Ce sont mes connexions filaires entre l'Arduino et le pilote: SCLK à l'ONU numérique # 13 (horloge matérielle SPI) MISO à l'ONU numérique # 12 (matériel SPI MISO) MOSI à l'ONU numérique # 11 (matériel SPI MOSI) INT à l'ONU numérique # 3 CS à l'ONU numérique # 10 RESET pour UNO numérique # 9 VIN -> 3.3V GND -> GND

Je ne suis vraiment pas sûr s'il y a un problème avec mon le câblage ou la broche de ruban a quelques problèmes. Quelqu'un peut-il aider?

Voici le code des exemples:

#include <SPI.h> 
#include "Adafruit_GFX.h" 
#include "Adafruit_RA8875.h" 


// Library only supports hardware SPI at this time 
// Connect SCLK to UNO Digital #13 (Hardware SPI clock) 
// Connect MISO to UNO Digital #12 (Hardware SPI MISO) 
// Connect MOSI to UNO Digital #11 (Hardware SPI MOSI) 
#define RA8875_INT 3 
#define RA8875_CS 10 
#define RA8875_RESET 9 

Adafruit_RA8875 tft = Adafruit_RA8875(RA8875_CS, RA8875_RESET); 
uint16_t tx, ty; 

void setup() 
{ 
    Serial.begin(9600); 
    Serial.println("RA8875 start"); 

    /* Initialise the display using 'RA8875_480x272' or 'RA8875_800x480' */ 
    if (!tft.begin(RA8875_480x272)) { 
    Serial.println("RA8875 Not Found!"); 
    while (1); 
    } 

    Serial.println("Found RA8875"); 

    tft.displayOn(true); 
    tft.GPIOX(true);  // Enable TFT - display enable tied to GPIOX 
    tft.PWM1config(true, RA8875_PWM_CLK_DIV1024); // PWM output for backlight 
    tft.PWM1out(255); 

    // With hardware accelleration this is instant 
    tft.fillScreen(RA8875_WHITE); 

    // Play with PWM 
    for (uint8_t i=255; i!=0; i-=5) 
    { 
    tft.PWM1out(i); 
    delay(10); 
    } 
    for (uint8_t i=0; i!=255; i+=5) 
    { 
    tft.PWM1out(i); 
    delay(10); 
    } 
    tft.PWM1out(255); 

    tft.fillScreen(RA8875_RED); 
    delay(500); 
    tft.fillScreen(RA8875_YELLOW); 
    delay(500); 
    tft.fillScreen(RA8875_GREEN); 
    delay(500); 
    tft.fillScreen(RA8875_CYAN); 
    delay(500); 
    tft.fillScreen(RA8875_MAGENTA); 
    delay(500); 
    tft.fillScreen(RA8875_BLACK); 

    // Try some GFX acceleration! 
    tft.drawCircle(100, 100, 50, RA8875_BLACK); 
    tft.fillCircle(100, 100, 49, RA8875_GREEN); 

    tft.fillRect(11, 11, 398, 198, RA8875_BLUE); 
    tft.drawRect(10, 10, 400, 200, RA8875_GREEN); 
    tft.fillRoundRect(200, 10, 200, 100, 10, RA8875_RED); 
    tft.drawPixel(10,10,RA8875_BLACK); 
    tft.drawPixel(11,11,RA8875_BLACK); 
    tft.drawLine(10, 10, 200, 100, RA8875_RED); 
    tft.drawTriangle(200, 15, 250, 100, 150, 125, RA8875_BLACK); 
    tft.fillTriangle(200, 16, 249, 99, 151, 124, RA8875_YELLOW); 
    tft.drawEllipse(300, 100, 100, 40, RA8875_BLACK); 
    tft.fillEllipse(300, 100, 98, 38, RA8875_GREEN); 
    // Argument 5 (curvePart) is a 2-bit value to control each corner (select  0, 1, 2, or 3) 
    tft.drawCurve(50, 100, 80, 40, 2, RA8875_BLACK); 
    tft.fillCurve(50, 100, 78, 38, 2, RA8875_WHITE); 

    pinMode(RA8875_INT, INPUT); 
    digitalWrite(RA8875_INT, HIGH); 

    tft.touchEnable(true); 

    Serial.print("Status: "); Serial.println(tft.readStatus(), HEX); 
    Serial.println("Waiting for touch events ..."); 
} 

void loop() 
{ 
    float xScale = 1024.0F/tft.width(); 
    float yScale = 1024.0F/tft.height(); 

    /* Wait around for touch events */ 
    if (! digitalRead(RA8875_INT)) 
    { 
    if (tft.touched()) 
    { 
     Serial.print("Touch: "); 
     tft.touchRead(&tx, &ty); 
     Serial.print(tx); Serial.print(", "); Serial.println(ty); 
     /* Draw a circle */ 
     tft.fillCircle((uint16_t)(tx/xScale), (uint16_t)(ty/yScale), 4,   RA8875_WHITE); 
    } 
    } 
} 

Merci

Répondre

0

La raison en est que vous ne l'avez pas attaché à votre VIN. Faites cela et vous serez bon.

0

Je pense qu'une partie de la raison de ce problème pourrait être parce que le besoin tft 5V. Je viens de vérifier la fiche technique: p