Arduino Forum

International => Français => Topic started by: fitness04 on Apr 19, 2019, 07:32 pm

Title: Mega + Ecran Mcufriend3.5" + NRF24L01 aide branchement
Post by: fitness04 on Apr 19, 2019, 07:32 pm
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.

Code: [Select]

#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;
}
Title: Re: Mega + Ecran Mcufriend3.5" + NRF24L01 aide branchement
Post by: hbachetti on Apr 19, 2019, 10:03 pm
https://howtomechatronics.com/tutorials/arduino/arduino-wireless-communication-nrf24l01-tutorial/ (https://howtomechatronics.com/tutorials/arduino/arduino-wireless-communication-nrf24l01-tutorial/)
Title: Re: Mega + Ecran Mcufriend3.5" + NRF24L01 aide branchement
Post by: fitness04 on Apr 20, 2019, 07:31 pm
Merci Hbachetti pour ce lien mais ça ne répond pas tout à fait à ma question.

En effet, cet écran est plutôt destiné à venir s'enficher directement sur une Uno mais il fonctionne aussi sur une méga avec, d'après ce que j'ai lu sur la librairie Mcufriend, une vitesse un peu lente.

Donc, à mon avis l'écran utilise le port SPI avec les broches 11, 12 et 13. Or le port SPI de la Méga est sur les broches 50 à 53.

Donc, je veux bien brancher la NRF24L01 sur le port SPI de la Méga dont les broches sont libres et écrire le programme adéquate mais,  si l'écran utilise les broches 11, 12 et 13 pour sa liaison SPI, ne faudrait-il pas que je fasse un branchement parallèle sur ces broches là?

Encore faudrait-il que je sache quelle broche est utilisée pour SS1 ?

Merci pour l'aide...

Ci joint, une photo du montage sur la Méga
Title: Re: Mega + Ecran Mcufriend3.5" + NRF24L01 aide branchement
Post by: hbachetti on Apr 20, 2019, 07:44 pm
Les broches 11, 12, 13 de la MEGA ne sont pas SPI.