Gen

GROWDUINO [Zone de partage]

Recommended Posts

John.Do

Super projet !

Mais pourquoi des ToR (Hystéresis) sur les T° Up ou Down ?

Un PID serait bien moins chaotique non ?

Share this post


Link to post
Share on other sites
Viker

yop.

 

J'ai regardé ton code.. n'utilises pas la commande millis() c'est à proscrire car il arrive toujours un moment où elle sera en overfload. cette commande est à utiliser sur des programmes à cycles cours

utilises plutôt la commande unixtime()

 

++

GEN

 

Salut GEN,

 

tu as raison, je modifierai à l'occasion. Mais bon comme ça gère que l'extinction de l'écran ce n'est pas dramatique.

 

 

Super projet !

Mais pourquoi des ToR (Hystéresis) sur les T° Up ou Down ?

Un PID serait bien moins chaotique non ?

 

Salut John.Do,

 

Je n'ai fait qu'ajouté la possibilité de changer la valeur de l'hystérésis pour la température et l'humidité ;)

 

Mais par contre le choix de Gen d'utiliser l'hystérésis et non un pid (gen tu me corriges si je me trompe ;) ) permet de ne pas déclencher et d'éteindre le chauffage ou la clim dès le franchissement de la valeur sélectionné ce qui donnerait comme résultat une succession d'allumage et d'extinction des appareils façon clignotant. Ici se sont des valeurs limites qui sont utilisées et non une valeur moyenne. Un pid est fait pour gérer une valeur moyenne.

 

Exemple: j'ai réglé mes valeurs limites à 20°C et 24°C à 24,1°C la clim s'enclenche et ne s'éteint pas à 23,9°C mais à la valeur 23° si mon hystérésis est de 1°C. Idem pour le chauffage en dessous de 20°C et jusqu'à une valeur de 21°C.

 

Par contre un pid serait parfait pour gérer une valeur moyenne. Par exemple je veux un air à 18°C arrivant en intraction issu d'un mix d'air intérieur chaud et extérieur froid dont le mélange se fait par un clapet.

 

J'espère avoir répondu à ta question.

 

++ Viker

  • Like 1

Share this post


Link to post
Share on other sites
John.Do

Salut GEN,

 

tu as raison, je modifierai à l'occasion. Mais bon comme ça gère que l'extinction de l'écran ce n'est pas dramatique.

 

 

 

Salut John.Do,

 

Je n'ai fait qu'ajouté la possibilité de changer la valeur de l'hystérésis pour la température et l'humidité ;)

 

Mais par contre le choix de Gen d'utiliser l'hystérésis et non un pid (gen tu me corriges si je me trompe ;) ) permet de ne pas déclencher et d'éteindre le chauffage ou la clim dès le franchissement de la valeur sélectionné ce qui donnerait comme résultat une succession d'allumage et d'extinction des appareils façon clignotant. Ici se sont des valeurs limites qui sont utilisées et non une valeur moyenne. Un pid est fait pour gérer une valeur moyenne.

 

Exemple: j'ai réglé mes valeurs limites à 20°C et 24°C à 24,1°C la clim s'enclenche et ne s'éteint pas à 23,9°C mais à la valeur 23° si mon hystérésis est de 1°C. Idem pour le chauffage en dessous de 20°C et jusqu'à une valeur de 21°C.

 

Par contre un pid serait parfait pour gérer une valeur moyenne. Par exemple je veux un air à 18°C arrivant en intraction issu d'un mix d'air intérieur chaud et extérieur froid dont le mélange se fait par un clapet.

 

J'espère avoir répondu à ta question.

 

++ Viker

 

Et bien justement, le ToR fait du on/off sur la plage -2+2 ou -1+1 alors qu'un PID va lisser échantillonnage et par setpoint corriger les erreurs. C'est bien plus précis d'utiliser le PID pour éviter les on/off par gestion de consignes. Les métriques pH et EC avec compensation thermique (RTD) peuvent très bien piloter des pompes péristaltiques. Pour le pH c'est plus chiant car c'est buffer + et buffer - qu'il faut gérer.

 

 

 

 

post-869733-0-88078000-1503654960_thumb.png

Edited by John.Do

Share this post


Link to post
Share on other sites
Gen

Salut

 

Et bien justement, le ToR fait du on/off sur la plage -2+2 ou -1+1

 

 

Faux

 

Suffit d'aller y jeter un coup d'oeil à la classe pour y comprendre le fonctionnement qui n'est certainement pas chaotique. De plus c'est expliqué dans la vidéo

 

Temp Up, Temp Down, HR Up, et HR Down sont gérés par elle

Pour les moteurs, le taf se fait par le temps d'interrogation .

 

Tu as envies d'utiliser un PID, pani prob le code est libre tu peux y modifier ce que tu veux.

Mais tu n'y gagneras strictement rien

 

[edit]

PS : Ton explication est correcte Viker

 

++

GEN

Edited by Gen

Share this post


Link to post
Share on other sites
John.Do

Salut @Gen

 

 

 

Faux

 

Réponse un peu rugueuse ne laissant pas de discussion possible.  :shock:

Sans vouloir mettre le bazar, c'est la première fois que j'entends dire qu'un PID est moins intéressant que l’hystérèse pour de la gestion de consignes thermique (et autre d'ailleurs). 

Pas grave  ;-)  ! En effet, je ne vais pas forker ce projet car je pars dans une toute autre architecture pas forcement plus robuste, mais plus simple en termes d'interopérabilités et de scalabilité.

 

 

EDIT :

 

Après gérer une clim ou chauffage par On/Off est peut-être pas la meilleure des solutions.

C'est même un peu bourrin non ?

 

Fil pilote, Gradation, carte Modbus / rs232 / rs485 / IP / Vanne thermostatique / 0-10V ...

 

Donc effectivement, l’hystérésis est obligatoire sans interface promotionnelle pas de notions de consigne vraie. 

Edited by John.Do

Share this post


Link to post
Share on other sites
Gen

Re..

 

Tu affirmes qlq chose et sous entends un mode de fonctionnement que je cite : "chaotique", j'ai répondu faux, je ne vois pas où est le souci car il faut lire.. J'ai dit : Suffit d'aller y jeter un coup d'oeil à la classe pour y comprendre le fonctionnement

tu y trouveras les valeurs -1,0,+1 déterminent les pentes de travail qui commanderont les mises sous tension ou non des I/O.

 

Bonne continuation dans ton projet

 

++

GEN

Edited by Gen

Share this post


Link to post
Share on other sites
John.Do

Re...

Faut manger des carottes un peu Gen :lol: , car de prime abord cela donne pas envie !

Oui mon projet avance, ce n'est certes pas des tonnes de posts sur le forum ...

Mais je m'éclate : https://www.cannaweed.com/topic/211635-projet-de-contr%C3%B4leur-hydrobio-ponique-sur-raspberry-pi

 

@+

John

PS Edit : Cela arrive à tous le monde de pas lire 100% des posts à rallonge.

Edited by John.Do

Share this post


Link to post
Share on other sites
Gen

C'est ton avis, je le respecte, c'est cela le libre arbitre

 

Bonne continuation

 

++

GEN

Share this post


Link to post
Share on other sites
Viker

Sinon petit retour sur les relais ssr chinois que j'ai utilisé afin de me passer de relais mécaniques en pensant que c'était bien mieux.

 

Au final ils sont fragiles. Sur une rampe de 8 j'ai d'abord eue les petit fusible vert qui ont claqués par ci par là.

Du coup, je les ai remplacés par des fusibles réarmable de 2A.

Ensuite sur cette même rampe j'ai eu deux ssr qui ont claqués et que j'ai du remplacer.

 

Bref il ne sont pas cher et pas très fiable.

 

Du coup, préférez le bon vieux relais à bobine ou des ssr de meilleur qualité.

 

Sinon question sur un moteur dc on utilise une diode roue libre, quel est l'équivalent pour un moteur ac?

 

++ Viker

Share this post


Link to post
Share on other sites
Gen

heu???... poses toi cette question : à quoi sert la diode roue libre et tu auras la réponse

je te laisse réfléchir, j'y répondrai par la suite

 

++
GEN

Share this post


Link to post
Share on other sites
Roucass

Salut tout le monde

 

Message pour Gen:

 

Comme annoncé en mp, impossible d'envoyer le fichier en mp du oups je le mets ici.

 

miniGrowDuinoV1_35.zip

 

Pour les autres je vous conseil de ne pas encore prendre ce code ( erreur, d'où l'envoi à Genève, d'ailleurs merci beaucoup de ton aide), lorsque j'aurais terminer la programmation et les testé je posterais ici avec un code complet et opérationnel avec explication et photos des modifications.

 

PS: Gen en relisant le message de Viker, j'ai vu qu'il allait falloir aussi que je modifie les touches du clavier (enfin il me semble). Ainsi que l'extinction de l'écran

Edited by Roucass

Share this post


Link to post
Share on other sites
Gen

Salut.

 

T'es gentil mais le code que tu m'as envoyé est le fichier original.. comment veux-tu que je corrige tes erreurs ????

J'ai besoin du fichier .ino que tu as modifié et qui plante

 

PS: Gen en relisant le message de Viker, j'ai vu qu'il allait falloir aussi que je modifie les touches du clavier (enfin il me semble). Ainsi que l'extinction de l'écran

 

 

Ce sont des options sue Viker a développées par la suite . Je crois qu'il t'a filé le code source, regarde les modifs qu'il a faites et insères les dans ton code.. une fois que j'aurai corrigé ta version bien entendu ;-)

 

tu vois, l'arduino c'est comme le sexe, bonne préparation donne toujours satisfaction !

 

++

GEN

Share this post


Link to post
Share on other sites
Roucass

Je mettais tromper de ligne quand j'ai compresser les fichier, voilà le mien et normalement y a toute les classe .

Si il manque des classe n'hésite pas je les est sur le tel car j'ai pas de logiciel pour pouvoir les modifier ( toi tu fais comment sur l'ordinateur )

minigrowduino.zip

Share this post


Link to post
Share on other sites
Viker

heu???... poses toi cette question : à quoi sert la diode roue libre et tu auras la réponse

je te laisse réfléchir, j'y répondrai par la suite

 

++

GEN

 

Salut Gen,

 

bon une diode roue libre permet d'éviter un retour de courant dans le circuit lors de l'extinction d'un moteur qui se transforme momentanément en alternateur. La diode shunt le moteur.

 

du coup en ac comment ça se passe? il faut un condensateur non polarisé?

 

++ Viker

Share this post


Link to post
Share on other sites
Gen

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

Share this post


Link to post
Share on other sites
Gen

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

Edited by Gen

Share this post


Link to post
Share on other sites
Viker

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

Share this post


Link to post
Share on other sites
Gen

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

Edited by Gen

Share this post


Link to post
Share on other sites
Viker

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

Share this post


Link to post
Share on other sites
Gen

Klr le transistor à claqué.. ton moteur était-il souvent sollicité genre plusieurs fois par minutes ?

 

++

GEN

Share this post


Link to post
Share on other sites
Roucass

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. )

Share this post


Link to post
Share on other sites
Viker

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

Share this post


Link to post
Share on other sites
Gen

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

Edited by Gen

Share this post


Link to post
Share on other sites
Gen

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

Edited by Gen

Share this post


Link to post
Share on other sites
Roucass

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

Share this post


Link to post
Share on other sites