Ir para conteúdo

Fazendo um controlador de temperatura com arduino


Postagens recomendadas

Raspberry pi serve pra qualquer coisa, é um PC que vc pode instalar Linux, o céu é o limite.

Pra comunicação com periféricos de baixo nível ele tem o GPIO que dá até para acoplar um arduino shield através de um bridge.

Link para o comentário
Compartilhar em outros sites

Só deve ter poucos pinos, não? Novamente, i2c é uma boa, ou se apenas tiver SPI, que seja.

 

Gosto da possibilidade que o Arduino Yun trará também, num preço bom. Disponível o Wifi e um SoC parrudinho com Linux para tarefas mais pesadas, já com comunicação com o Atmel.

Link para o comentário
Compartilhar em outros sites

Isso mesmo. E uma interface XK18y de 44 pinos e protocolo REDBONE V.12 também funfa desde que o programador conheça Assembly padrão 8088 e tenha um transmissor de alta freqüência com impedância reversa e sincronismo HUD H8 trifásico de baixa latencia...

 

;)

Link para o comentário
Compartilhar em outros sites

Estudei hoje a comunicação serial SPI do Arduino, vai dar para fazer tudo com o Uno sim.

Quem quiser duas medições usa dois chips em cascata.

Link para o comentário
Compartilhar em outros sites

um aviso sobre o adaptador bluetooth para arduino.

o Link que eu coloquei uns posts atrás é apenas para a placa que recebe o chip bluetooth, portanto não é uma placa filha completa.

recomendo comprar a placa filha completa pois a solda dessa plaquinha é muito delicada.

Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...

Ontem chegou meu shield sensor termopar. Como já tinha me adiantado por aqui e comprado a arduino e o protoboard, hoje montei na placa e testei. O sensor é muito bom. Agora vou partir para a programação do PID, pois os reles ssr vou ligar direto na arduino. Segue o mini video de teste:

 

 

 

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

Seria possível a ligação de mais de um termopar por placa ? Talvez 3 termopares colocadas em posições diferentes do forno e sendo feito uma media deles desse um resultado estatisticamente mais fiel . Existe algo assim ? Seria,viável ?

Link para o comentário
Compartilhar em outros sites

As posições diferentes são úteis para entender melhor o forno. No caso do tambor girando, acho útil ter uma fora do tambor (forno), dentro do tambor no ar, e dentro no tambor nos grãos. Não é o caso do forno do Guilherme. Ele pode colocar algum sensor mais perto da resistência (não muito perto) para saber quão quente está a fonte de calor.

 

Para mais sensores, o TC4 é ideal. Pena que o Jim não está produzindo ao menos as placas.

 

Eu estou num dilema de como fazer o sensor para a DC Mini, pois queria ao menos 0,5°C de precisão. Esse chip, por exemplo, deve dar 1-2°C. Para torra não faz tanta diferença. O TC4 é bem preciso, mas aí entra outro problema: o termopar pode descalibrar ao longo do tempo, ideal é sempre dar uma verificada (por exemplo em água fervendo). Ler PT100 é um saco...

 

Márcio.

Link para o comentário
Compartilhar em outros sites

O chato, mesmo sendo esforçado, é ser um newbie em programação. Até agora (24h), só consegui fazer o arduino funcionar como um PID comum e, o pior, sem o frontend que permite acrescentar os parâmetros on the fly. Muita frustração.

Link para o comentário
Compartilhar em outros sites

Depois de algumas horas de sono, parece que a cabeça começa a funcionar melhor. Consegui fazer o arduino funcionar com o frontend gráfico. Meu próximo passo é programar rampas.

 

Video:

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Carneiro,

Porque não compra dois shields max31555? Você renomeia a biblioteca de um deles e usa os dois ao mesmo tempo no arduino. Quem sabe num mega?

Link para o comentário
Compartilhar em outros sites

Guilerme, tentei lhe enviar uma mp, mas não consegui...segue ela..

 

 

Olá Guilherme!

sou um cervejeiro artesanal e estou pesquisando para automatizar uma parte da produção que é muito trabalhosa...

Preciso justamente de um controlador desses ae...

Um cervejeiro da austria me mandou um projeto com as informações necessárias...

entretanto sei muito pouco (ou quase nada) sobre eletronica...

 

o projeto é esse:

http://www.mediafire.com/download/6i78he4c8k5kalt/The_Brauduino.zip

 

e deve ter algo que o ajude no seu projeto...

 

dai pergunto quanto vc cobraria para montar um pra mim!

 

agradeço a atenção e desculpe qualquer coisa!

abraço!

Link para o comentário
Compartilhar em outros sites

Eu queria mais precisão. Agora, procurando, vi essa plaquetinha montada com o MAX31855T:

 

http://www.ebay.com/itm/MAX31855-K-T-R-J-Type-Thermocouple-Module-arduino-compatible-MAX6675-/111133370195

 

A Maxim não diz qual é a precisão típica do chip, só o erro máximo. Teria que testar... :)

 

Uma coisa chata em caldeiras de café é que os termopares tendem a descalibrar com o tempo, e 1-2°C podem fazer certa diferença. Mas a vantagem de um termopar bom é que pode ser fino, só a pontinha é que mede a temperatura e portanto responde bem rápido.

Link para o comentário
Compartilhar em outros sites

Pelo que vi, a precisão é de 0,2•C.

 

Mudando de assunto,

 

Hoje adaptei outro programa para fazer o arduinoPID funcionar com rampas pre-programadas, ligando a ventoinha de ar quente/frio no inicio e no final da torra (resfriamento). Próxima etapa, fazer esse programa funcionar com o pidfrontend, que já compilei no processing.

 

Não pude encarar modificar o programa do TC4C, em razão de vários pontos: meu controle não é por potência, mas SSR simples (liga/desliga); o programa foi escrito em cima de quatro sensores, enquanto, por ora, só uso um; o programa é de uma complexidade bem acima da minha capacidade de entendimento de programação.

Link para o comentário
Compartilhar em outros sites

Peço ajuda aos navegantes:

 

Meu sketch "stain" está quase pronto e a ligação do arduino está bem simples (o que facilita muito para os newbies como eu).

No sketch original, havia cinco rampas predefinidas. Na minha modificação, defino tais rampas via pid_frontend (processing), por meio do parâmetro SETPOINT.

 

O problema que estou enfrentando e que, por ora, não consegui transpor é que, embora eu consiga definir as rampas antes de iniciar o loop, o parâmetro int Tprofile [] = {(a), (B), (f), (d), (e)}; // Temperature profile (phase 1, 2, 3, etc) não as está guardando. Não sei o que estou fazendo errado. Portanto, peço ajuda aos navegantes.

O link do sketch é:

 

https://docs.google.com/document/d/1-V8xJJAgDPwT3m5YKP0U8bi5l9vbdFPhFzTjKueaHyg/edit?usp=sharing

 

Valeu

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Ajustes realizados e arduino PID testado.

 

É bem rudimentar, perto daquele que o LEOBSB pretende implementar. Mas, já adianto, é o mais barato e simples que é possível implementar como PID conectado ao computador. De quebra, da para controlar tb uma ventoinha, para ajudar no resfriamento. Nem o shield LCD foi necessário.

 

Link para o comentário
Compartilhar em outros sites

O chato, mesmo sendo esforçado, é ser um newbie em programação. Até agora (24h), só consegui fazer o arduino funcionar como um PID comum e, o pior, sem o frontend que permite acrescentar os parâmetros on the fly. Muita frustração.

 

Parabéns Guilherme, estou de volta!

As minhas peças estão quase todas aqui, exceto o arduino :(

Chegou o motor de 16rpm, em princípio deu conta do recado. Vou tentar montar o forno e funcioná-lo com pid para garantir que torra café e depois vou dar uma olhada na programação.

 

Mas, apossando-me das palavras de leobsb, como sou brasileiro e não desisto nunca, vou continuar dando murro na ponta da faca até ela ficar cega.

 

é nóis.

 

Ajustes realizados e arduino PID testado.

 

É bem rudimentar, perto daquele que o LEOBSB pretende implementar. Mas, já adianto, é o mais barato e simples que é possível implementar como PID conectado ao computador. De quebra, da para controlar tb uma ventoinha, para ajudar no resfriamento. Nem o shield LCD foi necessário.

 

 

eu não tenho ventoinha mas vou colocar um controle para o motor de girar o tambor.

 

sobre as temperaturas do TC4C, comprei um sensor baratinho para usar do lado de fora e manter duas leituras de temperaturas, que pelo que lí é o mínimo que ele trabalha.

Vou começar a ler se sketch e o do TC4C essa semana.

Link para o comentário
Compartilhar em outros sites

Depois do meu ultimo post aqui, transformei o meu arduino em OSPID. Ta funcionando que é uma beleza. Umas poucas modificações no codigo do BRETT e voi la.

Link para o comentário
Compartilhar em outros sites

Estive olhando o sketch do tc4 e acho que sem ao menos um dos chips controladores não rola não. As modificações no código teriam que ser bem extensas e com maior profundidade (leia-se aqui conhecimento de programação mais avançado).

Link para o comentário
Compartilhar em outros sites

Um dos chips controladores? A placa TC4 tem um conversor A/D, MCP3424, um sensor de temperatura local, MCP9800, e uma EEPROM. É necessário ter a temperatura próxima aos conectores dos termopares pois se determina a temperatura na ponta pela diferença entre a ponta e a conexão. Claramente, um chip dedicado como o MAX31855 tem isso internamente (que é chamado de "cold junction compensation").

 

O que teria que mudar do código do TC4 é apenas como ler a temperatura, ou seja, se vai usar um leitor próprio com outra biblioteca, não precisa incluir a dele feita para o MCP3424 e substitui a leitura de temperatura pelo seu código. Também teria que remover o código que lê ou escreve na EEPROM, exceto se tiver alguma plaquinha com essa EEPROM que usa i2c. Mas isso se quiser aproveitar o que já foi feito lá para PID ou para se comunicar com o Artisan.

 

Márcio.

Link para o comentário
Compartilhar em outros sites

o max31855 tem tudo para calcular a temperatura já embutido. É um pouco chatinho em relação à sensibilidade a eletricidade estatica. (editado - falei besteira - vi depois que eu reli). Eu resolvi esse problema isolando completamente o sensor termopar da parte metálica do forno.

 

O problema em relação à leitura de temperatura, é que o código do tc4c, em relação a isso, é um pouco chato, porque envolve várias linhas no sketch relacionadas a forma de cálculo dos dados lidos pelo sensor que vem no tc4 shield. Não se limita a uma pequena alteração (ao menos acho que não). Para mim, que não tenho um conhecimento aprofundado, seria um processo de erros e acertos. Exemplifico:

 

 

t1 = D_MULT * temps[0];

t2 = D_MULT * temps[1];

 

void get_samples() // this function talks to the amb sensor and ADC via I2C

{

int32_t v;

float tempC;

 

for( int j = 0; j < NCHAN; j++ ) { // one-shot conversions on both chips

adc.nextConversion( j ); // start ADC conversion on channel j

amb.nextConversion(); // start ambient sensor conversion

delay( MIN_DELAY ); // give the chips time to perform the conversions

ftimes[j] = millis(); // record timestamp for RoR calculations

amb.readSensor(); // retrieve value from ambient temp register

v = adc.readuV(); // retrieve microvolt sample from MCP3424

tempC = tc[j]->Temp_C( 0.001 * v, amb.getAmbC() ); // convert to Celsius

if( celsius )

v = round( tempC / D_MULT ); // store results as integers

else

v = round( C_TO_F( tempC ) / D_MULT ); // store results as integers

temps[j] = fT[j].doFilter( v ); // apply digital filtering for display/logging

ftemps[j] =fRise[j].doFilter( v ); // heavier filtering for RoR

}

};

Editado por Guilherme Torres
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...