TFT-schermen bestuurd door ST7789VI-chip Ze zijn een uitstekende keuze voor Arduino en andere microcontrollerprojecten. Op deze kleine schermen met hoge resolutie kunt u afbeeldingen, tekst en afbeeldingen duidelijk en nauwkeurig weergeven. De integratie ervan kan echter enigszins uitdagend zijn voor degenen die niet bekend zijn met protocollen zoals SPI of stroom- en besturingsvereisten. In deze handleiding gaan we in op alle aspecten van het verbinden, gebruiken van bibliotheken en het configureren van deze schermen met je Arduino.
Daarnaast leer je hoe je ze kunt verbinden met verschillende boards zoals de NodeMCU ESP8266 en de klassieke Arduino Nano. Op deze manier kunt u optimaal profiteren van de grafische en technische mogelijkheden van dit soort displays, of het nu gaat om Internet of Things (IoT)-projecten of om het even welk ander type toepassing, zonder afhankelijk te zijn van SD-kaarten of complexe circuits.
Wat is een TFT-scherm met ST7789VI-driver?
De schermen TFT (Dunnefilmtransistor) worden gekenmerkt door het bieden van een beeldkwaliteit die veel beter is dan die van andere typen schermen, zoals normale LCD's of kleinere OLED's. De controleur ST7789VI Het zijn de hersenen van deze schermen, die verantwoordelijk zijn voor het verwerken van de signalen die door een microcontroller zoals de Arduino of de ESP8266 worden verzonden, en voor het omzetten van deze signalen in afbeeldingen, kleuren en complexe grafische afbeeldingen.
Een van de grote voordelen van deze displays is dat ze gebruik maken van de SPI-communicatiebus, die de verbinding met de meeste microcontrollers vereenvoudigt, met slechts vier controlepinnen (SDA, SCL, RES en DC). Hierdoor kan de bedrading aanzienlijk worden verminderd en is dit perfect voor compacte projecten.
Het TFT-scherm verbinden met de ST7789VI-chip
Om met deze schermen te kunnen werken, is het essentieel om te weten hoe je ze correct aansluit op je Arduino of ESP8266. Afhankelijk van de microcontroller die u gebruikt, kunnen de stroom- en verbindingspinnen enigszins veranderen. Hieronder lichten we de belangrijkste verbindingen toe.
Basisverbindingen:
- VCC: Wordt aangesloten op het voedingssignaal, dat doorgaans 3.3 V is (niet 5 V om schermschade te voorkomen).
- GND: Het is verbonden met aarde.
- SCL (soms gemarkeerd met CLK): Dit is de seriële klokpin en gaat naar de D13 op een bord Arduino Uno of Nano.
- SDA (ook wel MOSI genoemd): het is de pin die de gegevens verzendt en verbinding maakt met de D11.
- RES: maakt verbinding met de pin die verantwoordelijk is voor het resetten van het scherm; in dit geval op D8 van de Arduino.
- DC: De opdracht-/gegevenspin, die verbinding maakt met de D9.
Wat betreft de platen ESP8266Je zult merken dat deze op 3.3 V werken, dus je hoeft je geen zorgen te maken over het aanpassen van de spanningsniveaus, zoals het geval is bij Arduino, waar het nodig is om spanningsdelers met weerstanden te gebruiken om de displaycontroller te beschermen.
Bibliotheken gebruiken in Arduino
Zodra alle verbindingen correct zijn gemaakt, moet u enkele bibliotheken in de Arduino IDE installeren. Om met deze schermen te werken is de bibliotheek de meest gebruikte optie Adafruit ST7789, dat zeer compatibel is met de hardware van deze beeldschermen en we kunnen het samen met de bibliotheek gebruiken Adafruit GFX om geavanceerde grafische afbeeldingen te maken.
Volg deze stappen om de bibliotheken te installeren:
- Ga naar Schets -> Bibliotheek opnemen -> Bibliotheken beheren.
- Renderen ST7789 in de zoekbalk en selecteer de optie Adafruit.
- Doe hetzelfde voor de bibliotheek Adafruit GFX.
Nu deze twee bibliotheken al zijn geïnstalleerd, bent u klaar om uw eerste code te schrijven en afbeeldingen, tekst of andere gewenste afbeeldingen weer te geven.
Basiscode voor "Hallo wereld!" op TFT-scherm
Een goed startpunt voor het testen van uw scherm is het weergeven van een eenvoudig "Hallo wereld!" op het scherm. Hieronder laten wij u een basiscode zien die u hiervoor kunt gebruiken. Houd er rekening mee dat deze code is ontworpen om Arduino Uno of Nano, maar als je andere borden gebruikt, moet je mogelijk de pinnen aanpassen.
#include <Adafruit_GFX.h>
#include <Adafruit_ST7789.h>
#include <SPI.h>
#define TFT_CS 10
#define TFT_RST 8
#define TFT_DC 9
Adafruit_ST7789 tft = Adafruit_ST7789(TFT_CS, TFT_DC, TFT_RST);
void setup() {
tft.init(240, 240);
tft.setRotation(1);
tft.fillScreen(ST77XX_BLACK);
tft.setTextColor(ST77XX_WHITE);
tft.setTextSize(2);
tft.setCursor(50, 120);
tft.println("Hello World!");
}
void loop() {
// Nada que hacer en el loop
}
Deze kleine code initialiseert het scherm, draait het horizontaal en geeft de tekst "Hello World" in het midden weer. Met behulp van deze methoden kunt u experimenteren met verschillende tekstformaten of kleuren setTekstKleur, setTekstgrootteOa.
Grafische mogelijkheden van het ST7789VI-display
De grafische mogelijkheden van deze schermen zijn behoorlijk compleet. Met de Adafruit GFX-bibliotheek kunt u met slechts een paar opdrachten lijnen, rechthoeken, cirkels en nog veel meer tekenen. Hieronder noemen we enkele van de meest gebruikte:
- drawLine(x0, y0, x1, y1, kleur): Trek een lijn van het punt (x0, y0) naar (x1, y1).
- fillRect(x, y, w, h, kleur): Tekent een gevulde rechthoek op het scherm.
- fillCircle(x, y, r, kleur): Teken een dichte cirkel met straal r vanaf het punt (x, y).
Met deze basismethoden kunt u uw scherm snel tot leven brengen, maar met de bibliotheek kunt u ook afbeeldingen importeren Bitmap, wat erg handig is als u complexe grafieken wilt weergeven.
Om met afbeeldingen te kunnen werken, moet je ze vooraf converteren naar een formaat dat de Arduino kan begrijpen, zoals we later uitleggen.
Importeer afbeeldingen naar het scherm zonder een SD-kaart te gebruiken
Over het algemeen is voor het laden van afbeeldingen op een TFT-scherm een aangesloten SD-kaart vereist, waarop de afbeelding wordt opgeslagen en kan worden geladen. We kunnen deze stap echter vermijden door de afbeeldingen naar bitmapcode te converteren en ze rechtstreeks in het geheugen van de microcontroller op te slaan.
Het proces is eenvoudiger dan het lijkt. U hoeft alleen wat software te gebruiken om uw afbeelding te converteren en deze vervolgens in een headerbestand in te sluiten. Hier laten we u de te volgen stappen zien:
- Kies een afbeelding, bij voorkeur 240x240 pixels (de grootte van het scherm).
- Gebruik een programma als LCD-beeldconverter om de afbeelding naar een array met waarden te converteren.
- Sla de gegenereerde array op en kopieer de gegevens naar het headerbestand (.h) van uw Arduino-project.
Dan met behulp van de functie pushAfbeelding() vanuit de Adafruit ST7789-bibliotheek kunt u die array laden en de betreffende afbeelding weergeven.
Houd er rekening mee dat deze methode ideaal is voor kleine en middelgrote projecten, omdat de geheugenbeperkingen van de microcontroller tegen u kunnen werken als u veel grote afbeeldingen tegelijk probeert te laden.
Tenslotte opent het werken met TFT-schermen met ST7789VI in uw Arduino- of ESP8266-projecten een wereld aan grafische mogelijkheden. Met de juiste configuratie en de juiste softwaretools kunt u zonder al te veel tegenslagen aantrekkelijke en functionele interfaces implementeren.