Requirements
Ethernet PLC >>> | 20IOS PLC >>> |
GFX Library | ADAFRUIT GFX >> |
RA 8875 Touch Display + Touch Screen | |
RA8875 Libraries | ADAFRUIT RA8875 >>> |
RA8875 >>> |
Description
RA8875 Driver for industrial control
The RA8875 is a powerful TFT driver chip. It is a perfect match for any chip that wants to draw on a big TFT screen but doesn't quite have the mph (whether it be hardware or speed). Inside is 768Â KB of RAM, so it can buffer the display (and depending on the screen size also have double overlaying). The interface is SPI with a very basic register read/write method of communication (no strange and convoluted packets).Â
The RA8875 can also handle standard 4-wire resistive touchscreens over the same SPI interface to save you pins. There's an IRQ pin that you can use to help manage touch interrupts.
On the PCB we have the main chip, level shifting, so you can use safely with 3-5V logic. There is also a 3V regulator to provide clean power to the chip and the display. For the backlight, we put a constant-current booster that can provide 25mA or 50mA at up to 24V. The connector to the screen is a classic '40 pin' connector.Â
Connections of M-Duino / Ardbox PLC Family Pinout and RA8875 Pinout
M-Duino PLC Family / Ardbox PLC Family Pinout | RA8875 Pinout |
5 V | VIN |
GND | GND |
SCK | SCK |
SOÂ | MISO |
SI | MOSI |
RX1 (Serial 1) or using Software Serial | CS |
Pin3 (Some 5V pin) | RESET |
INT | INT1 |
Example
Programming with the Arduino IDE, if you work with the RA8875 Library, you have a wide variety of examples. For this post, we used the clock example, as you can see in the image below.
Before upload the program to your M-Duino/Ardbox programmable logic controller Arduino it's necessary to change the RA8875_CS define pin by 19 (RX1), RS8875_RESET define pin by 3 (Pin 3) and change tft.begin(RA8875_800x480) by tft.begin(Adafruit_800x480, 8) from setup function. The last change is because there are different resolution configurations and this one is better for the TFT screen.Â
#include <SPI.h> #include <RA8875.h> #define RA8875_CS 19 #define RA8875_RESET 3//any pin or nothing! RA8875 tft = RA8875(RA8875_CS, RA8875_RESET); void setup() { // put your setup code here, to run once: tft.begin(Adafruit_800x480, 8); tft.fillWindow(); tft.setCursor(CENTER, CENTER); //Â tft.setCursor(X_axis, Y_axis);Â tft.setTextColor(RA8875_GREEN); // tft.setFontScale(3); tft.println("Industrial Shields"); } void loop() { // put your main code here, to run repeatedly: Â Â
  tft.setTextColor(RA8875_GREEN);
}
That's the result:
How to connect and program RA8875 Touch Display Driver Board for 7" Panel