Bonjour , je m'appelle Billy et je suis nouveau ici .
Voilà mon problème, avec mon papa on avait eu l'idée de faire avec éclairer les marches de mon escalier une par une avec un lapse de temps égal avec des capteurs ,un en haut pour faire éclairer de haut en bas et un capteur en bas pour éclairer de bas en haut.
Mon problème est que mon papa est malheureusement décédé avant de finir et c'est lui qui avait fait le programme dans l'arduino Nano . J'ai retrouvé son draft mais quand je veux le téléverser dans la Nano il marque compilation erreur et surligne en rouge la ligne qui fait défaut. Mais moi quand on bricolait avec mon papa j'étais plus les mains et lui la tête du coup je n'y comprends pas grand chose malgré mes recherches. Du coup je me permets de solliciter votre aide, je vous ai mis le Screenshot de l'erreur, si quelqu'un pouvait m'aider à résoudre ce problème cela serai magnifique car cela me tient à cœur de finir le travail.
#define SHIFTPWM_NOSPI // NE PAS utiliser le port SPI et modifiez les numéros de broches. C'est 2,5 fois plus lent Ne pas Changer!!!
const int ShiftPWM_dataPin = 6; // Ne pas Changer 6!!!
const int ShiftPWM_clockPin = 7; // Ne pas Changer 7!!!
const int ShiftPWM_latchPin = 8; // Ne pas Changer 8!!!
#include <ShiftPWM.h>
const bool ShiftPWM_invertOutputs = false;
const bool ShiftPWM_balanceLoad = false;
#define CapteurLumiere_PIN A5 // Capteur Lumiere A5!!!
#define CapteurBas_PIN A2 // Capteur Bas A2!!!
#define CapteurHaut_PIN A1 // Capteur Haut A1!!!
unsigned char LumiereMaxi = 240; // Nombre de niveaux de luminosité (180). Reglage(0-255)!!
unsigned char pwmFrequence = 75; // Vitesse de transition de ShiftPWM(75)
unsigned int numRegisters = 3; // Num de shift registers Ne pas Changer!!!
unsigned int numOutputs = numRegisters * 8;
unsigned int numRGBLeds = numRegisters * 8 / 3;
boolean CapteurHautActif = false;
boolean CapteurBasActif = false;
int NombreDeSpot = 7; // Nombre de Spot. Jusqu'a Maxi 24 !!!!
int pause = 1000; // Setup delay ON/OFF Adjust!!!
byte VitesseDetransitionOut = 10; // Vitesse Transition Out 5!!!
byte VitesseDetransitionIn = 5; // Vitesse Transition In 5!!!
int val;
void setup() {
ShiftPWM.SetAmountOfRegisters(numRegisters);
ShiftPWM.Start(pwmFrequence, LumiereMaxi);
pinMode(CapteurHaut_PIN, INPUT);
pinMode(CapteurBas_PIN, INPUT);
delay(3000);
}
void loop() {
val = analogRead(5); // Lecture Capteur lumiere
if (val <= 1000) { // Valeur Capteur (val<10 Fonce.....val>800 Clair..)!!!!!!!!
CapteurBasEtat(); // Test le capteur du bas
CapteurHautEtat(); // Test le capteur du haut
OnOffduBasenHaut(); // Spot on/off du Bas vers le haut
OnOffduHautenBas(); // Spot on/off du Bas vers le haut
}
}
void CapteurBasEtat() {
if (analogRead (CapteurBas_PIN) >= 300 && CapteurHautActif == false ) { //Depend du type de capteur, Si 0 pour changement ,alors change la comparaison a l'inverse
CapteurBasActif = true;
}
}
void CapteurHautEtat() {
if (analogRead(CapteurHaut_PIN) >= 300 && CapteurBasActif == false ) {
CapteurHautActif = true;
}
}
void OnOffduBasenHaut() {
if (CapteurBasActif == true ) {
for (int i = 0; i < NombreDeSpot; i++) {
for (int a = 0; a < LumiereMaxi; a++) {
ShiftPWM.SetOne(i, a);
delay(VitesseDetransitionOut);
}
}
delay(pause);
for (int i = 0; i < NombreDeSpot; i++) {
for (int a = LumiereMaxi; a >= 0; a--) {
ShiftPWM.SetOne(i, a);
if (a == 0) {
ShiftPWM.SetOne(i, 0);
}
delay(VitesseDetransitionIn);
}
}
CapteurBasActif = false ;
}
}
void OnOffduHautenBas () {
if ( CapteurHautActif == true) {
for (int i = NombreDeSpot - 1; i >= 0; i--) {
for (int a = 0; a < LumiereMaxi; a++) {
ShiftPWM.SetOne(i, a);
delay(VitesseDetransitionOut);
}
}
delay(pause);
for (int i = NombreDeSpot - 1; i >= 0; i--) {
for (int a = LumiereMaxi; a >= 0; a--) {
ShiftPWM.SetOne(i, a);
if (a == 0) {
ShiftPWM.SetOne(i, 0);
}
delay(VitesseDetransitionIn);
}
}
CapteurHautActif = false ;
}
}
Merci pour la réponse rapide du coup j'ai vérifié il est dans le dossier et j'ai relancer le téléversement cela fait la même chose, désolé mais je suis vraiment nul en informatique.
Je vous ai mis les capture d'écran si vous voulez voir
En effet la bibliothèque est présente sur ton disque dur mais il semble que l'organisation des codes Arduino ne soit pas respectée.
NB : je vois que tu utilises l'IDE version 2. Moi pas, donc peut-être que ce que je vais dire n'est pas bon, car valable uniquement pour la v1...
Normalement, les codes Arduino sont organisés comme ceci :
Tu as un répertoire 'Arduino'
Dans ce répertoire il y a un répertoire 'libraries' : dans ce dernier se trouvent les répertoires de tes bibliothèques. Donc le répertoire que tu montes 'ShiftPWM-master' devrait se trouver là (et pas ailleurs). Au passage, tu peux le renommer "ShiftPWM" ce sera mieux.
Dans le répertoire 'Arduino' se trouvent les répertoires de tes projets. C'est là que devrait se trouver celui de ton fichier ino. Dans ta première photo, on le voit sur le disque G, et pas dans ce répertoire 'Arduino'. C'est peut-être de là que vient ton problème : l'IDE cherche le répertoire de la bibli depuis un endroit qui n'est pas le bon.
Donc pour que ça marche, il faudrait que cette arborescence soit respectée.
il me semble que le chemin ne doit pas comporter d'espace dans les nom de répertoires.
Enlève l'espace entre escalier et david et met plutôt un tiret moins " - "ou un tiret bas " _ "
et essaie de recompiler.
@lesept je travail mes codes sur clé usb et j'ai jamais eu de soucis donc je ne pense pas que l'endroit ou ils se trouve aie une importance.
Le nom Arduino pour la base du répertoire projet n'est pas imposé. Tu peux lui donner le nom que tu veux et c'est celui qui doit apparaître dans les préférences comme expliqué au-dessus.
Le sous-répertoire libraries (le nom est imposé) contiendra les librairies que tu ajoutes à la main ou celles que tu installes avec le gestionnaire de librairie de l'IDE.