Afficheur uc1701x COG et ESP32S2

Bonjour,

J'ai ressorti un écran SPI LCD DOF 128x64 (https://fr.aliexpress.com/item/4000033669170.html) qui consomme peu et qui est bien lisible au soleil pour l'utiliser sur un ESP32S2.
J'ai un lecteur SD

#include <Arduino.h>
#include <SD.h>
#include <SPI.h>
#define SDSPI_MISO   9
#define SDSPI_MOSI   11
#define SDSPI_SCLK   7
#define SDSPI_SS     12

SPIClass SDSPI(FSPI);


void setup() {
  
  SDSPI.begin(SDSPI_SCLK, SDSPI_MISO, SDSPI_MOSI, -1);                 //SCLK, MISO, MOSI, SS
  pinMode(SDSPI_SS, OUTPUT);                         
  if (!SD.begin(SDSPI_SS,SDSPI)) {
     Serial.println("SD CARD      FAILED");  }

Je voudrais le brancher sur le port (HSPI)
Donc

SPIClass lcdSPI(HSPI);

J'ai trouvé sur Code which is working fine isnt working in Class

#include <Arduino.h>
#include <SPI.h>
#include <U8g2lib.h>

#define CLK_PIN 18
#define SDA_PIN 23
#define CS_PIN 32
#define RS_PIN 27
#define RST_PIN 33

/* Constructor */
U8G2_UC1701_MINI12864_1_4W_HW_SPI u8g2(U8G2_R0, CS_PIN, RS_PIN, RST_PIN);

/* u8g2.begin() is required and will sent the setup/init sequence to the display */
void setup(void) {
  u8g2.begin();
  //u8g2.setBusClock(600000);
  u8g2.setContrast(175);

  u8g2.firstPage();
  do {
    u8g2.setFont(u8g2_font_ncenB14_tr);
    u8g2.drawStr(0,20,"Hello World!");
  } while ( u8g2.nextPage() );
  delay(1000);
}

/* draw something on the display with the `firstPage()`/`nextPage()` loop*/
void loop(void) {

}

Qui compile sur ESP32S2 avec arduino 1.8.19 car j'utilise la version portable.

Comment faire pour concilier les deux ?

Merci d'avance

Un code Arduino a toujours la même structure :

  • Des lignes au début, souvent #define ou #include
  • Une fonction void setup()
  • Une fonction void loop()
  • Parfois d'autres fonctions

Tes deux codes suivent ce schéma, sauf le premier qui n'a pas de loop : il doit donc être incomplet.
Pour les assembler, pas dur :

  1. Tu prends les lignes du début de chaque code, tu les mets dans un nouveau fichier ino, et tu ôtes ce qui est dupliqué
  2. Tu prends le setup du premier code et tu copies dedans les lignes du setup du second code : tout ça va dans le fichier ino précédent
  3. Même chose pour la loop

Tu fais CTRL T pour lui donner bonne allure, et tu compiles... Reviens nous donner les résultats de la compilation !

Bonsoir,

Je n'ai pas installé de loop dans mon premier fichier par économie de texte, pour moi aussi il est évident qu'après le setup il y a un loop :wink:
J'ai donc fait ce qui était demandé en modifiant un peu à partir d'un autre fichier qui compilait

Avec la partie de ligne U8G2_UC1701_MINI12864_1_4W_HW_SPI en jaune ne convenait pas

J'ai tenté

#include <Arduino.h>
#include <SD.h>
#include <SPI.h>
#include <U8g2lib.h>
#define SDSPI_MISO   9
#define SDSPI_MOSI   11
#define SDSPI_SCLK   7
#define SDSPI_SS     12

#define CLK_PIN 18
#define SDA_PIN 23
#define CS_PIN 32
#define RS_PIN 27
#define RST_PIN 33

SPIClass SDSPI(FSPI);

/* Constructor */
U8G2_UC1701_EA_DOGS102_1_4W_SW_SPI u8g2(U8G2_R0, /* clock=*/ CLK_PIN, /* data=*/ SDA_PIN, /* cs=*/ CS_PIN, /* dc=*/ RS_PIN, /* reset=*/ RST_PIN);  


void setup() {
  SDSPI.begin(SDSPI_SCLK, SDSPI_MISO, SDSPI_MOSI, -1);                 //SCLK, MISO, MOSI, SS
  pinMode(SDSPI_SS, OUTPUT);                         
  if (!SD.begin(SDSPI_SS,SDSPI)) {
     Serial.println("SD CARD      FAILED");  }
  u8g2.begin();
  //u8g2.setBusClock(600000);
  u8g2.setContrast(175);
  u8g2.firstPage();
  do {
    u8g2.setFont(u8g2_font_ncenB14_tr);
    u8g2.drawStr(0,20,"Hello World!");
  } while ( u8g2.nextPage() );
  delay(1000);
}
void loop() {
}

Et cela compile

Ce ne sont pas les pins du lcd qui m'intéressent mais je dois pourvoir en choisir d'autres.
Après je tente le montage demain.

Pas de commentaires ?

Si ça compile c'est déjà bien. Il faut voir ce que ça donne à l'exécution...

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.