Importer des bibliothèques

Bonjour
Je travaille sur le kit Smart Home de Keyes Studio. J'ai posté des messages pour essayer de faire fonctionner la carte ESP32 sur mon Mac mais sans succès.
Je me suis donc rabattue sur mon PC... J'arrive à faire quelques projets du kit mais pas ceux où je dois importer une bibliothèque.
J'ai testé plusieurs choses différentes, mais par exemple pour le premier, j'obtiens ceci.

#include <analogWrite.h>  //Import PWM output library files
#define led_y 12    //Define LED pins  

void setup(){
  pinMode(led_y, OUTPUT);  //Set pin to output mode
}

void loop(){
  for(int i=0; i<255; i++)  //The for loop statement increments the value of variable i until it exits the loop at 255  
  {
    analogWrite(led_y, i);  //PWM output, control LED brightness
    delay(3);
  }
  for(int i=255; i>0; i--)  //The for loop statement continues to decrease the value of variable i until it exits the loop at 0
    analogWrite(led_y, i);
    delay(3);
  }
}

Et le message d'erreur :
C:\Users\user\Documents\Arduino\sketch_dec29a1.1\sketch_dec29a1.1.ino:18:1: error: expected declaration before '}' token
18 | }
| ^

exit status 1

Compilation error: expected declaration before '}' token

Pourtant la bibliothèque apparait bien ...

Il manque un accolade ouvrante après le second for.

Bonjour, ok je l'ai modifié :

#include <analogWrite.h>  //Import PWM output library files
#define led_y 12    //Define LED pins  

void setup(){
  pinMode(led_y, OUTPUT);  //Set pin to output mode
}

void loop(){
  for(int i=0; i<255; i++)  //The for loop statement increments the value of variable i until it exits the loop at 255  
  {
    analogWrite(led_y, i);  //PWM output, control LED brightness
    delay(3);
  }
  for(int i=255; i>0; i--)  //The for loop statement continues to decrease the value of variable i until it exits the loop at 0
   {
    analogWrite(led_y, i);
    delay(3);
  }
}

Et ça ne marche toujours pas , voici le message d'erreur:
c:\Users\user\Documents\Arduino\libraries\ESP32_AnalogWrite\src\analogWrite.cpp: In function 'int analogWriteChannel(uint8_t)':
c:\Users\user\Documents\Arduino\libraries\ESP32_AnalogWrite\src\analogWrite.cpp:44:9: error: 'ledcSetup' was not declared in this scope
44 | ledcSetup(channel, _analog_write_channels[i].frequency, _analog_write_channels[i].resolution);
| ^~~~~~~~~
c:\Users\user\Documents\Arduino\libraries\ESP32_AnalogWrite\src\analogWrite.cpp:45:9: error: 'ledcAttachPin' was not declared in this scope; did you mean 'ledcAttach'?
45 | ledcAttachPin(pin, channel);
| ^~~~~~~~~~~~~
| ledcAttach

exit status 1

Compilation error: exit status 1

La réponse est ici

Il faudrait mettre la librairie à jour.

D'accord, merci mais je suis désolée je suis vraiment une grande débutante et je ne comprends pas comment faire pour mettre les librairies à jour... Pourriez-vous m'expliquer?

Ça va être un peu compliqué car cette librairie n'est pas à jour dans le gestionnaire de librairies de l'IDE.

  1. Fermer l'IDE s'il est ouvert
  2. il faut aller sur github
    GitHub - erropix/ESP32_AnalogWrite: Provides an analogWrite polyfill for ESP32 using the LEDC functions
  3. cliquer sur <> Code et choisir "Download ZIP"
  4. Dans le répertoire où tu ranges tes projets il doit y avoir un répertoire "libraries"
  5. Tu devrais y trouver un répertoire ESP32_AnalogWrite, il faut le supprimer
  6. Il faut ouvrir le ZIP que tu as chargé et faire extraire l'archive dans "libraries"
  7. Tu devrais avoir un nouveau répertoire "ESP32_AnalogWrite" ou "ESP32_AnalogWrite-master"
  8. Tu ouvres l'IDE. Maintenant, tu devrais pouvoir recompiler ton projet.

ok merci j'avance... C'est bon, j'ai le nouveau répertoire ESP32_AnalogWrite-master dans mes documents, mais est ce que je dois de nouveau l'importer dans l'IDE Arduino?

Parce que du coup j'ai encore un message d'erreur:
C:/Users/user/AppData/Local/Arduino15/packages/esp32/tools/esp-x32/2405/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/bin/ld.exe: C:\Users\user\AppData\Local\arduino\cores\0d47b5c28906366e5c12bde9117ef472\core.a(esp32-hal-ledc.c.o): in function analogWriteResolution': C:\Users\user\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.1.1\cores\esp32/esp32-hal-ledc.c:461: multiple definition of analogWriteResolution'; C:\Users\user\AppData\Local\arduino\sketches\E1406594E7F547C483310D62FE507532\libraries\ESP32_AnalogWrite-master\analogWrite.cpp.o:c:\Users\user\Documents\Arduino\libraries\ESP32_AnalogWrite-master\src/analogWrite.cpp:84: first defined here
collect2.exe: error: ld returned 1 exit status

exit status 1

Compilation error: exit status 1

Ce que je ne comprends pas , c'est que dans l'IDE elle ne s'appelle pas pareil, il n'y a pas le "master".


Je pense qu'il faudrait supprimer ce répertoire, et ses sous-répertoires, qui sert de cache et qui doit contenir l'ancienne version précompilée.

Bon c'est entrain de me rendre dingue. J'ai tout supprimé tout réinstallé. Nouveau message d'erreur
C:/Users/user/AppData/Local/Arduino15/packages/esp32/tools/esp-x32/2405/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/bin/ld.exe: C:\Users\user\AppData\Local\arduino\cores\0d47b5c28906366e5c12bde9117ef472\core.a(esp32-hal-ledc.c.o): in function analogWriteResolution': C:\Users\user\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.1.1\cores\esp32/esp32-hal-ledc.c:461: multiple definition of analogWriteResolution'; C:\Users\user\AppData\Local\arduino\sketches\7D36169029AD72721804F6A5ACFD3E07\libraries\ESP32_AnalogWrite\analogWrite.cpp.o:c:\Users\user\Documents\Arduino\libraries\ESP32_AnalogWrite\src/analogWrite.cpp:84: first defined here
collect2.exe: error: ld returned 1 exit status

exit status 1

Compilation error: exit status 1

C'est-à-dire?

J'ai supprimé l'IDE et tout ce qui concernait l'arduino dans mon ordi, puis j'ai réinstallé en mettant directement la bonne librairie.

Euréka j'ai trouvé !
Dans mon tutoriel, au moment d'ajouter l'environnement ESP32, il fallait installé le pack esp32 y expressif system, version 1.0.6. Ce que j'avais fait. Mais ensuite j'avais fait la mise à jour de ce pack et apparemment c'est ça qui bloquait. J'ai recommencé en gardant l'ancienne version et mes bibliothèques ont fonctionné !