Gen 2 808 Posté(e) août 27, 2017 Auteur Partager Posté(e) août 27, 2017 (modifié) Alors mon petit roucass.. Je ne sais pas ce que tu as foutu avec ton code, impossible de le compiler avec mon environnement. je taffe sous sublime_text 3 et comme environnement arduino V 1.6.8 lors de la compil il me fait une crise de nerf au niveau des librairies.. Contrôle ton environnement Je t'ai mis ma version avec l'ajout dans le code du maintenanceMode, et lui compile parfaitement chez moi l'archive ci-dessous contient le fichier ino MiniGrowduinoV2.ino.zip explication : CYCLIC_1.setActivation(!maintenanceMode); j'active ou je désactive le cyclic_1 en fonction de l'inverse du mode maintenance si la variable maintenanceMode est à true alors le parametre d'activation sera inversé grâce au point d'exclamation placé devant le paramètre en entrée de la méthode setActivation qui prendra la valeur false et vice et versa CYCLIC_1.run(now.unixtime(),TIMER_1.isWorking()); ligne 2 je lance de toute manière la commande run, mais si l'l'objet CYCLIC_1 est désactivé le relais ne commutera pas Edit : pour activer ou désactiver, utiliser la touche 'A' (comme activation) du pavé numérique ++ GEN Modifié août 27, 2017 par Gen Lien à poster Partager sur d’autres sites
Viker 147 Posté(e) août 27, 2017 Partager Posté(e) août 27, 2017 Viker... un relais est un interrupteur commandé à distance. au cul du moteur AC tu ne mets rien, par contre à la commande du relais (coté DC) tu mets toujours une diode. si il y a un condensateur sur le circuit, il ne sert que pour le déparasitage ++ GEN alors oui le relais est un interrupteur à distance là je n'apprend rien. si je pose la question c'est parce que mon intracteur n'arrête pas de me péter mes relais ssr du coup je me demandais que faire et si je devais mettre au cul de l'intracteur quelque chose pour que cela ne pète pas mes ssr. Sachant que l'intracteur fait 15w et que le ssr est en théorie supporte 2A soit largement plus. Une idée? (sachant, pour info, que c'est le même intracteur qui refusait la régulation avec le circuit régulateur de vitesse universel pour moteur) ++ Viker Lien à poster Partager sur d’autres sites
Gen 2 808 Posté(e) août 27, 2017 Auteur Partager Posté(e) août 27, 2017 (modifié) tu oublies le facteur de conso interne.. mais normalement le souci de devrait pas venir de là. Ton SSR a-t'il chauffé ? sinon il te reste l'option d'utiliser un triac en mode full open par contre moi j'utilise des relais pour boîtier électrique 24V de chez schneider et jamais eu de prob sur les extracteurs Donne moi les ref de ton SSR stp que j'y jette une bille J'attends ta réponse ++ GEN Modifié août 27, 2017 par Gen Lien à poster Partager sur d’autres sites
Viker 147 Posté(e) août 27, 2017 Partager Posté(e) août 27, 2017 tu oublies le facteur de conso interne.. mais normalement le souci de devrait pas venir de là. Ton SSR a-t'il chauffé ? sinon il te reste l'option d'utiliser un triac en mode full open Donne moi les ref de ton SSR stp que j'y jette une bille J'attends ta réponse ++ GEN Merci Gen. Alors le ssr est un ssr 8 voie high level trigger communément vendu sur allixx Il ne semble pas avoir chauffé d'aspect extérieur mais il est devenu passant de façon permanente alors qu'il devrait être non passant au repos (non connecté) ++ Viker Lien à poster Partager sur d’autres sites
Gen 2 808 Posté(e) août 27, 2017 Auteur Partager Posté(e) août 27, 2017 Klr le transistor à claqué.. ton moteur était-il souvent sollicité genre plusieurs fois par minutes ? ++ 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 Gen, je vais nettoyer l'ordinateur ( suppression des copie) et je vais voir le problème ( je pense que dans la façon dont j'ai ajouter les librerie. ) Lien à poster Partager sur d’autres sites
Viker 147 Posté(e) août 27, 2017 Partager Posté(e) août 27, 2017 C'est l'intracteur donc il tourne en permanence. Il est régulé par minigrowduino par la sortie intra et la rampe de ssr 8 voie. Il change donc de régime en fonction de la température et par conséquent change de sortie ssr. Mais là je constate que c'est la sortie correspondant à la vitesse là plus élevée qui est morte sachant que vu les températures actuelles il n'a pas du changer de sortie ou alors c'est au changement de sortie qu'il a claqué mais ce n'est que supputation. ++ Viker Lien à poster Partager sur d’autres sites
Gen 2 808 Posté(e) août 27, 2017 Auteur Partager Posté(e) août 27, 2017 (modifié) je crois savoir d"où vient le problème.. le temps de commutation des relais. As-tu essayé avec des relais mécaniques ? Moi à l'origine j'ai prévu le système pour des relais mécaniques, il se peut qu'avec des SSR ça merdouille si l'on augmente pas le temps à vide des relais.. En gros en mettant 500ms cela ne devrait plus poser de problème. avec cette tempo pas de crête d'intensité car le moyeu est encore en train de tourner Si tu édites la classe, et met tous les relais a off + un délais avant de lui relancer une commande cela ne devrait plus poser de prob si cela provient de là. Edit : D'ici demain, je vais faire la modif de la classe et la tester, ensuite vous la mettre à dispo car c'est un peu compliqué pour des débutants de bidouiller les classes, ainsi ceux qui désireraient utiliser des platines SSR pour la commande moteur n'auront pas de blèmes Tiens moi au jus ++ GEN Modifié août 27, 2017 par Gen Lien à poster Partager sur d’autres sites
Gen 2 808 Posté(e) août 27, 2017 Auteur Partager Posté(e) août 27, 2017 (modifié) Ok ça marche Gen, je vais nettoyer l'ordinateur ( suppression des copie) et je vais voir le problème ( je pense que dans la façon dont j'ai ajouter les librerie. ) les librairies se mettent dans arduinoxxx/librairies et non dans lib xxx = version ensuite il faut relancer l'environnement pour qu'elles soient prises en charge.. cherche une chouille dans les GDW, j'ai expliqué cela, si cela peut t'aider si tu taffes sous LINUX assure toi que les fichiers ont les droits d'accès par l'environnement ++ 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 suis sous Windows directement avec l'ide, je pense que c'est du fait que les librairies était toutes dispersés Lien à poster Partager sur d’autres sites
Gen 2 808 Posté(e) août 27, 2017 Auteur Partager Posté(e) août 27, 2017 Je viens de faire la modif pour le fichier motorDriver.cpp je dois encore la tester, mais cela ne devrait pas poser de problème. Cette modif sera intégrée à la dernière mise à jour sur le post #1 de ce fil de discussion dès les tests terminés. #include "MotorDriver.h" #include <Arduino.h> #include <Wire.h> #include <avr/pgmspace.h> MotorDriver::MotorDriver(int address,bool relayMode) { _I2cAddress = address; _reverse = relayMode; } void MotorDriver::begin() { byte defaultValue[2]={ALL_UP,ALL_DOWN}; byte motorsAdr[2]={EXTRA,INTRA}; Wire.begin(); for(byte i = 0; i<=1; i++) { Wire.beginTransmission(_I2cAddress); Wire.write(i); Wire.write(0x00); // define I/O in output Wire.endTransmission(); Wire.beginTransmission(_I2cAddress); Wire.write(motorsAdr[i]); Wire.write(defaultValue[_reverse]); // define original relay status Wire.endTransmission(); } } void MotorDriver::setSpeed(int motorSelected, int speed) { if(speed > 7){speed = 7;} if(speed < 0){speed = 0;} Wire.beginTransmission(_I2cAddress); Wire.write(motorSelected); if(_reverse) { Wire.write(inverted_speed[0]); } else { Wire.write(normal_speed[0]); } Wire.endTransmission(); delay(500); Wire.beginTransmission(_I2cAddress); Wire.write(motorSelected); if(_reverse) { Wire.write(inverted_speed[speed]); } else { Wire.write(normal_speed[speed]); } Wire.endTransmission(); } ++ GEN Lien à poster Partager sur d’autres sites
Gen 2 808 Posté(e) août 27, 2017 Auteur Partager Posté(e) août 27, 2017 Ok ça marche, je suis sous Windows directement avec l'ide, je pense que c'est du fait que les librairies était toutes dispersés klr, c'est la seule explication passe sur sublime_text c'est un peu galère à installer mais après c'est que du plaisir à comparer au GUI préhistorique de l'IDE adruino ++ GEN Lien à poster Partager sur d’autres sites
Viker 147 Posté(e) août 27, 2017 Partager Posté(e) août 27, 2017 (modifié) je crois savoir d"où vient le problème.. le temps de commutation des relais. As-tu essayé avec des relais mécaniques ? Moi à l'origine j'ai prévu le système pour des relais mécaniques, il se peut qu'avec des SSR ça merdouille si l'on augmente pas le temps à vide des relais.. En gros en mettant 500ms cela ne devrait plus poser de problème. avec cette tempo pas de crête d'intensité car le moyeu est encore en train de tourner Si tu édites la classe, et met tous les relais a off + un délais avant de lui relancer une commande cela ne devrait plus poser de prob si cela provient de là. Edit : D'ici demain, je vais faire la modif de la classe et la tester, ensuite vous la mettre à dispo car c'est un peu compliqué pour des débutants de bidouiller les classes, ainsi ceux qui désireraient utiliser des platines SSR pour la commande moteur n'auront pas de blèmes Tiens moi au jus ++ GEN Ce que tu appelles la classe moteur c'est la librairie? et du coup est-ce que ce changement est pertinent? void MotorDriver::setSpeed(int motorSelected, int speed) { if(speed > 7){speed = 7;} if(speed < 0){speed = 0;} Wire.beginTransmission(_I2cAddress); Wire.write(motorSelected); if(_reverse) { Wire.write(inverted_speed[0]); delay(500); Wire.write(inverted_speed[speed]); } else { Wire.write(normal_speed[0]); delay(500); Wire.write(normal_speed[speed]); } Wire.endTransmission(); Edit: ah bah le temps d'écrire le message et je vois que tu as déja posté la modif ++ Viker Modifié août 27, 2017 par Viker Lien à poster Partager sur d’autres sites
Gen 2 808 Posté(e) août 27, 2017 Auteur Partager Posté(e) août 27, 2017 (modifié) Pas assez rapide LOL ton code n'aurait pas fonctionné car le circuit attend 2 bytes c'est pour cela qu'il faut faire un end transmission et un begin transmission, mais en gros l'idée y était ++ GEN Modifié août 27, 2017 par Gen Lien à poster Partager sur d’autres sites
Viker 147 Posté(e) août 27, 2017 Partager Posté(e) août 27, 2017 (modifié) héhé trop rapide Gen! et oui j'ai compris en regardant ton code qu'il faut un begin et un end transmission pour chaque commande. Bon et bien en attendant confirmation de ta part après test je m'en vais changer le ssd cramé. ++ Viker Modifié août 27, 2017 par Viker Lien à poster Partager sur d’autres sites
Roucass 61 Posté(e) août 27, 2017 Partager Posté(e) août 27, 2017 (modifié) Gen y a un moyen de mettre les menu de sublime text en français car je suis déjà nul en français alors en anglais j'y comprends rien J'ai installer le dictionnaire français mais ça a rien changer. Modifié août 27, 2017 par Roucass Lien à poster Partager sur d’autres sites
Gen 2 808 Posté(e) août 27, 2017 Auteur Partager Posté(e) août 27, 2017 (modifié) cherche dans youtube, il y a des exemples https://packagecontrol.io/packages/Language%20-%20French%20-%20Fran%C3%A7ais je sais que sous la version 2 je l'avait mis en fr pour la 3 j'ai pas essayé, je parle la langue de Shakespeare ++ 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 (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 Modifié août 27, 2017 par Roucass Lien à poster Partager sur d’autres sites
Gen 2 808 Posté(e) août 27, 2017 Auteur Partager Posté(e) août 27, 2017 La classe est testée et fonctionne, je vais mettre les fichiers à jour dans l'archive ++ GEN Lien à poster Partager sur d’autres sites
Gen 2 808 Posté(e) août 27, 2017 Auteur Partager Posté(e) août 27, 2017 Archive V1_35 Mise à jour modification de la classe MotorDriver inclues ++ GEN Lien à poster Partager sur d’autres sites
Messages recommandés