Gen 2 808 Posté(e) août 27, 2017 Auteur Partager Posté(e) août 27, 2017 (modifié) Bon bah je laisse tomber pour ce week-end, trop prise de tête, le fichier que tu m'a envoyer quand je l'est compiler il m'a trouver une erreur sur void Cyclic. Stop qui n'est plus utiliser, du coup je l'est supprimer dans le CCP et le h et maintenant il me ressort 20 erreur par rapport au cyclic C'est que tu as encore sur ton disque une version obsolète.. normalement dans ton répertoire de travail, il ne doit y avoir que 2 fichiers le functions.h et le MiniGrowduinoV1_35.ino Après ta première compil, un fichier .hex sera créé Je viens de remettre à jour l'archive V1_35 , tu en prends les librairies que tu mettras dans ton environnement dans le repertoire librairie.. le mieux est d'y effacer les anciennes utilisées par le projet et d'y remettre les nouvelles. N'oublies pas de relancer l'environnement pour qu'elles soient prises en compte. ++ GEN Modifié août 27, 2017 par Gen Lien à poster Partager sur d’autres sites
Roucass 61 Posté(e) août 27, 2017 Partager Posté(e) août 27, 2017 Ok ça marche je verrais ça demain, depuis hier j'ai du passer une dizaine d'heure dessus pour au final tout recommencer ça c'est le bordel ce logiciel (tout est séparé de partout (dans différents répertoire, programme, document..) et sublime text ne peut être mis en français et j'ai beau faire comme dans les vidéo trouver sur internet mais j'arrive même pas à vérifier et compiler. Je vais tout reprendre du début: tout supprimer ( logiciel, donnees et librairie), reinstallation de l'ide récupéré le code de Viker, vérifier erreur, puis ajouter des menu( reverifier les erreur). Jusque là j'avais un code qui fonctionner. Et ensuite on ce replongera dans ce code qui fait f*** depuis ce matin. Va falloir que je fasse une copie au fur et et à mesure car la j'ai 20 erreur par rapport au fichier cyclic ( pourtant c'est le même que hier, basé sur cyclic timer que tu m'a fourni ou j'ai supprimer les mots timer pour le passer de cyclic timer à cyclic qui est appeler dans le code principal ). Lien à poster Partager sur d’autres sites
Gen 2 808 Posté(e) août 27, 2017 Auteur Partager Posté(e) août 27, 2017 oublie cyclic timer, utilises les classes de l'archive que je viens de rafraîchir ++ GEN Lien à poster Partager sur d’autres sites
Roucass 61 Posté(e) août 27, 2017 Partager Posté(e) août 27, 2017 Ok ça marche Petite question pourquoi quand on importe des librairie le logiciel en mets dans la librairie de arduino(dans C:/ programme/arduino/librairie) et d'autre dans la librairie du projet (C:/user/utilisateur/arduino...)? Lien à poster Partager sur d’autres sites
Gen 2 808 Posté(e) août 27, 2017 Auteur Partager Posté(e) août 27, 2017 re C:/ programme/arduino/librairie c'est l'endroit où doivent se trouver les librairies C:/user/utilisateur/arduino ce sont les codes .ino, si tu y retrouves une librairies c'est quelle à dû être compilée ou qu'en décompressant une archive elles s'y sont foutues à toi de veiller à toujours avoir tes librairies dans C:/ programme/arduino/librairie ++ GEN Lien à poster Partager sur d’autres sites
Roucass 61 Posté(e) août 27, 2017 Partager Posté(e) août 27, 2017 (modifié) Ok ça marche merci A+ Modifié août 27, 2017 par Roucass Lien à poster Partager sur d’autres sites
Viker 147 Posté(e) août 27, 2017 Partager Posté(e) août 27, 2017 Archive V1_35 Mise à jour modification de la classe MotorDriver inclues ++ GEN Bon je testerais demain en espérant ne pas avoir à redessouder et souder :/ merci Gen ++ Viker Lien à poster Partager sur d’autres sites
Roucass 61 Posté(e) août 28, 2017 Partager Posté(e) août 28, 2017 Bonjour à tous Générale après vérification sur le site arduino si j'utilise la bonne methode d'ajou, j'ai constaté que tu te trompe sur l'emplacement idéal pour stocker des bibliothèques "personnalisé ". Sur le site arduino à cette adresse: https://www.arduino.cc/en/Guide/Libraries Il précise bien que pour les bibliothèques vaut mieux les stocker dans documents /arduino plutôt que programme/arduino car lorsque le logiciel ce met à jour il supprimé tout dans programme/arduino (dont les bibliothèques ) mais ne touche pas à la partie croquis (documents /arduino). J'essayerais ce soir si j'arrive à faire fonctionner mon code Bonne journée à tous Lien à poster Partager sur d’autres sites
Gen 2 808 Posté(e) août 28, 2017 Auteur Partager Posté(e) août 28, 2017 possible, mais chez moi elles sont toutes dans librairies.. car je ne fais pas les mises à jour. je n'y ai que les librairies standard et celles que j'écris moi-même.. Mon pc de travail n'est jamais connecté au réseau (enfin pas tout à fait, juste pour l'upload des videos).. trop eu de mauvaises expériences Ceci expliquerait cela tiens moi au jus ++ GEN Lien à poster Partager sur d’autres sites
Viker 147 Posté(e) août 28, 2017 Partager Posté(e) août 28, 2017 Archive V1_35 Mise à jour modification de la classe MotorDriver inclues ++ GEN Bonjour, Je viens de mettre la nouvelle classe MotorDriver et j'ai testé sur une lampe à filament et... bah ça clignote. En effet runMotors est relancé periodiquement avec runProcess et du coup MOTOR_DRIVER.setSpeed est également relancé et par conséquent 500 ms de délais. Du coup il est possible qu'en effet les ssr ne grillent plus (je n'ai pas encore testé) mais par contre l'allumage extinction des intra extra toutes les 2 secondes ne vont-ils pas nuire à leur durée de vie? Du coup quel est la meilleur option pour éviter le clignotement (hors changement de vitesse)? J'ai pensé à une condition du genre dans void runMotors if(currentTemp < previousTemp -0.5) || (currentTemp > previousTemp +0.5) alors exécuter les instructions habituelles sinon fin de void runMotors solution élégante ou y a-t-il mieux? Sinon petite contribution pour programmer l'arduino mega par les pin rx et tx si comme moi vous ne pouvez plus accéder au port usb du mega. En effet, mon arduino mega est fixé dans la box miniGrowduino et je ne peux accéder à la prise usb sans démonter mon arduino ce qui n'est pas pratique si je veux changer le programme. Donc j'utilise un programmateur FTDI que je branche de la façon suivante sur mon arduino mega : FTDI Rx --> Tx Mega Tx --> Rx Vcc --> +5V Gnd --> Gnd Attention, le FTDI alimente le Mega donc pas d'autre alimentation branchée sur le Mega le temps de la programmation. Sinon dans l'IDE Arduino sélectionnez comme d'habitude dans tools (outils), le type de carte Arduino Mega, le processeur Mega 2560 et le port com adéquat. Avant d'appuyer sur upload (téléversement) il faut enfoncer le bouton reset du mega. Au moment ou la compilation vient de finir il faut relâcher le bouton reset afin que le téléchargement s'opère. Les led tx et rx se mettent alors à clignoter rapidement sur le FTDI. Voilà c'est terminé. Bonjour à tous Générale après vérification sur le site arduino si j'utilise la bonne methode d'ajou, j'ai constaté que tu te trompe sur l'emplacement idéal pour stocker des bibliothèques "personnalisé ". Sur le site arduino à cette adresse: https://www.arduino.cc/en/Guide/Libraries Il précise bien que pour les bibliothèques vaut mieux les stocker dans documents /arduino plutôt que programme/arduino car lorsque le logiciel ce met à jour il supprimé tout dans programme/arduino (dont les bibliothèques ) mais ne touche pas à la partie croquis (documents /arduino). J'essayerais ce soir si j'arrive à faire fonctionner mon code Bonne journée à tous Toutes les librairies que j'ai installées se trouvent dans le dossier librairies lui même dans le dossier où se trouvent les projets créés (.ino) et cela fonctionne très bien. ++ Viker Lien à poster Partager sur d’autres sites
Gen 2 808 Posté(e) août 28, 2017 Auteur Partager Posté(e) août 28, 2017 (modifié) Yop Viker C'est pour cela que tu as un paramètre de temporisation de l'échantillonage int motorDelayInSec = .... que tu règles en fonction du volume et de l'inertie thermique. J'ai mis une tempo de 500ms par défaut pour le basculement des relais réponse à ta question : il y a mieux LOOOOL tu verras dans le code Pourquoi ? Car une classe a un niveau d'abstraction élevé, et peut être réutilisée par tout autre projet. de plus, un classe te permet d'en faire x instanciations avec des paramètres différents voila pour résoudre le problème je vais aller mettre la classe à jour dans le post#1 (Fait) ++ GEN Modifié août 28, 2017 par Gen Lien à poster Partager sur d’autres sites
Viker 147 Posté(e) août 28, 2017 Partager Posté(e) août 28, 2017 Ah bah oui en effet comparer si la vitesse est différente de la vitesse actuelle dans la classe même. Lien à poster Partager sur d’autres sites
Gen 2 808 Posté(e) août 28, 2017 Auteur Partager Posté(e) août 28, 2017 (modifié) Ah bah oui en effet comparer si la vitesse est différente de la vitesse actuelle dans la classe même. tu m'as donné l'idée de pouvoir modifier le temps j'ai rajouté 2 methodes supplémentaires dans la classe MotorDriver La valeur par défaut est de 500ms ++ GEN Modifié août 28, 2017 par Gen Lien à poster Partager sur d’autres sites
Viker 147 Posté(e) août 28, 2017 Partager Posté(e) août 28, 2017 Excellent. Possibilité de modifier et vérifier la valeur du délai des relais via l'interface du miniGrowduino. Bon je vais quand même utiliser la valeur par défaut sans toucher au programme J'upload la nouvelle bibli, je teste sur 24h. A plusieurs on est plus intelligent Vive la zone de partage! ++ Viker Lien à poster Partager sur d’autres sites
Gen 2 808 Posté(e) août 28, 2017 Auteur Partager Posté(e) août 28, 2017 A plusieurs on est plus intelligent J'adore ! ++ GEN Lien à poster Partager sur d’autres sites
Viker 147 Posté(e) août 28, 2017 Partager Posté(e) août 28, 2017 (modifié) Arf, je viens de mettre la nouvelle classe moteur mais j'ai toujours un clignotement comme si la comparaison de vitesse était toujours différente alors qu'il n'y pas eu de changement de température. Il y a bien une instance de la classe pour l'extra et une pour l'intra? il n'y pas comparaison de la vitesse de l'intra avec celle de l'extra? Que se passe-t-il? Edit: ou est-ce le fait que currentSpeed soit initialisée à 0 et qu'elle reste à cette valeur ? int _currentSpeed = 0; ++ Viker Modifié août 28, 2017 par Viker Lien à poster Partager sur d’autres sites
Gen 2 808 Posté(e) août 28, 2017 Auteur Partager Posté(e) août 28, 2017 Il y a bien qu'une seule instance de la classe MotorDriver la différentiation se fait via le parametre passé INTRA ou EXTRA Et oups.. j'ai fait une erreur je dois mettre 2 _current speed un pour l'intra et l'autre pour l'extra. Désolé j'ai la tête dans le guidon car je suis en train de taffer sur les protos et à force de passer de l'un à l'autre je m'embrouille les pinceaux. Je jette une bille, je modifie, je teste et je reviens te dire quoi ++ GEN Lien à poster Partager sur d’autres sites
Viker 147 Posté(e) août 28, 2017 Partager Posté(e) août 28, 2017 (modifié) Pas de problème.Je patiente et du coup je vais jeter un oeil sur la page du proto ++ Viker Modifié août 28, 2017 par Viker Lien à poster Partager sur d’autres sites
Gen 2 808 Posté(e) août 28, 2017 Auteur Partager Posté(e) août 28, 2017 (modifié) voila, c'est fait. La classe est modifiée, elle fonctionne parfaitement, j'ai testé sur mon banc d'essais avec une routine dédiée voici les fichiers .h et .cpp fichiers_moteurs.zip par contre j'ai remarqué un autre petit souci dans le code même du prog, je suis dessus Une fois corrigé, je remettrai une archive dans le post #1 ++ GEN Modifié août 28, 2017 par Gen Lien à poster Partager sur d’autres sites
Gen 2 808 Posté(e) août 28, 2017 Auteur Partager Posté(e) août 28, 2017 (modifié) yop j'ai trouvé mon étourderie (j'aime bien ce mot) MotorDriver MOTOR_DRIVER(MOTOR_ADDRESS,invertedRelay); à remplacer par MotorDriver MOTOR_DRIVER(MOTOR_ADDRESS,false);j'ai supprimé la variable invertedRelay qui ne sert plus ce qui donne au niveau des déclaration ceci DailyTimer TIMER_1(TIMER1_PIN , false); DailyTimer TIMER_2(TIMER2_PIN , true); Cyclic CYCLIC_1(CYCLIC1_PIN , CYCLIC1_PIN ,true ); // The second parameter defined the exit pin of a led, if you do not use this feature, leave the code as it stands Cyclic CYCLIC_2(CYCLIC2_PIN , CYCLIC2_PIN ,true ); // The second parameter defined the exit pin of a led, if you do not use this feature, leave the code as it stands HystDrive TEMP_DRIVER(TEMP_U_PIN,TEMP_D_PIN,true); HystDrive HUMIDITY_DRIVER(HR_U_PIN , HR_D_PIN, true); MotorDriver MOTOR_DRIVER(MOTOR_ADDRESS,false); j'ai mis pour le test l'echantillonage à 2 sec pour le test, (ça fonctionne nickel) perso je travaillerai avec 30s pour les petits espaces et 60-120 pour les grandes salles Merci pour tes interventions, cela fait avancer le schmilblick ++ GEN Modifié août 28, 2017 par Gen Lien à poster Partager sur d’autres sites
Messages recommandés