Forno Elétrico Para Revenimento De Aços Controlado Por Arduíno

Olá a todos!

Neste instructable, vou mostrar-lhe como construir um forno (neste caso específico ele será usado para revenimento). O processo de revenimento de um material é uma forma de tratamento térmico aplicado aos aços para corrigir a tenacidade e dureza excessiva dos aços. O processo consiste em reaquecer as peças já temperadas a temperaturas abaixo da linha inferior de transformação do aço. O sucesso do processo se encontra em manter a temperatura na faixa ideal para o revenimento do aço, que é entre 220ºC e 240ºC, por meio de um controlador digital, no caso o Arduíno.

Nas etapas a seguir descreveremos a idéia central do projeto e o passo a passo para a execução de toda a parte eletrônica envolvida, e um exemplo de construção do forno em si.

Lista de peças (parte eletrônica):

  1. Termopar tipo K Cerâmico 116 mm Bloco 14 AWG;
  2. Fio Kanthal DS 21 AWG 0,724mm, 3,729 Ω;
  3. Potenciômetro (10K) com eixo estriado;
  4. Módulo Display 7 segmentos;
  5. Módulo Dimmer para arduino/ Pic-MC-8A (220V);
  6. Kit dissipador de calor autoadesivo, Módulo conversor 24 bit hx711 p/ célula de carga (Amplificador). Além dos itens citados acima, também foram usados fios conectores para o arduíno.

Lista de peças (forno)*

  1. Tijolos refratários;
  2. Argamassa

*Lembrando que o sistema funciona para outras configurações do forno propriamente dito, aqui damos apenas um exemplo).

Step 1: Revenimento

O Revenimento é aplicado nos aços para corrigir a tenacidade e a dureza excessiva, conseguindo o aumento da tenacidade dos aços. Trata-se do reaquecimento das peças temperadas a temperaturas abaixo da linha inferior de transformação do aço.

Portanto o forno necessita manter a temperatura dentro de uma faixa pré-estabelecida (entre 220ºC e 240º C), de modo que o processo ocorra da melhor maneira possível.

Step 2: Conceitos

A idéia central do projeto é que o sistema leia a temperatura atual do forno, a corrija e controle para permanecer na temperatura solicitada.

Um termopar altamente resistente ao calor é instalado no interior do forno, responsável pela leitura constante da temperatura, a qual é indicada no primeiro display. Por tratar-se de um dispositivo extremamente sensível e fazer leituras constantes, as medidas tendem a oscilar no display, dentro de uma pequena faixa de valores, que poderia ser desconsiderada. Portanto optamos pela visualização no display ser a média entre as três últimas temperaturas lidas, o que melhorou visualmente o mecanismo sem perdas consideráveis na precisão. O aquecimento no interior do forno é feita por uma resistência, confeccionada com fio resistivo. As dimensões do fio (espessura, comprimento), capacidade resistiva e quantidade de voltas dependem do que é pretendido com o forno. No projeto em questão a resistência foi dimensionada para um fio de 0,724mm com capacidade resistiva de 3,729 Ω.m. Foram utilizados cerca de 10 metros de fio, que atuarão com uma resistência de aproximadamente 6,66 A e 220V, dando uma potencia de 15 KW. Fórmulas para o cálculo da resistência: R=ρLA Sendo: R a resistência; ρ = resistividade; L = comprimento total do fio, A = área da seção transversal.

Sabemos também que a potência é igual a quantidade de calor por unidade de tempo, e que: P=U²R U = diferença de potencial, P = potência. E: P=Qt Q = quantidade de calor, t= variação de tempo.

Os parâmetros que serão incógnita dependerão do objetivo pretendido e dos fatores limitantes do seu projeto. A resistência deve ser posicionada ao redor do forno, de preferência na região mais central, de modo que o forno seja aquecido da maneira mais uniforme possível

Step 3: Montagem Do Circuito

O passo seguinte é a montagem do sistema.
A leitura coletada pelo termopar (ligado ao amplificador HX711) é convertida para graus Celsius e apresentada no display. O usuário, utilizando o potenciômetro (o qual foi convertido no programa para variar dentro de uma faixa específica de temperatura de acordo com a variação de tensão) pode mudar a temperatura de acordo com a pretendida, a qual é indicada no segundo display. A resistência é ligada ao módulo dimmer triac, que tem como princípio de funcionamento o controle do ângulo de condução. Disparando-o em diversos pontos do sinal senoidal da rede de energia é possível aplicar a uma carga potências diferentes. Assim, se o disparo for feito no início do semiciclo, todo ele (o semiciclo de potência) poderá ser conduzido para a carga e ela receberá potência máxima. Entretanto, se o disparo ocorrer no final do semiciclo, pequena parcela da energia será conduzida até a carga que operará com potência reduzida. Abaixo reproduzimos as formas de onda, com disparos no início e no final do processo (entre esses dois extremos há toda uma gama de potências sob controle do potenciômetro):

Figura 1: Potência aplicada à carga em função do instante de disparo do TRIAC A porta representada pela entrada ZC (Zero Cross) manda um aviso para o microcontrolador de que a tensão está cruzando o zero. A Plataforma Microcontroladora, por sua vez, manda um pulso de volta para o Módulo Dimmer através da porta DIM que fará com que o módulo controle a resistência. Utilizamos também dissipadores de calor como medida de proteção, uma vez que os reguladores de tensão são dispositivos que tendem a superaquecer. Os componentes podem ser interligados entre si com o arduino com o auxílio de uma protoboard. OBS: Para dimmer Triac - Sufixo B para a rede de 110 V e sufixo D para a rede de 220 V.

Abaixo segue o programa utilizado:

#include 
#include 
#include 
#define PINO_ZC 2 //zerocross do dimmer
#define PINO_DIM 3 // dim do dimmer
int potencia = 0;  // 0 a 100 
int dimdelay=8200;
 
void zeroCross()  { 
  if (potencia >= 20){     
  delayMicroseconds(dimdelay);   
  digitalWrite(PINO_DIM, HIGH);  
  delayMicroseconds(10);      // t2
  digitalWrite(PINO_DIM, LOW); 
  }
}
class HX711 {
  uint8_t dataPin;
  uint8_t clockPin;
  uint8_t gain_ch_pulses;
 public:
  enum gain_pulses {
    CHANNEL_A_128 = 1,
    CHANNEL_A_64 = 3,
    CHANNEL_B_32 = 2,
  };
  
  HX711(uint8_t dataPin, uint8_t clockPin, uint8_t gain_ch_pulses=CHANNEL_A_128):
      dataPin(dataPin), clockPin(clockPin), gain_ch_pulses(gain_ch_pulses) {
  }
  
  void begin() {
    pinMode(clockPin, OUTPUT);
    pinMode(dataPin, INPUT);
  }
  bool is_ready() {
    return digitalRead(dataPin) == LOW;
  }
  
  int32_t read(int8_t pulses_next=-1) {
    // Define which channel will be read next (default or specified)
    int gain_ch_pulses = pulses_next < 0 ? this->gain_ch_pulses : pulses_next;
    
    // Wait for chip to become ready
    while (!is_ready());
    
    // Read the data
    int32_t data = (int32_t)shiftIn(dataPin, clockPin, MSBFIRST) << 16
      | (int32_t)shiftIn(dataPin, clockPin, MSBFIRST) << 8
      | shiftIn(dataPin, clockPin, MSBFIRST);
    
    // Configure the next measurement channel and gain
    for (uint8_t i = 0; i < gain_ch_pulses; i++) {
      digitalWrite(clockPin, HIGH);
      digitalWrite(clockPin, LOW);
    }
    
    // Extend the signal bit into the 4th data byte
    if (data & 0x800000ul)
      data |= 0xFF000000ul;
    return data;
  }
};
HX711 termopar(9, 10); //9 data; 10 clock
TM1637Display display(4, 5); //Clk 4 Dio 5 //Inicializa o display 1
const int numReadings = 10;
int readings[numReadings];      // the readings from the analog input
int readIndex = 0;              // the index of the current reading
int total = 0;                  // the running total
int average = 0;                // the average
void setup() {
  pinMode(PINO_DIM, OUTPUT);
  attachInterrupt(0, zeroCross, RISING);
  termopar.begin();
  pinMode(A0, INPUT);
  pinMode(A1, INPUT);
    for (int thisReading = 0; thisReading < numReadings; thisReading++) {
    readings[thisReading] = 0;
  }
  Serial.begin (230400);
}
void loop() {
//Temperatura de Referência 
  total = total - readings[readIndex];
  readings[readIndex] = analogRead(A0);
  total = total + readings[readIndex];
  readIndex = readIndex + 1;
  if (readIndex >= numReadings) {
    readIndex = 0;
  }
  average = total / numReadings;
  int tempref=map(average,0,1023,41,14);
  tempref=tempref*10;
  if (tempref>400){
    tempref=400;
  }
  if (tempref<150){
    tempref=150;
  }
  
//Mostra o valor no display
  display.setBrightness(0x0f); //Define o brilho do display  
  display.showNumberDec(tempref, false); //Printa
  
  
//Leitura da temperatura
  //long templ = 275;
  float x=termopar.read();
  float tensao=(x/83886.080)*20;
  float templ=(tensao*1.100713)+23.764607;
  int templdisplay=templ;  
  delay (100);
  
//Mostra o valor no display 2
  TM1637Display display(7, 6); //Clk 7 Dio 6 //Inicializa o display 2
  display.setBrightness(0x0f); //Define o brilho do display  
  display.showNumberDec(templdisplay, false); //Printa
//Calcula a resposta
  int dif=tempref-templ;
  if (dif<0) {
    potencia=0; // desligado
  }
  if (dif>=0 && dif<=100) {
    potencia=map(dif,0,100,20,90); //controlador proporcional
    
  }
  if (dif>100) {
    potencia=90; //potencia máxima
  }
  dimdelay=(8200*((100-potencia))/100);
    //Serial.print(dimdelay);
    //Serial.print("    ");
    //Serial.println(potencia);  
}
 // termopar ->24C/mV
  //A+ amareelo A- Vermelho

Step 4: Montagem Do Forno

O forno do projeto em questão foi feito com tijolos refratários e argamassa, nas seguintes dimensões:

externas: 52.00 x 23.50 x 21.50; internas: 47.50 x 13.50 x 11.50.

É importante usar uma lima oval para criar uma deformação que permita a instalação da resistência, evitando que essa entre em contato com a lâmina.

Share

    Recommendations

    • Classroom Science Contest

      Classroom Science Contest
    • Frozen Treats Challenge

      Frozen Treats Challenge
    • Pets Challenge

      Pets Challenge

    Discussions

    0
    None
    lfcostajr

    5 weeks ago

    Os includes estão em branco, usou alguma biblioteca?
    Não precisou de alimentar o termopar pelo E+ e E- do hx711?