comment utiliser un même fichier.h pour differents sketchs (sans le dupliquer)

Bonjour,

mon souci est dans la question ; j'ai essayé de donner un chemin d'accés dans l'include, de placer le fichier dans ..../arduino/libraries ... ça ne marche pas j'ai toujours l'erreur" no such file or directory"

Une soluce ?
Meerci d'avance

PS contexte : IDE 1.8.5 Windows 10

As tu respecté les "règles" de l'IDE arduino ?
Je pense qu'il faut traiter ce fichier comme une bibliothèque.
A ta place je recopierai la structure d'une bibliothèque (dossier, répartition des fichiers dans le dossier).

Sinon ce que j'utilise, mais je suis sous linux, c'est les liens symboliques : c'est assez génial.
Depuis le répertoire de travail de l'IDE je créé un lien symbolique vers le "vrai" fichier et l'IDE pense avoir à faire avec le vrai fichier alors qu'il être situé dans un autre disque dur.
Comme il n'y a pas copie mais lien, le fichier n'est qu'à un seul endroit et les modifications s'appliquent partout.
Windows doit pouvoir le faire , mais je ne sais pas comment.

Bonjour,

Sous 'Mes documents\Arduino\libraries' tu crées un répertoire: par exemple MesLib (attention pas d'espace dans le nom)
Sous ce répertoire tu crées (ou tu mets) ton .h par exemple Test.h (toujours sans espace dans ce nom)

Pour l'appel

#include <Test.h>

Attention le nom du fichier est sensible à la casse. Si tu mets '#include <test.h>' ça ne fonctionnera pas

Bonjour kamill

kamill:
Sous 'Mes documents\Arduino\libraries' tu crées un répertoire: par exemple MesLib...

Super info, marci!

Cordialement
jpbbricole

jpbbricole:
Super info, marci!

Avec plaisir.

@kamill

Dsl ça ne marche pas j'ai toujours la même erreur. J'ai strictement reproduit ton exemple

mesdoc/arduino/libraries/meslibs/test.h et mesdocs/arduino/sketchs/essai/essai.ino avec #include <test.h> (j'ai aussi essayé #include "test.h" et aussi déplacé le dossier essai dans arduino...

what else ?

@68tjs

Oui, oui je pourrais créer une bibliothèque ; mais je trouve ça un peu lourd pour un simple fichier à partager et que je veux pouvoir modifier facilement.

En plus il n'y a (semble-t-il) pas moyen de supprimer les bibliothèques une fois installées... j'ai tout un tas d'essais qui encombrent la liste sur mon pc...

Quand même bizarre qu'on ne puisse pas donner simplement un chemin d'accès aux fichier ...

En plus il n'y a (semble-t-il) pas moyen de supprimer les bibliothèques une fois installées... j'ai tout un tas d'essais qui encombrent la liste sur mon pc...

Tu supprimes les répertoires en question.
Qui c'est le chef de ton PC ? :grin:

L'IDE est ce qu'elle est avec ses défauts et ses qualités, il faut faire avec ou passer à autre chose.
Si tu veux continuer à l'utiliser tu en respecte les règles.
Ce que je dis n'est pas différent de ce que t'as dit Kamill.
Si cela ne fonctionne pas c'est qu'il doit y avoir une couillonnade quelque part.
Cherches un peu mais attention plus c'est énorme moins c'est facile à trouver.

max777:
@kamill

Dsl ça ne marche pas j'ai toujours la même erreur. J'ai strictement reproduit ton exemple

mesdoc/arduino/libraries/meslibs/test.h et mesdocs/arduino/sketchs/essai/essai.ino avec #include <test.h> (j'ai aussi essayé #include "test.h" et aussi déplacé le dossier essai dans arduino...

what else ?

Chez moi ça fonctionne. Tu es sur que tu as bien respecté les majuscules/minuscules dans les noms?
Quand tu ecris mesdoc, il s'agit bien du répertoire windows "Mes Documents"?
Vérifies dans préférences le nom du répertoire de croquis qui doit être la racine du répertoire libraries

max777:
Quand même bizarre qu'on ne puisse pas donner simplement un chemin d'accès aux fichier ...

Ca fonctionne quand on donne un chemin d'accès absolu, ce qui n'est pas très pratique.

max777:
En plus il n'y a (semble-t-il) pas moyen de supprimer les bibliothèques une fois installées... j'ai tout un tas d'essais qui encombrent la liste sur mon pc...

Tu vas dans le répertoire libraries et tu supprimes simplement le répertoire de la librairie.

@kamill

Merci !

Comme tu dis plus c'est gros.... le répertoire libraries doit être dans le même répertoire que celui du sketch !
et là ça marche

re-merci
bye

Bonsoir max777

max777:
@kamill

what else ?

Dans l'IDE Arduino sous Fichier/Préférences, qu'as-tu dans Emplacement du carnet de croquis?

68tjs:
Tu supprimes les répertoires en question.
Qui c'est le chef de ton PC ? :grin:

L'IDE est ce qu'elle est avec ses défauts et ses qualités, il faut faire avec ou passer à autre chose.

Bien que ça n'a pas l'air d'être un problème d'IDE, il y a une autre alternative, payante ~35€ de mémoire, c'est Programino, rien à voir avec "l'officiel" qui est plus un truc pour las "maso" :slight_smile:
Perso j'utilises Atmel Studio 7 (Visual Studio) avec le plug Arduino au même prix mais ça vaut la peine, pour les 2 programmes, on change de planète!

Cordialement
jpbbricole

@jpbbricole

je vais regarder... Merci de l'info
(mon rêve, pouvoir faire du pas à pas, mettre des points d'arrêt, regarder les variables etc etc tout ce qu'on fait avec un IDE "normal" ; est-ce qu'il manque une patte aux MCUs pour le permettre ? j'utilise code::block sinon)

Sinon...

Je corrige ce que j'ai dit plus haut... le répertoire libraries doit être dans le répertoire donné par le chemin d'accés précisé dans préférences... le(s) fichier(s) partagé(s) peuvent ensuite se trouver dans n'importe quel répertoire de libraries et le répertoire du sketch que l'on compile n'importe où aussi...

J'avais probablement mal configuré mes préférences pour avoir le pb d'accés...

jpbbricole:
Bien que ça n'a pas l'air d'être un problème d'IDE,

Ben si.
Ce n'est pas un non fonctionnement, c'est une fonctionnalité imposée par l'IDE qu'il faut connaître et respecter.

max777:
Je corrige ce que j'ai dit plus haut... le répertoire librarie doit être dans le répertoire donné par le chemin d’accès précisé dans préférences
J'avais probablement mal configuré mes préférences pour avoir le pb d'accés...

@max777
Normalement il n'y a rien à configurer le fichier préférences est près à l'emploi, sauf si tu l'as modifié.
L'IDE à l'installation crée un répertoire Arduino dans ton compte personnel.
Dans ce répertoire Arduino l'IDE crée un sous répertoire nommé "libraries".
C'est dans ce sous répertoire qu'il faut que tu déposes les fichiers que tu veux rendre accessibles.

Dans l'IDE il y a 3 chemins prédéfinis pour les bibliothèques

  • un chemin pour les bibliothèques sous responsabilité arduino
  • un chemin pour les bibliothèques sous la responsabilité de tierces partie qui collaborent avec Arduino.
    -un chemin pour les bibliothèques personnelles ou que tu importes.

Si tu places les fichiers *.h et *.cpp dans le même répertoire que le fichier .ino cela marche aussi mais la syntaxe pour les "includes" n'est pas la même.
Si les fichiers includes (
.h) sont dans un répertoire connu de l'IDE la syntaxe est :
#include < fichier.h>
Si le fichier *.h est dans le répertoire courant, c'est à dire celui du fichier *.ino la syntaxe est :
#include " fichier.h"

Bonsoir 68tjs

ben c'est exactement ce que j'ai voulu dire, ah... la richesse du français.....

Bonne nuit
jpbbricole

Heu ...
68tjs ou Bernard.
Pas 69tjs, cela peut être mal interprété.
:confused:

Oupss, merci.

Bonne nuit