Beste mede-Arduino'ers,
Ik loop tegen het volgende probleem aan, waar ik tot nu toe nog geen oplossing voor heb gevonden.
Voor een projectje probeer ik een "extern" TFT-scherm (een 2.8 inch TFT Display, 240x320 pixels - SPI - ILI9341 - 3.3V) aan te sluiten op een LilyGO TTGO T3 LoRa32.
De LilyGO TTGO T3 LoRa32 heeft overigens zelf ook een OLED aan boord!
Het probleem is SPI/GPIO-gerelateerd omdat het LoRa-gedeelte "onboard" zit, en ik hier fysiek geen toegang tot heb.
Als ik de LilyGO TTGO T3 LoRa32 zonder het LoRa-gedeelte wil gebruiken met het TFT-schermpje, werkt alles netjes (zie code).
/*
TFT GND β GND (ESP32)
TFT VCC β 3.3V (ESP32)
TFT RES β GPIO04 (ESP32)
TFT DC β GPIO02 (ESP32)
TFT CS1 β GPIO15 (ESP32)
TFT MOSI β GPIO23 (ESP32) (MOSI is required)
TFT CLK β GPIO22 (ESP32) (since GPIO18 is unavailable, we are using GPIO22 for SPI Clock)
*/
#include <Adafruit_GFX.h>
#include <Adafruit_ILI9341.h>
#include <SPI.h> // Include the SPI library
#define TFT_CS 15 // Chip Select
#define TFT_RST 4 // Reset
#define TFT_DC 2 // Data/Command
#define TFT_CLK 22 // Clock
#define TFT_MOSI 23 // Data
Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC, TFT_RST);
void setup() {
SPI.begin(TFT_CLK, -1, TFT_MOSI, -1); // Initialize SPI with custom clock and MOSI pins
tft.begin();
tft.setRotation(1);
tft.fillScreen(ILI9341_BLACK);
tft.setTextColor(ILI9341_WHITE);
tft.setTextSize(2);
tft.setCursor(50, 120); // X, Y position
tft.print("Hallo Wereld");
}
void loop() {
// Niks te doen hier
}
Om enkel de onboard LoRa te initialiseren (en wat werkt), gebruik ik de volgende code:
#include <LoRa.h>
#define LORA_MOSI 27
#define LORA_MISO 19
#define LORA_CLK 5
#define LORA_NSS 18
#define LORA_RST 23
#define LORA_DIO0 26
#define LORA_BAND 433E6
void setup() {
Serial.begin(115200);
// Initialize LoRa
SPI.begin(LORA_CLK, LORA_MISO, LORA_MOSI, LORA_NSS);
LoRa.setPins(LORA_NSS, LORA_RST, LORA_DIO0);
if (!LoRa.begin(LORA_BAND)) {
Serial.println("Starting LoRa failed!");
while (1)
;
}
Serial.println("LoRa Transceiver initialized...");
}
void loop() {
// Niks te doen hier
}
Zowel de "Hallo Wereld"- als de "initialisatie van de LoRa"-code werken goed, maar hoe kan ik nu SPI gebruiken voor beiden als de LORA_CLK "vast" zit, en niet bij kan!?
(Ik snap dat de andere GPIO's voor het TFT scherm ook anders moeten)
De toegankelijke GPIO's op de LilyGO TTGO T3 LoRa32 zijn 0, 1, 2, 3, 4, 12, 13, 14, 15, 19, 21, 22, 23, 25, 26, 34, 35, 36, 39.
Heeft iemand hier misschien een oplossing?
