Bonjour,
J'ai un écran Mcufriend 3.5" (photo en pièce jointe) branché directement sur un arduino Mega.
J'ai un programme d'affichage test, ci dessous, dont je voudrais me servir, à terme pour afficher les données de ma petite station météo qui sont transmises par une arduino pro mini accouplée à une NRF24L01+.
Or, si je ne m'abuse, cet écran utilise le bus SPI. Pourtant, sur le méga, le bus SPI utilise les broches 50 à 53 qui ne sont pas connectées à cet écran. Par contre, les broches 11, 12 et 13 sont connectées comme sur la Uno.
La question : je voudrais ajouter une NRF24L01, pour capter les données de mes capteurs. Mais sur quelles broches la brancher ?
Merci pour votre aide.
#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 BLACK 0x0000
#define BLUE 0x001F
#define RED 0xF800
#define GREEN 0x07E0
#define CYAN 0x07FF
#define MAGENTA 0xF81F
#define YELLOW 0xFFE0
#define WHITE 0xFFFF
#define ORANGE 0xFFA5
float hum; //Stores humidity value
float temp; //Stores temperature value
float pression;
float windSpeed;
char * windDirection[] = { "Nord", "Nord Est", "Est", "Sud Est", "Sud", "Sud Ouest", "Ouest", "Nord Ouest" };
int alea;
void setup()
{
Serial.begin(115200);
tft.reset();
uint16_t identifier = tft.readID();
Serial.print("ID = 0x");
Serial.println(identifier, HEX);
if (identifier == 0xEFEF) identifier = 0x9486;
tft.begin(identifier);
// tft.fillScreen(BLACK);
//Rotate the screen to right direction
tft.setRotation(1);
//Print the headers
printHeader();
}
void loop()
{
//Read data and store it to variables
temp = 20.20;
hum = 52.12;
pression = 80.00;
windSpeed = 25.30;
alea = random(0,8);
printTemperatureHumidity();
//Delay 5 Seconds
delay(5000);
}
//Print headers
unsigned long printHeader(void )
{
tft.fillRect(0, 0, 240, 64, GREEN);
tft.fillRect(0, 64, 240, 64, RED);
tft.fillRect(0, 128, 240, 64, CYAN);
tft.fillRect(0, 192, 240, 64, YELLOW);
tft.fillRect(0, 256, 240, 64, ORANGE);
unsigned long start = micros();
tft.setTextColor(BLACK);
tft.setTextSize(3);//18pixels wide,24pixel hight
//
tft.setCursor(25, 0 + 20); //20+12=32: milieu rectangle
tft.print("Temperature:");
//
tft.setCursor(25, 64 + 20);
tft.print("Wind speed:");
//
tft.setCursor(25, 128 + 20);
tft.print("Wind direction:");
//
tft.setCursor(25, 192 + 20);
tft.print("Pression:");
//
tft.setCursor(25, 256 + 20);
tft.print("Humidity");
return micros() - start;
}
//Print temperature and humidity
unsigned long printTemperatureHumidity()
{
tft.fillRect(241, 0, 240, 64, CYAN);
tft.fillRect(241, 64, 240, 64, YELLOW);
tft.fillRect(241, 128, 240, 64, ORANGE);
tft.fillRect(241, 192, 240, 64, GREEN);
tft.fillRect(241, 256, 240, 64, RED);
//tft.fillScreen(BLUE);
unsigned long start = micros();
tft.setTextColor(BLACK);
tft.setTextSize(3);
//Temperature
tft.setCursor(250, 0 + 20);
tft.print(temp);
tft.print(" ");
tft.print((char)247);
tft.println("C");
//Wind Speed
tft.setCursor(250, 64 + 20);
tft.print(windSpeed);
tft.print(" ");
tft.println("Km/h");
//Wind Direction
tft.setCursor(250, 128 + 20);
tft.print(windDirection[alea]);
//Pression
tft.setCursor(250, 192 + 20);
tft.print(pression);
tft.print(" ");
tft.println("Hpa");
//Humidity
tft.setCursor(250, 256 + 20);
tft.print(hum);
tft.print(" ");
tft.println("%");
return micros() - start;
}