Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Controle de Ventoinha PWM 4 Pinos 25 kHz com Arduino Uno – Montagem, Código e Teste

Componentes e Materiais

Componente Quantidade
Ventoinha Axial, 12 VDC (4 pinos PWM) 1
Arduino UNO 1
Cabo USB-A para Mini-USB 1
Jumpers (genéricos) 1 conjunto

Aplicativos e Serviços Online

Sobre o Projeto

Sempre me perguntei como controlar ventoinhas PWM de 4 pinos. Tinha 5 unidades guardadas e decidi testar. Os valores de frequência podem ser ajustados entre 125 Hz e 8 MHz, bem como ciclo de trabalho variável. O circuito utiliza o modo 10 PWM de fase corrigida no timer 1: OCR1A (pino 9) e ICR1 (pino 10). Foi necessária alguma depuração para descobrir isso, e possuo um osciloscópio portátil que facilitou muito a visualização das frequências e ciclos de trabalho, eliminando a adivinhação.

Controle de Ventoinha PWM 4 Pinos 25 kHz com Arduino Uno – Montagem, Código e Teste
Controle de Ventoinha PWM 4 Pinos 25 kHz com Arduino Uno – Montagem, Código e Teste

Recomendo fortemente que você consulte o datasheet da sua ventoinha, pois o pino de controle no meu caso era amarelo (normalmente referido como fio de tacômetro). Certifique-se também de encontrar a faixa de frequência aceitável (ou FREQUÊNCIA CENTRAL) para sua ventoinha. Você pode precisar alterar a frequência no código para atender às suas necessidades. Finalmente, você precisará de uma boa fonte de alimentação (a minha é uma PSU ATX convertida de um PC antigo).

NOTA: Tentei usar outro timer para controlar 2 ventoinhas independentemente. Não funciona. A razão é a resolução do segundo timer ser menor (16 bits vs 8 bits). Isso significa que os passos nos ajustes de frequência e ciclo de trabalho ficam ruidosos e as formas de onda se deformam progressivamente. Também não é tão simples ao inserir valores.

Código

const byte OC1A_PIN = 9;
const byte OC1B_PIN = 10;
const word PWM_FREQ_HZ = 25000; // Ajuste este valor para alterar a frequência (em Hz!) (atualmente 25 kHz)
const word TCNT1_TOP = 16000000 / (2 * PWM_FREQ_HZ);

void setup() {
  pinMode(OC1A_PIN, OUTPUT);
  // Limpa registradores de controle e contagem do Timer1
  TCCR1A = 0;
  TCCR1B = 0;
  TCNT1 = 0;
  // Configuração do Timer1
  // COM1A(1:0) = 0b10 (Saída A clear rising/set falling)
  // COM1B(1:0) = 0b00 (Saída B operação normal)
  // WGM(13:10) = 0b1010 (PWM fase corrigida)
  // ICNC1 = 0b0 (Cancelador de ruído captura entrada desabilitado)
  // ICES1 = 0b0 (Seleção de borda captura entrada desabilitada)
  // CS(12:10) = 0b001 (Seletor clock entrada = clock/1)
  TCCR1A |= (1 << COM1A1) | (1 << WGM11);
  TCCR1B |= (1 << WGM13) | (1 << CS10);
  ICR1 = TCNT1_TOP;
}

void loop() {
  setPwmDuty(0);
  delay(5000);
  setPwmDuty(25); // Altere este valor 0-100 para ajustar ciclo de trabalho
  delay(5000);
  // setPwmDuty(50);
  // delay(20000);
  // setPwmDuty(75);
  // delay(20000);
  // setPwmDuty(100);
  // delay(20000);
}

void setPwmDuty(byte duty) {
  OCR1A = (word)(duty * TCNT1_TOP) / 100;
}

Esquemático

Controle de Ventoinha PWM 4 Pinos 25 kHz com Arduino Uno – Montagem, Código e Teste

Processo de manufatura

  1. Controle de Brilho de LED com PWM via Botão no Arduino Mega
  2. Controle seu Ventilador de Teto com Alexa: Guia Passo a Passo
  3. Relógio em Tempo Real com Arduino para Horários de Oração Islâmica
  4. Mealheiro Inteligente: Controlar Aceitador de Moedas com Arduino Nano
  5. Controlar um LED via Bluetooth com Arduino – Guia DIY Simples
  6. Controle Dois Motores de Passo com Arduino Nano e Joystick – Tutorial Simples
  7. Como Exibir Imagens em LCD TFT 1.17" com Arduino UNO
  8. Controlando Matriz de LED 8×8 com Arduino Uno: Guia Passo a Passo
  9. Construa um Cubo de LED 4x4x4 com Arduino Uno e 1Sheeld – Projeto Interativo de LED
  10. ThimbleKrox: Controle de Mouse Dedo-Montado com Arduino Micro e MPU-6050