ESP32 Cam et écran LCD I2C

Bonjour pourriez vous m'aider, j'aimerais faire fonctionner un écran LCD I2C (16x2) avec un esp32 cam. mon code marche sur un Arduino mega. il faudrait plus (je pense) voir avec les broches. Mercii pour votre aide

Oui on pourrait essayer t'aider.
Mais tu ne donne aucune information pour que l'on puisse t'aider :frowning:

As tu brocher ton écran LCD correctement?
Que se passe t-il sur ton écran ?
Quel est ton programme?
Quel carte de développement ESP32 utilise tu exactement ?
As tu la description du brochage de ta carte de développement ?
Quel est écran utilise tu et quel est son brochage ?

la carte ESP32-CAM est indiquée dans le titre et dans le message #1, elle est assez contrainte en terme de disponibilité de GPIO, surtout si on y insère une carte µSD
voir ici : https://randomnerdtutorials.com/esp32-cam-ai-thinker-pinout/

En lançant une recherche avec les mots clefs 'ESP32-CAM I2C' on trouve quelques retours de tests plus ou moins laborieux, la gestion de la camera monopolisant de très nombreux GPIOs

Oui, mais comme on voit beaucoup de clone, je ne sais pas si il respecte tous que tu as donné?

  1. oui
    2)il affiche des rectangles plein, 16 sur la première et 2 sur la 2 eme ligne
    3)voici mon code :


#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16, 2);  // Adresse I2C de l'écran LCD LiquidCrystal_I2C lcd(0x27, 16, 2, 4, 5);  // Utilisez les numéros de broche SDA (4) et SCL (5) de l'ESP32-CAM


unsigned long lastMessageTime = 0;

int messageIndex = 0;

String messages[] = {

  "message numero long 1 ",
  "message numero tres long 2",
  "message numero tres tres long 3"
};

byte heart[8] = {
  0b00000,
  0b01010,
  0b11111,
  0b11111,
  0b11111,
  0b01110,
  0b00100,
  0b00000
};
void setup() {

  lcd.init();
  lcd.backlight();
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("initialisation en cours veuillez patienter ");
  Serial.begin(9600);  // Démarrez la communication série
}

void displayTwoLineMessage(const String& line1, const String& line2) {
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print(line1);
  lcd.setCursor(0, 1);
  lcd.print(line2);
}

void loop() {
  
  unsigned long currentTime = millis();

    unsigned long elapsedTime = currentTime - lastMessageTime;// Calculer le temps écoulé depuis le dernier message (8 secondes en millisecondes)

  if (elapsedTime >= 8000) {
    lcd.clear();
    lcd.setCursor(0, 0);

 displayTwoLineMessage(messages[messageIndex].substring(0, 16), messages[messageIndex].substring(16, 32)); // Affiche le message actuel sur deux lignes

    // Incrémentez l'index du message
    messageIndex = (messageIndex + 1) % 3;

    lastMessageTime = currentTime;  // Mettez à jour lastMessageTime

    lcd.createChar(0, heart);
    lcd.setCursor(8, 2);
    lcd.write(0);

    Serial.println(messages[messageIndex]);
  }
}
  1. ESP 32 CAM DEVKIT1 sans caméra et sd
  2. oui, trouver sur google
  3. un écran LCD de 16par2 caractère, avec un bus I2C

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