Compilation error with IDE

Bonjour,
impossible de compiler ce sketch avec IDE 2.0:


/*code by Neranjan Walakulpola
for more help and diagram visit
http://www.http://circuitfreak.net/index.php/2015/05/05/arduino-oled-voltage-meter/
modif pour Fuel Press
Valeur sur A0
*/

#include <avr/pgmspace.h> //on n'oublie pas d'intégrer la bibliothèque de gestion de mémoire FLASH
#include <SPI.h>
#include <Wire.h>
#include <Arduino.h>

#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <Esp32WifiManager.h>

#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);

//#if (SSD1306_LCDHEIGHT != 64)
//#error("Height incorrect, please fix Adafruit_SSD1306.h!");
//#endif

void setup() {

// Set up the display
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // Initialize with the I2C addr 0x3D if not working use 0x3C (for the 128x64)
display.setTextColor(WHITE);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
}
void loop(){

// draw scrolling text
delay(50);

//int sensorValue = analogRead(A0);
int sensorValue PROGMEM = analogRead(A0);
// Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):
int voltage PROGMEM = sensorValue * (5.0 / 1023.0);
// print out the value you read:
display.clearDisplay();
display.setCursor(25,10);
display.setTextSize(3);
display.print(voltage);
display.setTextSize(2);
display.print(" PSI");
display.display();
display.clearDisplay();
if (voltage < 1)
{
digitalWrite(7, HIGH);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
}

if ((voltage >= 1) && (voltage < 4))
{
digitalWrite(8, HIGH);
digitalWrite(7, LOW);
digitalWrite(9, LOW);
}

if (voltage >= 4)
{
digitalWrite(9, HIGH);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
}

}


le problème vient de ces librairies
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <Esp32WifiManager.h>

Le message d'erreur:
F:\UTIL\Arduino\A_Instrum rep\Fluel-press\Fluel-press.ino:17:10: fatal error: AdafruitGFX.h: No such file or directory
17 | #include <AdafruitGFX.h>
| ^~~~~~~~~~~~~~~
compilation terminated.

exit status 1

Compilation error: AdafruitGFX.h: No such file or directory

Pour info: les fichiers sont bien dans le répertoire fluel-press, par ailleurs pas de problème pour téléverser blink.

Merci à l'avance pour votre aide
Pierre

Bonjour,

L'erreur est juste. C'est dans la syntaxe de include que se pose le problème, l'encadrement du nom de la fonction par les signes '<>' signifie d'aller chercher la bibliothèque dans le repertoire "librairies". Pour une bibliothèque en local, il faut utiliser les doubles quottes.

Plus d'infos ici:

Sauf si vous souhaitez avoir des versions de bibliothèque différentes pour différents projets, il est d'usage d'installer la bibliothèque via l'IDE Arduino.

A+

As-tu installé toutes ces bibliothèques ? Vérifie avec le gestionnaire de bibliothèques de l'IDE.

Ton code source est sur un disque externe ou une clé USB ? Le problème peut venir de là, si l'IDE va chercher les bibli sur ce disque aussi, au lieu de les chercher où elles sont installées (disque C probablement).

Enfin, es-tu sûr que tu nous as donné le message d'erreur complet ? Utilise le bouton de l'IDE qui permet de copier l'ensemble du contenu de la fenêtre de compilation et colle ça dans ta réponse.
Merci

Bonjour,
Il y a encore d'autres erreurs qui trainent
On utilise PROGMEM sur des constantes pas sur des variables que l'on modifie.

Et surtout, on lit les "Bonnes pratiques du forum francophone" et on les applique. Comme par exemple mettre le code en forme et le poster entre des balises codes pour qu'ils soit lisible.

Merci pour cette réponse rapide.

J'ai remplacé les crochets par des doubles quotes, mais j'obtiens
toujours le même message d'erreur:

Merci pourton indication.

Concernant les bonnes pratiques c'est la première fois que je poste une
question sur le forum, je ne comprends pas:

mettre le code en forme et le poster entre des balises codes pour qu'ils
soit lisible.

Peux-tu me donner un exemple.

Merci

Merci pour cette réponse rapide:

les biblis sont sur mon pc, j'ai changé les crochets par des doubles
quotes, les fichiers xxx.h sont bien dans le répertoire Fluel-press.

Mais j'ai toujours le même message d'erreur:

Il suffit de cliquer sur le lien dans mon message et de lire...

Bonjour @pifreko

En arrivant sur le forum il est important , comme l'a déjà indique @fdufnews de prendre un peu de temps pour consulter ceci, placé bien en évidence en tête de forum , il y est expliqué, dans au paragraphe Quelques outils , images à l'appui, comment bien poster le code(indentation , balsie...)

Merci pour l'indication de programme.

Je tacherai d'appliquer les bonnes règles pour ma prochaine question.

Tu peux même mettre en application tout de suite en éditant ton premier message (il suffit de cliquer sur l'icône en forme de crayon sous ton message) et en mettant le code en forme.

L'absence des balises fait que certains caractères ne sont pas affichés et donc le code est illisible. Typiquement l'indentation disparaît.

Les bibliothèques concernées sont celles-ci. Elles devraient être installées dans le répertoire Arduino/libraries. Le répertoire Arduino doit avoir été créé lors de l'installation de l'IDE. Normalement, il se trouve dans ton répertoire personnel (C:\users\xxx\Documents)

Si tu vas dans le menu Préférences de l'IDE (je suis en version 1.8.19, je ne sais pas si c'est pareil pour la version 2) tu vois un lien vers un fichier appelé 'preferences.txt' dans lequel se trouve le chemin vers le répertoire qui contient tes sketches

sketchbook.path=C:\Users\xxx\Documents\Arduino

C'est là que se trouve le répertoire 'libraries' dans lequel doivent aller les bibliothèques. Elles y sont automatiquement installées par l'IDE lorsque tu utilises le gestionnaire de bibliothèques (CTRL + MAJ + I).

Si tu as installé tes bibliothèques ailleurs, je te conseille de les effacer et de les installer avec le gestionnaire.

Effectivement dans :\Users\xxx\Arduino, je n'ai pas de répertoire
Arduino, je vais essayer de remédier à ce problème et je te tiens au
courant.

Merci encore

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