PID sur Arduino

Page 1 sur 2 1, 2  Suivant

Voir le sujet précédent Voir le sujet suivant Aller en bas

PID sur Arduino

Message par Kjetil le Jeu 25 Aoû 2016, 09:33

Salut,

J'ai plusieurs machines espresso mais aucune avec un PID et comme j'aime bien bricoler, je me suis dit que plutot que d'acheter un kit tout fait j'allais jouer un peu avec Arduino (que je n'ai jamais utilise jusqu'a present).

J'ai sous la main une Gaggia Classic et une Rancilio Silvia qui s'y preteraient bien, maintenant yapuka...

Y a t il d'autres amateurs sur ce forum qui ont fait quelque chose de similaire et pourraient me conseiller?

A+

Kjetil


Dernière édition par Kjetil le Mar 30 Aoû 2016, 10:03, édité 1 fois
avatar
Kjetil

Date d'inscription : 24/02/2016
Machine à café : Tecnosystem 106 CL / Gaggia Classic / NS Oscar / Silvia (V1) / La Nuova Era Altea (1Gr) / Faema Duo Smart (D92 1Gr) / La Pavoni Professional (cuivre/laiton & bois)
Broyeur : Conti RR45 (aut) / Mazzer Super Jolly (aut) / NS Grinta
Nombre de messages : 1117
Localisation : Norvege

Revenir en haut Aller en bas

Re: PID sur Arduino

Message par r0bin le Jeu 25 Aoû 2016, 17:27

y'a pas mal de projets de ce type (un PID sur arduino)
sur google tu as pas mal d'infos (recherche "silvia pid arduino" ou "Gaggia PID arduino")
par ex: [Vous devez être inscrit et connecté pour voir ce lien]

perso j'ai fait mais sur raspberry, je trouve ça plus simple Wink
avatar
r0bin

Date d'inscription : 14/06/2013
Machine à café : Rok, Rocket Cellini++, Olympia Cremina 67, Peppina
Broyeur : Feldgrind 1.2, Mazzer SJ
Nombre de messages : 2323
Localisation : Hauts de Seine (92)

Revenir en haut Aller en bas

Re: PID sur Arduino

Message par Kjetil le Ven 26 Aoû 2016, 07:48

OK, merci
avatar
Kjetil

Date d'inscription : 24/02/2016
Machine à café : Tecnosystem 106 CL / Gaggia Classic / NS Oscar / Silvia (V1) / La Nuova Era Altea (1Gr) / Faema Duo Smart (D92 1Gr) / La Pavoni Professional (cuivre/laiton & bois)
Broyeur : Conti RR45 (aut) / Mazzer Super Jolly (aut) / NS Grinta
Nombre de messages : 1117
Localisation : Norvege

Revenir en haut Aller en bas

Re: PID sur Arduino

Message par r0bin le Ven 26 Aoû 2016, 10:19

c'est assez simple, il te faut un arduino (ou autre), un SSR (pour réguler la résistance) et une sonde de température (à placer au bon endroit).
Le tout coûte relativement peu cher.

Tiens nous au courant de tes avancées, cela en intéressera plus d'un sur le forum Smile
avatar
r0bin

Date d'inscription : 14/06/2013
Machine à café : Rok, Rocket Cellini++, Olympia Cremina 67, Peppina
Broyeur : Feldgrind 1.2, Mazzer SJ
Nombre de messages : 2323
Localisation : Hauts de Seine (92)

Revenir en haut Aller en bas

Re: PID sur Arduino

Message par nipoutch le Ven 26 Aoû 2016, 22:20

Hello

j'ai sur ma Sylvia un arduino qui fait office de PID avec max31855 pour gérer une sonde thermocouple et un petit afficheur 4*7segments, et un module bluetooth pour "uploader" le firmware sans tout ouvrir.





Je vais probablement ajouter un encoder rotatif pour pouvoir modifier la température d'ici quelques temps...

Si tu as des questions n'hésite pas !

[Vous devez être inscrit et connecté pour voir ce lien] : moi je suis plus à l'aise avec mon arduino et puis ça "boot"plus vite clin d'oeil
avatar
nipoutch

Date d'inscription : 02/08/2013
Machine à café : Rancilio Silvia Custom
Broyeur : Rocky Doserless (bientômatique)
Nombre de messages : 85
Localisation : Montrouge

Revenir en haut Aller en bas

Re: PID sur Arduino

Message par pootoogoo le Sam 27 Aoû 2016, 00:32

C'est un super belle intégration [Vous devez être inscrit et connecté pour voir ce lien], ça me ferait quasiment embrasser l'électronique. Haha
avatar
pootoogoo
Admin

Date d'inscription : 20/01/2012
Age : 42
Machine à café : Caravel
Broyeur : Porlex Mini
Nombre de messages : 2980
Localisation : Montréal (Qc)

Revenir en haut Aller en bas

Re: PID sur Arduino

Message par nipoutch le Sam 27 Aoû 2016, 00:46

Merci pour le compliment ! et pour l'intégration aux petits oignons merci mon imprimante 3D  I love you
avatar
nipoutch

Date d'inscription : 02/08/2013
Machine à café : Rancilio Silvia Custom
Broyeur : Rocky Doserless (bientômatique)
Nombre de messages : 85
Localisation : Montrouge

Revenir en haut Aller en bas

Re: PID sur Arduino

Message par r0bin le Sam 27 Aoû 2016, 13:26

[Vous devez être inscrit et connecté pour voir ce lien] a écrit:[Vous devez être inscrit et connecté pour voir ce lien] : moi je suis plus à l'aise avec mon arduino et puis ça "boot"plus vite clin d'oeil

d'accord avec toi, c'est plus fiable / robuste sur la durée et ca bug moins que le raspi!
je te l'ai déjà dit, mais ton installation est superbe! Wink

je serais intéressé de voir tes pièces 3D un peu plus en détail, et comment tu as intégré ta carte électronique dans la machine:
je me suis équipé récemment et je débute en la matière Langue3
avatar
r0bin

Date d'inscription : 14/06/2013
Machine à café : Rok, Rocket Cellini++, Olympia Cremina 67, Peppina
Broyeur : Feldgrind 1.2, Mazzer SJ
Nombre de messages : 2323
Localisation : Hauts de Seine (92)

Revenir en haut Aller en bas

Re: PID sur Arduino

Message par nipoutch le Dim 28 Aoû 2016, 01:16

l'intégration est assez simple en fait. j'ai 2 pièces :

1) une sorte de back panel pour fixer la carte principale, collé avec de la colle époxy. la carte elle est visée.



2) une pièce de protection "anti éclaboussure vanne 3 voies" (idem pour la colle époxy)




Le 5v est fourni par un petit transfo USB de bonne facture (le max31855 pour le thermocouple est sensible...) alimenté par l’interrupteur principal de la machine.

[Vous devez être inscrit et connecté pour voir ce lien] : le PI c'est le top pour faire une belle interface car l'arduino est incapable de gérer ça...
avatar
nipoutch

Date d'inscription : 02/08/2013
Machine à café : Rancilio Silvia Custom
Broyeur : Rocky Doserless (bientômatique)
Nombre de messages : 85
Localisation : Montrouge

Revenir en haut Aller en bas

Re: PID sur Arduino

Message par Kjetil le Mar 30 Aoû 2016, 09:21

[Vous devez être inscrit et connecté pour voir ce lien] a écrit:
j'ai sur ma Sylvia un arduino qui fait office de PID avec max31855 pour gérer une sonde thermocouple et un petit afficheur 4*7segments, et un module bluetooth pour "uploader" le firmware sans tout ouvrir.


Salut,

Joli ce que tu as fait, ca ressemble a ce que j'avais en tete, mais ce que tu as realise est bien plus "pro" que ce que je pourrai faire (pas d'imprimante 3D, etc.).

Pour l'instant j'ai une SparkFun RedBoard, un afficheur comme le tien (mais en bleu) et un Relay 10A : tu crois que c'est assez?

Pour le capteur de temperature je m'entraine avec un LM35 que j'avais sous la main, mais il me faudra autre chose a terme.

Et pour le programme, ben je ramme un peu, mes souvenirs du C reviennent lentement...

Pour l'instant j'arrive a recuperer les valeurs de temperature, a commander le relai mais il me manque tout l'algorithme qui va bien derriere pour le PID lui meme, est-ce que tu pourrais m'envoyer cette partie de ton code en MP?

A+

Kjetil
avatar
Kjetil

Date d'inscription : 24/02/2016
Machine à café : Tecnosystem 106 CL / Gaggia Classic / NS Oscar / Silvia (V1) / La Nuova Era Altea (1Gr) / Faema Duo Smart (D92 1Gr) / La Pavoni Professional (cuivre/laiton & bois)
Broyeur : Conti RR45 (aut) / Mazzer Super Jolly (aut) / NS Grinta
Nombre de messages : 1117
Localisation : Norvege

Revenir en haut Aller en bas

Re: PID sur Arduino

Message par nipoutch le Mar 30 Aoû 2016, 10:37

hello, je crois que :

le LM35 doit être OK pour ce genre d'application (150°C max).
Dans le cas du PID tu devrais utiliser un SSR plutôt qu'un relais, mais ça doit pouvoir fonctionner avec un relais(mécanique).
Par contre tu devrait plutôt utiliser un arduino nano (plus petit et à base d'atmega328 plutot que le 16U2 de ta carte) dans la majorité des cas tu n'auras pas de soucis mais certaines librairies sont incompatible avec le 16u2...

dès que possible de t'envois ça clin d'oeil


Dernière édition par nipoutch le Mar 30 Aoû 2016, 11:26, édité 1 fois
avatar
nipoutch

Date d'inscription : 02/08/2013
Machine à café : Rancilio Silvia Custom
Broyeur : Rocky Doserless (bientômatique)
Nombre de messages : 85
Localisation : Montrouge

Revenir en haut Aller en bas

Re: PID sur Arduino

Message par Kjetil le Mar 30 Aoû 2016, 10:50

OK, merci
Je vais regarder pour l'ATmega328 et le SSR
avatar
Kjetil

Date d'inscription : 24/02/2016
Machine à café : Tecnosystem 106 CL / Gaggia Classic / NS Oscar / Silvia (V1) / La Nuova Era Altea (1Gr) / Faema Duo Smart (D92 1Gr) / La Pavoni Professional (cuivre/laiton & bois)
Broyeur : Conti RR45 (aut) / Mazzer Super Jolly (aut) / NS Grinta
Nombre de messages : 1117
Localisation : Norvege

Revenir en haut Aller en bas

Re: PID sur Arduino

Message par Kjetil le Mar 06 Sep 2016, 14:17

J'ai trouve plusieurs librairies pour la fonction PID, elles tournent sur la version d'Arduino que j'ai, donc pas de probleme de ce cote la.
J'ai monte le tout provisoirement sur une Silvia apres avoir vire tous les fils qui ne servaient a rien, les thermostats, etc.
L'Arduino ne gere que la temperature, je declenche la pompe separement.
Maintenant il y a plusieurs options pour commander la resistance chauffante, soit en mode tout ou rien (le relai alimente la resistance ou pas) ou bien sur une fenetre de quelques secondes on/off (la resistance est alimentee pendant un temps donne pour chaque periode de 5s), qu'est ce que vous avez utilise?
Dans les 2 cas je trouve qu'il y a beaucoup d'inertie : la temperature va rapidement atteindre plus de 100C (je me retrouve donc avec de la vapeur meme si la consigne est 90C, par exemple) et met beaucoup de temps a diminuer apres.
Ca fait pareil chez vous?
avatar
Kjetil

Date d'inscription : 24/02/2016
Machine à café : Tecnosystem 106 CL / Gaggia Classic / NS Oscar / Silvia (V1) / La Nuova Era Altea (1Gr) / Faema Duo Smart (D92 1Gr) / La Pavoni Professional (cuivre/laiton & bois)
Broyeur : Conti RR45 (aut) / Mazzer Super Jolly (aut) / NS Grinta
Nombre de messages : 1117
Localisation : Norvege

Revenir en haut Aller en bas

Re: PID sur Arduino

Message par r0bin le Mar 06 Sep 2016, 14:34

Pour une plus grande souplesse d'utilisation, le SSR te permet de faire varier la chauffe de la résistance (10, 20, 50, 70, 100%).

Ensuite, un algorithme logiciel de type PID te permet d'ajuster le pourcentage de chauffe en fonction de la température lue et de la température cible donnée.
avatar
r0bin

Date d'inscription : 14/06/2013
Machine à café : Rok, Rocket Cellini++, Olympia Cremina 67, Peppina
Broyeur : Feldgrind 1.2, Mazzer SJ
Nombre de messages : 2323
Localisation : Hauts de Seine (92)

Revenir en haut Aller en bas

Re: PID sur Arduino

Message par Kjetil le Mar 06 Sep 2016, 15:22

Je comprends ce que tu veux dire
La j'utilise un relai et l'algorithme dont je parlais calcule la duree pendant laquelle la resistance doit chauffer, par exemple 50% du temps pour une periode de 5s, et puis ca recommence en boucle
Ca devrait en principe marcher pareil, et je vois bien quand le relai se met en route, fait fonctioner la resistance 100% du temps, puis diminue jusqu'a 0% mais visiblement c'est trop tard !
avatar
Kjetil

Date d'inscription : 24/02/2016
Machine à café : Tecnosystem 106 CL / Gaggia Classic / NS Oscar / Silvia (V1) / La Nuova Era Altea (1Gr) / Faema Duo Smart (D92 1Gr) / La Pavoni Professional (cuivre/laiton & bois)
Broyeur : Conti RR45 (aut) / Mazzer Super Jolly (aut) / NS Grinta
Nombre de messages : 1117
Localisation : Norvege

Revenir en haut Aller en bas

Re: PID sur Arduino

Message par nipoutch le Mar 06 Sep 2016, 16:05

le SSR fonctionne lui en tout ou rien (passant ou pas) et le PID ajuste la valeur de sortie en fonction d'un entrée et d'une consigne (0% à 100%). Dans mon cas le PID pilote la résistance au travers d'une fenêtre temporelle (1 sec).

il faut bien "tweaker" les valeur Kp, Ki et Kd sinon le système ne sera pas stable. pour le moment je ne travaille qu'en PI (Kp:50 Ki 0.2 et Kp:0) 2 liens intéressants pour bien comprendre et paramétré : [Vous devez être inscrit et connecté pour voir ce lien] et [Vous devez être inscrit et connecté pour voir ce lien]

@++
avatar
nipoutch

Date d'inscription : 02/08/2013
Machine à café : Rancilio Silvia Custom
Broyeur : Rocky Doserless (bientômatique)
Nombre de messages : 85
Localisation : Montrouge

Revenir en haut Aller en bas

Re: PID sur Arduino

Message par Kjetil le Ven 16 Sep 2016, 19:17

Salut,

Apres avoir remplace le capteur de temperature LM35 par une PT1000, ajuste les parametres comme toi (j'ai essaye plein de valeurs et y'a vraiment que ce couple la qui va bien) avec une petite moyenne glissante ca marche enfin.
La temperature est bien stable "au repos" mais des que la pompe se met en route et que de l'eau plus froide arrive je trouve que ca ne reagit pas tres vite : est-ce que c'est a cause du 3eme terme manquant ?
avatar
Kjetil

Date d'inscription : 24/02/2016
Machine à café : Tecnosystem 106 CL / Gaggia Classic / NS Oscar / Silvia (V1) / La Nuova Era Altea (1Gr) / Faema Duo Smart (D92 1Gr) / La Pavoni Professional (cuivre/laiton & bois)
Broyeur : Conti RR45 (aut) / Mazzer Super Jolly (aut) / NS Grinta
Nombre de messages : 1117
Localisation : Norvege

Revenir en haut Aller en bas

Re: PID sur Arduino

Message par nipoutch le Ven 16 Sep 2016, 21:36

chez moi, la température est stable et quand la pompe se met en route la température baisse d'au moins 10°c sur un double expresso. la température remonte alors tranquillement jusqu’à la consigne. Kd ne te permettra pas d’atteindre la consigne plus vite mais plutôt de ne pas dépasser celle-ci (cf graphique)



avatar
nipoutch

Date d'inscription : 02/08/2013
Machine à café : Rancilio Silvia Custom
Broyeur : Rocky Doserless (bientômatique)
Nombre de messages : 85
Localisation : Montrouge

Revenir en haut Aller en bas

Re: PID sur Arduino

Message par doubleshot le Ven 16 Sep 2016, 21:53

[Vous devez être inscrit et connecté pour voir ce lien] a écrit:Salut,
La temperature est bien stable "au repos" mais des que la pompe se met en route et que de l'eau plus froide arrive je trouve que ca ne reagit pas tres vite : est-ce que c'est a cause du 3eme terme manquant ?

C'est tout le problème de la stabilité thermique pendant le shot sur les machines à petites chaudières. Le contrôle en boucle fermée de type PID n'est pas suffisant pour que la température reste stable face à l'arrivée soudaine d'eau froide.

La solution la plus simple consiste à engager la chauffe quelques secondes *avant* le début du shot, pour faire monter la température quelques degrés au delà de la température d'équilibre en prévision de l'arrivée d'eau froide, et de donner ensuite une consigne de chauffe prédéterminée pendant le shot. Ça dépendra notamment du profil de température souhaité en sortie du groupe, de la durée désirée d'extraction shot, et surtout de la quantité d'eau froide qui doit entrer dans la chaudière -- si tu veux sortir un ristretto avec un panier de 7g, les résistances ne devront pas travailler beaucoup plus qu'à l'équilibre (et tu pourras sans doute même faire confiance au PID et à l'inertie du groupe pour assurer une stabilité acceptable); par contre si tu utiliser un panier de 21g et si tu veux un allongé, il faudra chauffer beaucoup plus (et du coup désactiver le PID pendant la durée du shot). De toute façon la température lue par ta sonde thermique sur/dans la chaudière n'aura pas grand-chose à voir avec la température d'extraction du café -- donc il ne faut pas s'y fier.

J'ai testé ce système sur ma Gaggia/Raspberry Pi, et je dois dire que ça marche plutôt bien. Tu peux essayer de regarder la fonction adjust_heating_power() et tout le sac de noeud qui en dépend dans [Vous devez être inscrit et connecté pour voir ce lien]. En gros la chauffe pendant le shot est prédéterminée en fonction de la température de consigne, du temps d'extraction choisi, du temps de préchauffage, du poids du shot et de la forme du profil de chauffe choisi (ascendant/descendant/stable). J'ai l'impression que bien souvent, j'obtiens de meilleurs résultats avec un profil de température descendant pendant le shot (j'observe alors que la température d'équilibre de ma chaudière après le shot se situe 1 ou 2 degrés en dessous de sa température de départ). Bref, le but pour moi n'est pas d'obtenir une température d'extraction constante (ce qui correspond d'ailleurs à ce que disent les utilisateurs de machines HX).

Tu as installé ton système sur ta Gaggia Classic ou sur ta Silvia?

doubleshot

Date d'inscription : 05/02/2013
Machine à café : Gaggia Classic
Broyeur : Mahlkönig Vario
Nombre de messages : 25

Revenir en haut Aller en bas

Re: PID sur Arduino

Message par nipoutch le Sam 17 Sep 2016, 00:17

je n'aurais pas mieux dit ! bravo clin d'oeil

Sur ma silvia j'active manuellement le bouton vapeur 10 seconde avant le shot et je le laisse durant toute l'extraction.
la chute de température est alors bien contenue !
avatar
nipoutch

Date d'inscription : 02/08/2013
Machine à café : Rancilio Silvia Custom
Broyeur : Rocky Doserless (bientômatique)
Nombre de messages : 85
Localisation : Montrouge

Revenir en haut Aller en bas

Re: PID sur Arduino

Message par Kjetil le Sam 17 Sep 2016, 09:33

Salut

Je l'ai "installe" sur une Silvia pour l'instant, mais il ne sera pas difficile de le mettre sur n'importe quelle machine, il n'y a rien de vraiment integre encore avec des fils qui sortent de partout.

Pour la sonde de temperature, avec juste une resistance de 1kOhm en pont diviseur et en utilisant l'Arduino pour la conversion analogique/numerique la precision n'est pas terrible, il faudrait que j'ameliore ca comme vous avec un ADC externe, quelque chose comme un delta-sigma en 24 bits.

Sinon vous mesurez la temperature ou ? je la prend sur le dessus de la chaudiere, la ou il y avait les thermostats d'origine mais ca serait peut etre mieux ailleurs, par exemple vers le bas de la chaudiere, plus pres du groupe?
avatar
Kjetil

Date d'inscription : 24/02/2016
Machine à café : Tecnosystem 106 CL / Gaggia Classic / NS Oscar / Silvia (V1) / La Nuova Era Altea (1Gr) / Faema Duo Smart (D92 1Gr) / La Pavoni Professional (cuivre/laiton & bois)
Broyeur : Conti RR45 (aut) / Mazzer Super Jolly (aut) / NS Grinta
Nombre de messages : 1117
Localisation : Norvege

Revenir en haut Aller en bas

Re: PID sur Arduino

Message par nipoutch le Sam 17 Sep 2016, 10:48

Me concernant j'ai placé ma sonde de température au niveau de l'ancien thermostat.
Je ne sais pas si c'est la meilleur position ne n'est pas fait beaucoup de test.

Adaftuit vend une board à base de ADS1015 (12bit) ou ADS1115 (16bit) mais il doit surement en exister d'autre avec des librairies déjà prête chez d'autre vendeur. J'ai testé c'est top !
avatar
nipoutch

Date d'inscription : 02/08/2013
Machine à café : Rancilio Silvia Custom
Broyeur : Rocky Doserless (bientômatique)
Nombre de messages : 85
Localisation : Montrouge

Revenir en haut Aller en bas

Re: PID sur Arduino

Message par doubleshot le Sam 17 Sep 2016, 15:12

Tu peux aussi essayer le MAX31865, qui convertit en un signal digital la resistance de ton RTD PT1000.

[Vous devez être inscrit et connecté pour voir ce lien]

Il existe des cartes toutes prêtes pour Arduino, avec des librairies (à vérifier).

Sur ma Gaggia, j'ai placé la sonde thermique au même endroit que le thermostat (donc sur la surface de la chaudière). Du coup, ça "swingue" beaucoup pendant l'extraction (alu de la chaudière très conducteur, et resistance placées sur le corps de la chaudière, juste au dessus de la sonde...). Sur ta Silvia, les lectures seront probablement plus stables durant les shots.

doubleshot

Date d'inscription : 05/02/2013
Machine à café : Gaggia Classic
Broyeur : Mahlkönig Vario
Nombre de messages : 25

Revenir en haut Aller en bas

Re: PID sur Arduino

Message par Kjetil le Dim 18 Sep 2016, 09:30

J'avais regarde ce MAX31865 mais il est difficile a trouver ici

Est-ce que vous connaissez d'autres convertisseurs analogiques/numeriques plus courants et faciles a mettre en oeuvre?
avatar
Kjetil

Date d'inscription : 24/02/2016
Machine à café : Tecnosystem 106 CL / Gaggia Classic / NS Oscar / Silvia (V1) / La Nuova Era Altea (1Gr) / Faema Duo Smart (D92 1Gr) / La Pavoni Professional (cuivre/laiton & bois)
Broyeur : Conti RR45 (aut) / Mazzer Super Jolly (aut) / NS Grinta
Nombre de messages : 1117
Localisation : Norvege

Revenir en haut Aller en bas

Re: PID sur Arduino

Message par nipoutch le Lun 26 Sep 2016, 00:09

[Vous devez être inscrit et connecté pour voir ce lien] : tu utilises quoi comme sonde de température ?
avatar
nipoutch

Date d'inscription : 02/08/2013
Machine à café : Rancilio Silvia Custom
Broyeur : Rocky Doserless (bientômatique)
Nombre de messages : 85
Localisation : Montrouge

Revenir en haut Aller en bas

Re: PID sur Arduino

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Page 1 sur 2 1, 2  Suivant

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum