Controle de ventilador PWM de 4 pinos de 25 kHz com Arduino Uno
Componentes e suprimentos
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Aplicativos e serviços online
|
Sobre este projeto
Tenho me perguntado sobre este projeto e como controlar meus fãs de PWM de 4 pinos. Eu tinha 5 ao redor e pensei que o meu também tentaria. Os valores de frequência podem ser ajustados entre 125 HZ - 8 MHZ, bem como um ciclo de trabalho variável. O circuito utiliza o modo 10 PWM com correção de fase no temporizador 1 OCR1A (pino 9) e ICR1 (pino 10). Foi necessária alguma depuração para descobrir isso e eu possuo um osciloscópio portátil. Isso torna a visualização das frequências e ciclos de trabalho muito mais fácil e nenhuma suposição está envolvida. Aqui está o link:O Osciloscópio.
Recomendo enfaticamente que você consulte a folha de dados do seu ventilador, pois o pino de controle no meu gabinete era amarelo (normalmente conhecido como fio do tacômetro). Certifique-se de encontrar também a faixa de frequência aceitável (OU " FREQUÊNCIA DE CENTRALIZAÇÃO ") para a ventoinha escolhida. Você pode precisar alterar a frequência do código para se ajustar às suas necessidades. Finalmente, você precisará de uma boa fonte de alimentação (a minha é uma fonte de alimentação ATX convertida de um PC antigo).
NOTA:Tentei usar outro cronômetro e controlar 2 ventiladores independentemente. Não funciona. A razão para isso é que a resolução do segundo temporizador é menor (16 bits vs 8 bits). Isso significa que as etapas nos ajustes de frequência e dever são ruidosas e as formas de onda estão cada vez mais deformadas. Isso também não é tão simples ao inserir valores.
Código
- O código
O código Arduino
Baixe este arquivo e execute-o no IDE do Arduino.const byte OC1A_PIN =9; const byte OC1B_PIN =10; const word PWM_FREQ_HZ =25000; // Ajuste este valor para ajustar a frequência (Frequência em HZ!) (Definido atualmente para 25kHZ) const word TCNT1_TOP =16000000 / (2 * PWM_FREQ_HZ); void setup () {pinMode (OC1A_PIN, OUTPUT); // Limpa o controle do Timer1 e os registros de contagem TCCR1A =0; TCCR1B =0; TCNT1 =0; // Definir configuração Timer1 // COM1A (1:0) =0b10 (Saída A clara subindo / definir queda) // COM1B (1:0) =0b00 (Saída B operação normal) // WGM (13:10) =0b1010 (PWM correto de fase) // ICNC1 =0b0 (cancelador de ruído de captura de entrada desabilitado) // ICES1 =0b0 (Seleção de borda de captura de entrada desabilitada) // CS (12:10) =0b001 (Seleção de clock de entrada =clock / 1) TCCR1A | =(1 <
Esquemas
Processo de manufatura
- Luzes de dimerização com PWM usando o botão de ação
- Habilite o controle Alexa para o seu ventilador de teto
- Relógio Arduino com horas de oração islâmica
- Aceitar moeda de controle com Arduino
- Arduino com Bluetooth para controlar um LED!
- Arduino Nano:Controle 2 motores de passo com joystick
- Exibindo uma imagem em uma tela LCD TFT com o Arduino UNO!
- Controlando uma matriz de LED com Arduino Uno
- Cubo de LED 4x4x4 com Arduino Uno e 1sheeld
- ThimbleKrox - Controle do mouse com os dedos