Gen 2 807 Posté(e) mai 16, 2017 Partager Posté(e) mai 16, 2017 (modifié) Questions - Modifications - Code perso etc.. C'est ici que cela se passe Toujours dans l'esprit OPEN SOURCE du projet, posez ici vos questions, vos codes perso, vos modifs, vos montages etc.. Afin de tout regrouper au même endroit, et d'en faire le partage avec la communauté. SHIELD V1 Lien vers le JDB : https://www.cannaweed.com/topic/206023-gdw5-growduino-shield-pour-mega2560-lcd-4x20-en-open-source-termine/ SHIELD V2 lien : https://www.cannaweed.com/forums/topic/214669-gdw5b-growduino-shield-v2-pour-mega2560/ Version 3.02 du 15 Juillet 2018 Téléchargement : GROWDUINO3.pdf Veillez à débrancher l'alimentation de vos auto-transformateurs avant de faire la mise à jour (celle-ci remettra ré-initialisera tous vos paramètres) Veillez également à configurer la bonne adresse I2c pour votre écran LCD AVERTISSEMENT : Cette version est faite pour le shield V2 ! Si vous avez le shield V1, vous devez modifier le code au niveau de la définition des pin I/O Veillez à également définir dans le code la bonne adresse I2c pour votre écran LCD Est joint dans l'archive le programme de remise à zéro de la mémoire si nécessaire. 1 - Téléchargez le fichier pdf 2 - Changez l'extension pdf en zip 3- Décompactez le.. Mise en oeuvre : Le programme a été fait sous ATOM Pour les utilisateur ATOM, lancez platformio et ouvrir un projet existant Pour les utilisateurs de sublime texte ou du GUI arduino, repartissez les fichiers suivant votre méthode de travail Avant de téléchargez, déconnectez vos platines relais et moteur téléchargez le logiciel dans l'arduino Allez dans le setup (*) et configurez l'état de fonctionnement de vos relais ainsi que des platines moteurs Après vous être assuré que tout fonctionne bien au niveau configuration, rebranchez vos platines moteurs et relais Sauf bug.. il n'y aura plus de mise à jour pour ce programme, ni pour le shield V1 Si vous désirez changer de shield, contactez moi La prochaine version sera codée afin pouvoir travailler avec un écran tactile NEXTION Amusez-vous bien et bon grow ++ GEN Modifié juillet 16, 2018 par Gen 7 2 Lien à poster Partager sur d’autres sites
Gen 2 807 Posté(e) mai 17, 2017 Auteur Partager Posté(e) mai 17, 2017 (modifié) Comment charger le programme dans l'arduino + Explications paramétrage du logiciel Mini-GrowDuino Prérequis : Avant de commencer, vous devez avoir l'application arduino 1.8.4 installée sur votre PC https://www.arduino.cc/en/main/software Avant installation, effacez toutes les librairies de l'ancien projet, car elles n'ont plus rien à voir avec les nouvelles versions Dans l'archive vous trouverez les fichiers ainsi que les librairies nécessaires à l'installation du logiciel Elle se compose comme suit : Les répertoires GDW2 et librairies sont à copier et à mettre dans votre répertoire de développement ... User/Arduino/GDW2 ... User/Arduino/libraries GDW2 contient les fichiers d'application GDW2.ino et un fichier Functions.h Vous y trouverez également un sous répertoire clearMem, ce dossier contient un utilitaire pour remettre l'EEPROM à zéro. Vous devez utiliser ce programme si vous aviez installé une version antérieure à la 2.01 ou que vous faites l'installation vous même pour la première fois sur votre arduino Méga. il suffit de compiler, charger et ensuite vous ouvrez le moniteur série de votre IDE arduino pour voir le processus. libraries contient les librairies utilisées par le projet à l'exception des librairies fournies d'office par l'iDE arduino, à savoir : Wire version 1.0.0 SoftwareSerial version inconnue LIquidCrystal_I2C V1.1.2 Wire étant d'office installé dans votre IDE, je vous ai mis à disposition les librairies LIquidCrystal_I2C SoftwareSerial au cas où vous ne les trouveriez pas via votre gestionnaire de librairies. Elles se situent dans la racine de l'archive, et placez les dans le sous répertoire libraries de votre application de développement arduino .... /arduino-1.8.4/libraries/ une fois les fichier installés et uploadés, le programme détectera automatique que c'est son premier lancement et mettra toutes les variables aux valeurs par défaut. DESCRIPTION DU MENU [MENU OPTIONS] *TIMER JOURNALIER* -TIMER 1 -TIMER 2 -DELAIS ALLUMAGE *TEMPO CYCLIQUE -CYCLIQUE 1 -CYCLIQUE 2 *ENVIRONNEMENT* -MODE DE TRAVAIL -TEMPERATURE -HUMIDITE -HYSTERESIS *REGLAGE MOTEUR* -EXTRACTEUR -INTRACTEUR -PARAMETRAGE -ECHANTILLONAGE -DELAIS CO2 *RELAIS* -CONFIGURATION -ACTIVATION *HARWARE* -HORLOGE -CODE SECURITE -SCREEN SAVER -CO2 -Ph CAPTURES DES FENETRES FENETRE PRINCIPALE 1 (Touche A ) FENETRE PRINCIPALE 2 (Touche B ) FENETRE PRINCIPALE 3 (Touche C ) -TIMER 1 -TIMER 2 -DELAIS ALLUMAGE -CYCLIQUE 1 -CYCLIQUE 2 -MODE DE TRAVAIL -TEMPERATURE -HUMIDITE -HYSTERESIS -EXTRACTEUR -INTRACTEUR -PARAMETRAGE -ECHANTILLONAGE -CONFIGURATION RELAIS -ACTIVATION RELAIS -HORLOGE -CODE SECURITE -SCREEN SAVER -CO2 NOUVEAUTES DE LA VERSION 2 La page de garde a été remplacée par 3 choix (non interruptifs) de pages - l'ancienne avec ajout du temps écoulé de cro/flo/séchage (Touche A ) - Une page de données Min/Max de la t° et de l'humidité (Touche B ) la réinitialisation des données se fait en appuyant une seconde fois sur la touche B -Une page de témoin de fonctionnement des relais et affichage des vitesses moteurs (Touche C ) AVERTISSEMENT : Je rappelle que l'entrée dans le setup est interruptif, donc veillez bien à en sortir après vos modifications pour que les process puissent reprendre leurs cours. Le menu setup a été remodelé en menu déroulant avec une profondeur de 1, plus de cascades de fenêtres les unes à la suite des autres.. la saisie se fait directement dans la page, et une indication de sauvegarde vous préviendra. Le menu setup est accessible depuis n'importe quelle page principale (A - B - C ), comme pour l'ancienne version, la touche * sert à rentrer ou sortir du menu ou des pages de menu Pour rentrer dans l'option choisie du menu setup, appuyez sur la touche # En sortie du setup, vous revenez à la page principale précédemment sélectionnée. Le menu setup peut être protégé par un code d'accès configuré à 000000 part défaut, ce qui est égal à son inactivation. La dernière position dans la liste du menu setup reste en mémoire, ainsi plus besoin de tout redescendre à chaque fois pour accéder à l'option souhaitée les touches de navigation dans le menu setup sont : A : monter d'une ligne B : retour en haut de liste C : déplacement en bas de liste D : descendre d'une ligne Timer 1 est le Timer principal, celui alloué à l'éclairage Timer 1 et Timer 2 gèrent les passages de jours Vous pouvez définir pour ceux-ci les horaires de croissance et de floraison Une nouvelle option a été ajoutée : délais d'allumage pour Timer 1 et Timmer 2 Cela prévient la remise en route des lampes en cas de coupure de courant ou de reset. la durée peut en être déterminée. En appuyant sur n'importe quelle touche hormis * de votre clavier, les lampes s'allumeront à votre demande avant la fin du délais d'attente. Cyclic1 et Cyclic2 gèrent les périodes en fonction du jour ou de la nuit. Leurs temps d'activité varient en fonction des données introduite dans Timer 1 Le mode de travail est passé de 2 à 3 choix, le mode séchage a été rajouté. Celui-ci coupera tous les relais à l'exception de la commande moteur qui sera réglée sur la vitesse 1 de votre extracteur. A chaque modification de mode de travail, le compteur de jours écoulés sera remis à zéro. Concernant les pages températures et humidité, celle-ci n'ont pas changé, hormis la saisie en direct. les températures min max sont paramétrables pour le jour et la nuit ainsi que pour la cro et la flo Un contrôle est effectué au moment de la validation de la saisie par rapport aux hystéresis introduits. En cas de non concordance , un message d'erreur vous informera. Il est important de savoir que les moteurs seront calibrés sur le médian des plages de températures introduites L'hystérésis lors de sa saisie contrôlera également son seuil par rapport aux t° et Hr introduites précédemment. Extracteur et Intracteur se configurent comme précédemment, l'option niveau de fonctionnement (HI ou LO) a été ajoutée. le temps de basculement des relais est fixé par défaut à 500ms. C'est également là que vous pourrez définir la vitesse minimum de fonctionnement des moteurs. Le paramétrage vous permet plusieurs choix de fonctionnement pour vos moteurs A = mode automatique basé sur la température 0 = désactivation du moteur 1 à n = réglage constant de la vitesse (mode manuel) Cette page vous permet également de définir l'offset de vitesse entre votre Extracteur et votre intracteur ( de -2 à + 2 ) Pour naviguer dans les plages appuyez sur C pour sélectionner cette option et ensuite naviguez entre les choix à l'aide des touches A et D L'échantillonnage permet de définir intervalle entre chaque analyse de la t° de votre environnement et commandera le changement éventuel de vitesse à vos moteurs C'est la vitesse de l'extracteur qui pilote la vitesse de l'intracteur, en tenant comptes des vitesses minimums et de l'offset éventuel. Le temps par défaut est de 10 secondes, pour les grands espaces vous pourrez en augmenter la valeur si nécessaire, car l'inertie thermique est plus grande la méthode de calcul tient compte de l'erreur de t° entre le médian de la température introduite en fonction du cycle cro /flo ainsi que jour nuit. si l'erreur augmente, les vitesses en feront de même jusqu'à ce que le médian soit atteint. Délais CO2 n'est pas disponible sur cette version, elle le sera avec le module complémentaire de gestion. idem pour pH et EC Relais configuration : vous pouvez maintenant définir sans rentrer dans le code, le mode de travail de vos relais (état haut ou état bas). peu importe le réglage interne, cela n'affectera pas l'affichage de la page C Relais activation, c'est ici que vous pouvez déconnecter des sorties, idem, peu importe le mode de fonctionnement, les classes gèrent ce mode afin que le courant soit coupé en sortie Quand des relais sont coupés, ceux ci n'apparaissent plus sur la Page C, idem pour les moteurs Horloge vous sert à régler la date et l'heure, des tests de saisies de données ont été mis en place afin de palier toutes erreurs de calculs Code de sécurité, comme dit plus haut, est défini par défaut à 000000 Si vous le modifiez, à la prochaine tentative d'entrée dans le setup, un code vous sera demandé. Si vous perdez ce code.. vous serez obligé d'utiliser le petit logiciel de remise à zéro de la mémoire EEPROM et de réinstaller le logiciel MiniGrowDuino. les données anciennement introduites seront perdues. Screen Saver, cet utilitaire en cas d'activation éteindra l'écran après le temps déterminé la durée est définie par défaut à 000 secondes (désactivé) Sinon au bout de ce laps de temps l'écran se mettra en veille. Pour réactiver l'écran, appuyez sur n'importe quelle touche de votre clavier hormis * Le Screen Saver n'est actif qu'en dehors du mode setup afin de vous permettre de travailler à l'aise. SI vous avez activé cette fonction, elle vous servira également d'indication de non sortie du setup si vous ne voyez pas l'écran s'éteindre après un certain temps. L'option CO2 vous permettra d'activer ou de désactiver la lecture de votre sonde l'option B de cette page ne sera utilisable qu'avec le module complémentaire. idem pour pH et EC Au niveau de la programmation, j'ai mis l'accent sur la programmation orientée objets toutes les variables sont principalement encapsulées dans les classes et les classes procèdent elles-mêmes à l'enregistrement des données dans l'EEPROM à chaque modification de paramètre Voila chers amis.. Je pense que cette fois le programme est plus que complet, et croyez moi, je me suis bien cassé le c** pour cette version. J'ai essayé dans la mesure du possible de le faire de manière explicite et didactique afin de vous faciliter la tâche, j'ai usé avec parcimonie de pointeurs dans des cas très simples. Pour les néophytes en programmation, ne modifiez les classes que si nécessaire en sachant ce que vous faites, car en orienté objet, tout dépend de tout. En contre partie, Il serait gentil de votre part de penser à me faire un retour rapide de vos remarques ,afin que je puisse faire les corrections éventuelles dans le classes du programme , et qui me seront également utiles pour la finalisation du proto. Merci d'avance Voila, amusez-vous bien et bon bricolage à tous et fuck aux appareils commerciaux qui coutent un avion ! Cordialement GEN Modifié février 6, 2018 par Gen 4 1 Lien à poster Partager sur d’autres sites
Gen 2 807 Posté(e) mai 17, 2017 Auteur Partager Posté(e) mai 17, 2017 (modifié) Comment brancher les accessoires ? DHT22 DHT22 Pin 1 => Connecteur DHT 5V DHT22 Pin 2 => Connecteur DHT Data DHT22 Pin 3 => non utilisée DHT22 Pin 4 => Connecteur DHT GND MH-Z14 TXD => Connecteur MHZ T RXD => Connecteur MHZ R VCC => Connecteur MHZ 5V GND => Connecteur MHZ GND PLATINES RELAIS Rien de plus simple, prenez un câble Dupont de 10 fils et branchez les séquentiellement en partant du GND de part et d'autre et continuez ainsi jusqu'au VCC ECRAN LCD Connectez GND, VCC, SDA, SCL respectivement sur un des pinheaders du bus I2c Le potentiomètre bleu sert à régler l'intensité du rétro-éclairage. Le jumper à gauche sert a activer ou désactiver le retro-éclairage, vous pouvez le remplacer par un interrupteur si vous le désirez BRANCHEMENT DU KEYPAD RACCORDEMENT DE L'ALIMENTATION Cas 1 avec une alimentation stabilisée 5VDC le + sur la pin 5V du pin header en bas à droite de votre shield le - sur une des 2 pins GND du pin header en bas à droite de votre shield Cas 2 avec une alimentation de 9 à 12v Utilisez simplement la prise d'alimentation de votre arduino OU le + sur la pin Vin du pin header en bas à droite de votre shield le - sur une des 2 pins GND du pin header en bas à droite de votre shield RACCORDEMENT DU BOUTON RESET Il est toujours intéressant de pouvoir faire un reset de la platine sans pour autant devoir tout démonter Pour se faire, munissez-vous d'un bouton poussoir à contact temporaire (càd qu'il est en circuit fermé tant que j'appuie dessus) branchez une des bornes du bouton poussoir sur le GND du pinheader en bas à droite et l'autre sur le reset (RST) N-Joy ! ++ GEN Modifié mai 17, 2017 par Gen 3 Lien à poster Partager sur d’autres sites
Gen 2 807 Posté(e) mai 17, 2017 Auteur Partager Posté(e) mai 17, 2017 (modifié) Pourquoi utiliser un relais SSR ? Je conseille vivement l'utilisation d'un relais SSR pour les ballasts HPS A force d'utilisation, avec le coup d'arc entre les 2 pôles du relais mécanique, ils peuvent rester collés. Ce genre de problème n'arrive pas avec un relais SSR Comment le brancher ? Noir = GND Rouge = 5V vous pouvez repiquer vos fil + et - sur un des pinheader I2C par exemple.. Avertissement : cet élément chauffe considérablement avec de grosses intensités Si vous dépassez les 2000W je vous conseille d'y ajouter un refroidisseur Voila les amis, vous avez toutes les informations pour tirer le meilleur profit de votre Shield Mini-GrowDuino. A VOUS DE JOUER ! ++ GEN Modifié mai 17, 2017 par Gen 7 Lien à poster Partager sur d’autres sites
Viker 147 Posté(e) mai 19, 2017 Partager Posté(e) mai 19, 2017 Bonjour, Excellent tutoriel clair et détaillé pour la mise en place du miniGrowduino. Toujours au top Gen! Voici ma petite contribution. Pour mon écran lcd j'ai eu un module i2C qui avait pour adresse Hexa 0x3F Si vous avez le même veillez à bien en définir l'adresse Hexa dans le code du programme (ligne 46 => #define I2C_LCD_ADDRESS 0x3F) Sur mon module le potentiomètre bleu sert à régler le contraste du lcd. Le jumper à gauche servant à activer ou désactiver le retro-éclairage peut être remplacé: - par un potentiomètre d'1 KOhm pour faire varier l'intensité du rétro éclairage ou une résistance de 220 Ohm afin d'avoir une valeur d'éclairage fixe. - par un interrupteur si vous désirez le couper manuellement. il est possible de mettre potentiomètre ou résistance plus un interrupteur. Moi j'ai opté pour une résistance fixe et une temporisation dans le programme qui coupe le rétroéclairage au bout d'un certain temps modifiable dans les constantes du début de programme. Pour le module MHZ, j'ai soudé sur celui-ci 4 pin sur les connections 19, 18, 17 et 16 afin de le brancher avec des cables dupont me permettant d'avoir une longueur de câble plus longue que le câble fourni avec le module. Pin 19 => Connecteur MHZ T Pin 18 => Connecteur MHZ R Pin 17 => Connecteur MHZ 5V Pin 16 => Connecteur MHZ GND J'ai une question pour Gen. Pourquoi branches-tu le SSR 25A sur le platine relais. N'est-il pas possible de le brancher directement entre une pin timer et gnd? Lien à poster Partager sur d’autres sites
Gen 2 807 Posté(e) mai 19, 2017 Auteur Partager Posté(e) mai 19, 2017 (modifié) Salut. Content de voir que l'on commence à participer Des tofs !!! Des tofs !!! Alors pour répondre à ta question , 2 raisons : 1- Cela fait une séparation supplémentaire entre le circuit et le 220V à plusieurs Ampères 2- La commande des relais est inversée..donc si j'envoie du 0V au relais, ... j'aurai en réponse un gros doigt. Sans compter les allumages intempestifs lors des reboot j'aurai également pu mettre false lors de l'instanciation de la classe dailyTimer, mais tous ne travaillent pas avec du HPS, certains utilisent de l'envirolite ou de la led, et de fait un SSR n'est pas nécessaire ++ GEN Modifié mai 19, 2017 par Gen Lien à poster Partager sur d’autres sites
Viker 147 Posté(e) mai 22, 2017 Partager Posté(e) mai 22, 2017 Salut, Bon quand j'aurais fini le projet, il y aura des tofs mais là toujours pas. Surtout que je rencontre des merdes avec mon intracteur qui refuse de fonctionner avec le régulateur de vitesse. (j'ai fait un post sur le sujet) Bon sinon en récap si je veux utiliser le ssr directement sur les sortie timer il faut que je mette false sur la classe dailyTimer et du coup seul les temp up down et hum up et down resteront en inversés ainsi que les moteurs? ++ Viker Lien à poster Partager sur d’autres sites
Gen 2 807 Posté(e) mai 22, 2017 Auteur Partager Posté(e) mai 22, 2017 (modifié) yop. tu as le lien de ton post à misères que je puisse jeter une bille ? (edit : j'ai trouvé) concernant ton code tu remplaceras cette ligne DailyTimer TIMER_1(TIMER1_PIN , invertedRelay ); par DailyTimer TIMER_1(TIMER1_PIN , false ); Fait quand même un test de rebot et de mise en route pour voir si ça se passe bien ++ GEN Modifié mai 22, 2017 par Gen Lien à poster Partager sur d’autres sites
Viker 147 Posté(e) mai 22, 2017 Partager Posté(e) mai 22, 2017 yop. tu as le lien de ton post à misères que je puisse jeter une bille ? (edit : j'ai trouvé) concernant ton code tu remplaceras cette ligne DailyTimer TIMER_1(TIMER1_PIN , invertedRelay ); par DailyTimer TIMER_1(TIMER1_PIN , false ); Fait quand même un test de rebot et de mise en route pour voir si ça se passe bien ++ GEN Arf oui pardon le post est dans ton : GDW #2 Régulateur de vitesse universel pour moteur synchrone/asynchrone Bon sinon je ferais les test pour le SSR du timer et je ferais un retour. Mais là du coup mon problème est surtout sur les moteurs. A moins d'avoir une correction de la platine régulatrice, je crois que je vais me retrouver à avoir le régulateur pour l'extra et un simple relais pour l'intra soit 2 vitesses (on et off) Du coup, le problème sera que la platine régulatrice pour l'Extra sera en non inversée et que l'intra sera en inversé. C'est la merde! Mais du coup je pensais que je pouvais ajouter (ma platine régulatrice étant branchée en i2c et non plus en directe avec comme adresse par exemple 0x21) #define MOTOR_ADDRESS 0x21 // pour l'extra #define MOTOR_ADDRESS2 0x20 // pour l'intra puis MotorDriver MOTOR_DRIVER(MOTOR_ADDRESS,false); // pour l'extra MotorDriver MOTOR_DRIVER2(MOTOR_ADDRESS,invertedRelay); // pour l'intra et ensuite modifier dans void runMotors tous les appels à l'intra comme ceci les appels à l'extra restant identiques if(motorList[0].activated){MOTOR_DRIVER2.setSpeed(INTRA,motorList[1].minSpeed + extra_intra_delta);} else {MOTOR_DRIVER.setSpeed(INTRA,0);} Penses-tu que la solution est la bonne? ++ Viker Lien à poster Partager sur d’autres sites
Gen 2 807 Posté(e) mai 22, 2017 Auteur Partager Posté(e) mai 22, 2017 Salut vik.. 2 sec stp, je branche mon décodeur cérébral Arf oui pardon le post est dans ton : GDW #2 Régulateur de vitesse universel pour moteur synchrone/asynchrone Bon sinon je ferais les test pour le SSR du timer et je ferais un retour. oki Mais là du coup mon problème est surtout sur les moteurs. A moins d'avoir une correction de la platine régulatrice, je crois que je vais me retrouver à avoir le régulateur pour l'extra et un simple relais pour l'intra soit 2 vitesses (on et off) Du coup, le problème sera que la platine régulatrice pour l'Extra sera en non inversée et que l'intra sera en inversé. C'est la merde! pourquoi ? - primo, l'inversion de traitement de commande c'est toi qui la définit - secondo les classes pour piloter les moteurs via regul ou via auto-transfo ne sont pas les mêmes Mais du coup je pensais que je pouvais ajouter (ma platine régulatrice étant branchée en i2c et non plus en directe avec comme adresse par exemple 0x21) oui c'est 'toutafet' possible par contre le code ci-dessous ne peut etre juste car comme cité plus haut, c'est pas les mêmes classes 'driver' de moteur. #define MOTOR_ADDRESS 0x21 // pour l'extra #define MOTOR_ADDRESS2 0x20 // pour l'intra puis MotorDriver MOTOR_DRIVER(MOTOR_ADDRESS,false); // pour l'extra MotorDriver MOTOR_DRIVER2(MOTOR_ADDRESS,invertedRelay); // pour l'intra et ensuite modifier dans void runMotors tous les appels à l'intra comme ceci les appels à l'extra restant identiques if(motorList[0].activated){MOTOR_DRIVER2.setSpeed(INTRA,motorList[1].minSpeed + extra_intra_delta);} else {MOTOR_DRIVER.setSpeed(INTRA,0);} Penses-tu que la solution est la bonne? ++ Viker ++ GEN Lien à poster Partager sur d’autres sites
Viker 147 Posté(e) mai 22, 2017 Partager Posté(e) mai 22, 2017 (modifié) Ah c'est parce que j'ai oublié un 2 comme cela ça fonctionne ou je suis encore à coté de la plaque? #define MOTOR_ADDRESS 0x21 // pour l'extra #define MOTOR_ADDRESS2 0x20 // pour l'intra puis MotorDriver MOTOR_DRIVER(MOTOR_ADDRESS,false); // pour l'extra MotorDriver MOTOR_DRIVER_2(MOTOR_ADDRESS2,invertedRelay); // pour l'intra et ensuite modifier dans void runMotors tous les appels à l'intra comme ceci les appels à l'extra restant identiques if(motorList[0].activated){MOTOR_DRIVER_2.setSpeed(INTRA,motorList[1].minSpeed + extra_intra_delta);} else {MOTOR_DRIVER_2.setSpeed(INTRA,0);} ++ Viker Modifié mai 22, 2017 par Viker Lien à poster Partager sur d’autres sites
Gen 2 807 Posté(e) mai 22, 2017 Auteur Partager Posté(e) mai 22, 2017 Quand tu veux pas comprendre, tu veux pas comprendre ! Ce ne sont pas les mêmes classes !! tu as une classe pour le regulateur (MCP23008) et une pour les commandes moteurs via relais (MCP23017) le code n'est pas le même. Cappichi amigo ? ++ GEN Lien à poster Partager sur d’autres sites
Viker 147 Posté(e) mai 22, 2017 Partager Posté(e) mai 22, 2017 Quand tu veux pas comprendre, tu veux pas comprendre ! Ce ne sont pas les mêmes classes !! tu as une classe pour le regulateur (MCP23008) et une pour les commandes moteurs via relais (MCP23017) le code n'est pas le même. Cappichi amigo ? ++ GEN Ah bah moi aussi je n'avais pas branché mon décodeur Maintenant c'est limpide. Mais du coup aurais-tu la bibliothèque pour le MCP23008 stp? ++ Viker Lien à poster Partager sur d’autres sites
Gen 2 807 Posté(e) mai 22, 2017 Auteur Partager Posté(e) mai 22, 2017 re: of course ! Téléchargement : I2C_Motor.zip ++ GEN Lien à poster Partager sur d’autres sites
Viker 147 Posté(e) mai 22, 2017 Partager Posté(e) mai 22, 2017 Merci Gen. Bon j'étudierais ça après le week-end. ++ Viker Lien à poster Partager sur d’autres sites
Gen 2 807 Posté(e) juillet 14, 2017 Auteur Partager Posté(e) juillet 14, 2017 (modifié) Salut. Wouaw ! Ca partage sec ici je vois En attendant l'arrivée de mes platines EC, j'ai commencé le schéma du contrôleur autonome. Cela devrait donner un truc dans ce genre : Il ne nécessite plus d'arduino, horloge interne intégrée protection d'inversion de polarité sur l'alim protection opto-électronique sur chaque voie permet l'utilisation de tous types de relais (de 5v à 40v) donc aucune limite de puissance possibilité d'utiliser des platine relais pour arduino gestion sur 5 vitesses de l'extra et/ou de l'intra commande par clavier affichage LCD 4x20 Dimension +/- 7,5cm x 15cm indication CO2 2 temporisateurs journaliers 2 temporisateurs cycliques 1 gestion t° Up 1 gestion t° Down 1 gestion humidité Up 1 gestion humidité Down Ce modèle est fait spécialement pour les gens qui ne touchent ni à l'électronique, ni à l'informatique. Pour les bricoleurs-arduinoteurs, eux se dirigeront vers le shield mini-Growduino (je pense en terminer l'étude d'ici 3 jours) ++ GEN Modifié juillet 15, 2017 par Gen 3 Lien à poster Partager sur d’autres sites
Gen 2 807 Posté(e) juillet 15, 2017 Auteur Partager Posté(e) juillet 15, 2017 re: Voici le projet terminé Je viens d'envoyer la platine en production pour test ++ GEN 3 Lien à poster Partager sur d’autres sites
Viker 147 Posté(e) juillet 18, 2017 Partager Posté(e) juillet 18, 2017 Bonjour, Très belle platine all in one. Bon sinon j'ai bientôt terminé mon minigrowduino mais j'ai un petit problème dans la finalisation: J'ai des relais SSR Fotek, sans doute des clones chinois, qui sont là pour switcher les lampes ils sont eux même activé par des petit relais ssr. Quand le petit relais ssr devient passant alors le Fotek s'allume et devient passant. Là c'est ok. Par contre quand le petit relais ssr devient non passant alors le Fotek reste allumé :/ J'ai essayé de mettre un transistor 2N2222 dont la gate est contrôlé par le petit ssr via un résistance de 2.2 kOhm mais j'ai le même résultat. Ce n'est qu'en coupant le lien entre le petit ssr et la gate du transistor que le Fotek se coupe. Je sèche là. Une idée? Sinon je suis près du but et donc de la photo illustratrice. ++ Viker Lien à poster Partager sur d’autres sites
Gen 2 807 Posté(e) juillet 18, 2017 Auteur Partager Posté(e) juillet 18, 2017 yop. oui, commande en direct ton SSR et tu mettras le + du relais fotek en direct sur le +5V de la platine et le moins du relais sur la sortie du minigrowduino dedié à la lampe Ainsi quand la sortie de l'arduino sera HIGH le relais se retrouvera avec deux + a ses bornes et ne s'enclenchera pas et quand l'arduino est LOW, la sortie arduino shunt sur la masse et le courant pourra passer pour alimenter ton relais N-joy!! ++ GEN Lien à poster Partager sur d’autres sites
Viker 147 Posté(e) juillet 19, 2017 Partager Posté(e) juillet 19, 2017 (modifié) Yop. Merci Gen. J'ai fait la modif mais en mettant le - du relais Fotek en direct sur le GND de la platine et le + sur la sortie du miniGrowduino dédié à la lampe car mon allumage était prévu en HIGH et non LOW. Mais le résultat est là et cela fonctionne à merveille. Sinon au final je suis parti sur des transformateur et non la platine régulatrice de vitesse car au final cela ne fonctionnait pas avec mon intracteur même avec les modifs. (En fait il faut que je refasse un autre design du pcb sans le soft start) Alors voilà comme promis les toffs. Voici tout d'abords la vue d'ensemble. Avec 10 prises (8 sur les cotés et deux déportées) Elles correspondent aux lampes, Extracteur, Intracteur, les 2 cyclics, chauffage, clim, déshumidificateur et brumisateur. L'ensemble est protégés par des fusibles en haut et en bas du boitier. En bas du boitier j'ai la sortie de la sonde température/humidité et une autre sortie pour faire évoluer le proto. En façade on retrouve le LCD, le clavier, le bouton reset et la sonde CO2 Voici le vue interne. A gauche l'arrière de la façade avec le miniGrowduino, l'arduino mega, le LCD et la sonde CO2 A droite les transformateurs, les relais SSR Fotek pour les lampes, les rampes de relais empilées pour l'extracteur, l'intracteur et autres sorties. Voici maintenant l'écran de contrôle avec les différents paramètres. N'ayant pas l'usage d'une sonde EC et pH les valeurs sont à zéro. En haut à gauche il y a un # près du ON. Il s'agit de la sécurité lors de l'allumage des lampes en cas de coupure de courant. Les lampes passeront réellement sur ON au bout de 20 min ou en pressant la touche #. Le rétro-éclairage se coupe automatiquement au bout de 1 min. Voici le menu quand on presse sur la touche * Le menu Cyclic est inchangé Dans le menu Time/Date j'ai ajouté en plus de la gestion des lampes la possibilité de changer la date et l'heure. Dans le menu Environnement J'ai ajouté un mode SECHAGE dans le mode de culture en plus de croissance et de floraison. Il permet, comme son nom l'indique, de sécher. Les extrateur et intracteur sont alors régulés selon le taux d'hygrométrie et non selon la température. Les lampes sont également désactivées. Le taux d'humidité du mode séchage utilise les valeurs programmées dans le mode croissance de jour. J'ai également ajouté la possibilité de changer l'hystérésis de la température et de l'humidité. A partir du menu principale on peux modifier les paramètres des Extracteur et Intracteur Dans le menu Extracteur/Intracteur j'ai ajouté la possibilité de modifier le temps avant que les moteurs ne répondent aux consignes afin de ne pas changer de régime constamment. Ici c'est réglé sur 5 secondes ce qui est court mais très bien pour un test. Maintenant en entrant dans l'un des menus moteurs comme ici le menu Extracteur. J'ai ajouté la possibilité de réglé la vitesse max, la vitesse min et le delta entre l'extracteur et l'intracteur en positif ou négatif créant ainsi une dépression ou une surpression. Voici le sous menu permettant de sélectionner Vmax, Vmin ou Delta. (Delta n'est réglable qu'avec l'extracteur) Ici je modifie Vmax de l'extracteur avec les lignes du dessous indiquant les limites possibles du changement. En effet Vmax ne peux dépasser le nombre de vitesse de l'intracteur et Vmax est forcément supérieur à Vmin. Voici donc la fin de la description de mon miniGrowduino et de mes ajouts et modifs. Encore un grand merci à toi Gen. ++ Viker Modifié juillet 19, 2017 par Viker 4 Lien à poster Partager sur d’autres sites
Messages recommandés