Ir para conteúdo

Fazendo um controlador arduino para máquina de café espresso


Postagens recomendadas

Pintei de branco brilhante. Para combinar com a gaggia coffe, que é dessa cor.

Usei uma tinta a óleo, normalmente utilizada para fazer laca.

Ainda está secando lá em casa. Devia ter utilizado spray branco brilhante, no lugar. Seria mais rápido.

 

Já fiz a solda dos conectores (XLR).

Os demais são aparafusáveis, estilo fonte de notebook.

Link para o comentário
Compartilhar em outros sites

A máquina já está na sacola para a instalação do controlador.

Vou mostrar aqui suas entranhas:

 

15340130426_f160208fb2_k.jpg

 

Confesso que ela ficou um pouco tímida, mas uma conversa no pé do ouvido (e uma chave de fenda) resolveu kkkkkkk.

Link para o comentário
Compartilhar em outros sites

Apreendi da pior maneira que a bomba não suporta variação de potência. Tive que mudar o código de analog para digitalWrite na bomba.

Vou implementar, no futuro, variação por pulsos de milissegundos.

Link para o comentário
Compartilhar em outros sites

Tem que ver se seu SSR faz algum tipo de sincronia com a rede, o que pode atrapalhar. Por exemplo, caso ele só ligue/desligue no próximo zero crossing.

 

Além disso, se quiser precisão, vc também precisará de sincronia com o ZC, para saber exatamente quando ligar/desligar.

Link para o comentário
Compartilhar em outros sites

Pois é, acho que teria que partir para a adição de um circuito zero crossing. Mas, aí, o uno já não tem portas sobrando em face dos inúmeros pins ocupados pelo Keypad. Por hora, vou deixar como está (sem pressão variável). Mais para frente, posso adicionar uma bomba extra só para lidar com a preinfusão (que seja DC, ao invés de AC) ou partir para o uso do arduino mega.

 

Ainda tenho que resolver uns bugs no sketch, que notei com o uso nesse final de semana.

 

Vai ser um longo caminho.

Ainda tive um prejuízo considerável esse fim de semana. Quando fui tirar o rocket switch da gaggia para trocar os fios, um lado emperrou. Fui usar uma chave de fenda na presilha e quebrei o switch. Foi mola para tudo quanto é lado.

A peça de reposição vai sair quase o preço que paguei na máquina. É, para não dizer um palavrão, remeto ao Estado do qual Miami é capital.

Link para o comentário
Compartilhar em outros sites

Acho que o outro nome reflete melhor meu sentimento de frustração, rss.

 

Segue video de uma extração (era a torra da grenat, bem clara. Por isso, menos crema).

 

Link para o comentário
Compartilhar em outros sites

Já faz três dias que estou usando o controlador umas duas a quatro vezes por tarde (hoje, já foram duas extrações, porque cedi, gentilmente, meu café a um colega). Dei uma pesquisada na web e o controle da pressão pelo acionamento da bomba AC é, de fato, complicado, porque, necessitaria de um controle por fase (via triac) e um circuito zero crossing, sendo que não é garantia de que funcionará mesmo assim.

 

Cito os seguintes posts.

 

http://www.picaxeforum.co.uk/archive/index.php/t-3868.html

 

AC motors are not as easy to speed control as DC motors; their torque is related to both the applied voltage and the applied frequency. This is known as the Volts:Hz ratio. In order to maintain torque at a speed other than its rated speed, you need to adjust the frequency in proportion to the voltage.

If you want to do it right, you rectify the AC into a DC bus and then use IGBTs to chop up the bus (using PWM) to generate an AC waveform at the frequency and average voltage you need. This is not quite as simple as it sounds, and single-phase AC motors have capacitors which are the sworn enemies of active devices such as IGBTs.

All is not lost, though: If you can live with the torque drop-off you can simply phase back the voltage applied to the motor using a triac. Use an optocoupler to detect when the AC wave crosses zero and then use that as a reference point to drive a timer which controls where in the AC wave that you turn on the triac. This is classic phase angle firing or phase angle control and works for general dimmer applications for lighting and heating.

You have something in your favour: most water pumps are a cube-log load; the torque requirements drop off drastically as the speed of the pump drops. If you have a positive-displacement type of water pump (piston pumps) you will not be so lucky, but centrifugal and impeller type pumps are fairly easy to slow down. You should be able to get close to a 2:1 speed reduction and still move water, but no more. Also remember that you may not be able to meet the static head requirements of your system if you slow down too much; the pump simply will not be able to make the head pressure required. You won't break anything, but it may not work as well as you want.

All of this should be VERY doable with an arduino or other small microcontroller. I used to design three phase motor controllers using the PIC microcontrollers available in the late 90s. Just keep in mind that you will be playing with line voltage; use optical isolation both for detecting zero crossings and for driving the thyristor, and work slowly and deliberately when you're testing.

Note that if you just want a knob to turn down the pump you can do it without any microcontroller at all using a diac and a triac. Do some web searches for resistive heater controllers or soldering iron temperature control, or "phase angle" triac controllers. Tons of examples online.

Link para o comentário
Compartilhar em outros sites

Dei uma mexida no código.

Agora, introduzi um bypass para o aquecimento inicial (minha máquina esquenta muito rápido e estava jogando água fora, além de fazê-la soar como uma chaleira), bem como um botão dedicado para um flush (intermitente) de 5 segundos (para testar se, com isso, consigo variar a pressão da bomba).

Como não consegui reduzir a pressão (ainda), dispensei os botões dedicados que fazem préinfusão. Vou fazer uma extração filmada agora. Daqui a pouco posto aqui.

Link para o comentário
Compartilhar em outros sites

Guilherme acho que voce ta pensando no motor AC mas nossa bomba é pulsante, nao motor, ou reduzimos a frequencia ou a intensidade ou ate imagino que PWM possa funcionar de algum jeito, como a twin fica fazendo no vapor, pulsando a bomba, só acho que devam ser mais e mais proximos.

Na verdade nossas bombas são iguais aquelas campainhas de antigamente, vibram na frequencia de alimentaçao, deve dar pra brincar com isso via pwm.

Link para o comentário
Compartilhar em outros sites

Lisca,

Estou usando justamente um controlador PWM. O problema é que sem emparelhar a frequência (zero crossing), não dá para fazer a bomba funcionar direito.

Link para o comentário
Compartilhar em outros sites

e se fizer pulsos um pouco mais longos, que garanta uns ciclos de cada vez dai deve ser possivel a bomba funcionar por pouco tempo e ir pulsando, sei la, algo como 1segundo por pulso ou meio, daria para a bomba cumprir 60 ou 30 ciclos mesmo comecando fora do zero.

Link para o comentário
Compartilhar em outros sites

acho que o problema é quando a frequencia do pwm nao permite mais do que um ciclo dai a bomba nao consegue completar pelo menos um pulso.

se incluir pelo menos un 3/60 seg deve dar pra um pulso completo da bomba no minimo.

Link para o comentário
Compartilhar em outros sites

E como já disse, acho o mais simples depois da sincronia com o zc, mandar ciclos inteiros mas "só de vez em quando" de acordo com a potência que se quer.

 

50% de modulacao seria:

- Liga uma senoide, a bomba vai dar um pulso, durando 1/60s ou 16.7 ms.

(na verdade o pulso em si dura metade disso, pois a bomba só funciona em um sentido do ciclo)

- Desliga o próximo ciclo

- repete

 

25%, liga um ciclo, desliga três, repete

 

E assim por diante para se conseguir potências e pressões diferentes.

 

Claro que não haverá resolução ótima. E só testando para checar se é adequado.

Link para o comentário
Compartilhar em outros sites

Vou ver se implemento o controle zero cross.

Encomendei um medidor de pressão para acoplar no porta filtro, a fim de aferir empiricamente como resultará o funcionamento via pulsos mais longos.

Link para o comentário
Compartilhar em outros sites

Valeu.

Tinha achado esse outro aqui, que usa o mesmo opto. Vou ver se compro as peças no início da semana que vem para fazer o circuito.

De volta à bancada rss.

Link para o comentário
Compartilhar em outros sites

O Erez faz a pre-infusao manualmente, monitorando a pressão e pressionando um botão extra:

 

https://www.youtube.com/watch?v=xe85V9XPZRI#t=78

 

Seria fácil automatizar esta operação? Funcionaria como um termostato: A potência enviada à bomba é sempre 100%. Só precisa definir um intervalo de operação, por exemplo: a bomba desliga em 2,2 bar e re-liga em 1,8 bar 

Link para o comentário
Compartilhar em outros sites

Lucas,

Essa era a idéia desde o início. Por isso, encomendei um sensor de pressão. Contudo, depois, descobri que vou precisar, também, de um circuito zero cross.

Estou esperando o sensor chegar, para prosseguir com as modificações.

Por ora, está funcionando bem, mas sem preinfusão.

Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...

Já faz mais de um mês que estou usando a máquina diuturnamente após as modificações. Posso atestar que valeu muito a pena. Já estou com algumas peças aguardando instalação. Dentre elas um relê mecânico (no lugar do relê ssr) que vou usar para controlar a bomba. Acho que os pulsos de meio segundo serão suficientes para gerar a pressão necessária à preinfusão e, se der realmente certo, me livro de adicionar mais um circuito elétrico (zero crossing e triac) ao esquema. Tive um probleminha com o relê que havia usado nas resistências, que apresentou mal funcionamento (resultado de falta de controle de qualidade de produto chinês), mas que, substituído por outro, está funcionando 100%. O relê que está atualmente na bomba só funciona adequadamente quando há sincronia com a rede elétrica (assim, às vezes, ele demora em torno de um segundo para acionar a bomba, mesmo estando setado para 100% (substitui a linha analogWrite por digitalWrite especificamente com a finalidade de resolver o problema de controle via PID, que, às vezes, demorava um pouco para saltar de 0 para 100% no output). Isso, contudo, será resolvido pela troca do relê ssr por um relê shield. O relê das resistências, vou manter o SSR, porque elas podem ser controladas por ele de forma satisfatória, a despeito de não sincronizado com a rede elétrica.

 

Uma coisa que me intrigou é a diferença entre meu controlador e o kit da auber que está instalado na classic. Meu controlador, em face dos parâmetros P I D que escolhi, tive que setar a TEMP SETPOINT em 97ºC. A resposta ficou bem rápida e, ainda assim, um pouco preditiva, de forma que ele atua estabelecendo output em 100 assim que a temperatura, baixando, chega aos 98ºC. Em contrapartida, a temperatura da caldeira fica sempre em torno de 99, 100ºC durante todo o tempo de inatividade, o que, com bastante tempo, faz a água da caldeira evaporar.

Para amenizar isso, estabeleci uma tecla dedicada para flushs de 5 segundos. Duas apertadas enchem a caldeira deixando a máquina em ponto de bala para a extração.

 

Sei que o ideal seria uma extração por peso, com a adição de uma balança para medir a massa resultante. Mas, destaco, a extração automatizada por tempo também é bem eficaz, uma vez definida a moagem para o café. Tenho obtido mesma quantidade de líquido na xícara, repetidamente, uma vez definida a moagem para o mesmo café.

 

A estabilidade da temperatura também é outro ponto forte. Está até melhor do que a da classic (o que me faz pensar que devo rever os parâmetros do PID da auber).

 

Em suma, plenamente satisfeito, ainda que não tenha concluído totalmente o projeto.

Link para o comentário
Compartilhar em outros sites

O Erez faz a pre-infusao manualmente, monitorando a pressão e pressionando um botão extra:

 

https://www.youtube.com/watch?v=xe85V9XPZRI#t=78

 

Seria fácil automatizar esta operação? Funcionaria como um termostato: A potência enviada à bomba é sempre 100%. Só precisa definir um intervalo de operação, por exemplo: a bomba desliga em 2,2 bar e re-liga em 1,8 bar 

 

Penso em automatizar essa operação. É relativamente fácil. Seria necessário apenas adicionar algumas linhas no código para estabelecer o intervalo necessário para o acionamento da bomba na preinfusão.

 

Acho que nem seria necessário o sensor de pressão para isso. Bastaria usar um medidor analógico de pressão como esse daqui e averiguar que intervalo é o melhor para chegar a uma pressão de dois bar em 5 segundos. Depois disso, ainda que exista uma variação de pressão, ela não seria expressiva suficiente para inviabilizar a preinfusão. Seria apenas uma rotina que seria chamada no início de toda extração. Algo relativamente simples de se implementar.

 

Bom, o meu medidor de pressão já está no Brasil. Falta chegar lá em casa, preferencialmente, sem imp de imp, uma vez que o preço é inferior a 50 doletas.

 

Já o sensor vai demorar bem mais para chegar aqui.

Link para o comentário
Compartilhar em outros sites

Curioso isso do SSR da bomba demorar ~1 s para ligar. Acho que não adiantaria sincronizar com a rede, pois em 1 segundo há 60 ciclos (120 zc), então parece que isso não resolveria. Talvez o certo seria tentar outro modelo de SSR.

Link para o comentário
Compartilhar em outros sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Processando...
×
×
  • Criar Novo...