Índice:

Controlador de ventilador de mesa Arduino: 4 etapas
Controlador de ventilador de mesa Arduino: 4 etapas

Vídeo: Controlador de ventilador de mesa Arduino: 4 etapas

Vídeo: Controlador de ventilador de mesa Arduino: 4 etapas
Vídeo: Control de Ventiladores con Arduino : Control de velocidad por PWM y lectura de RPM. 2024, Novembro
Anonim
Arduino Desk Fan Controller
Arduino Desk Fan Controller
Arduino Desk Fan Controller
Arduino Desk Fan Controller
Arduino Desk Fan Controller
Arduino Desk Fan Controller

Quando recentemente mudei de funções na empresa, mudei de local, mudando-me de Bradford para nossa sede em Wakefield. Eu disse adeus à minha velha mesa fiel com ventilador de mesa indispensável para me manter fresco enquanto tudo ao meu redor ……. De qualquer forma, a tendência em nosso escritório principal era para pequenas ventoinhas alimentadas por USB em torno de 4 "a 6". Assim, um belo modelo antigo de efeito de latão de 6 "foi rapidamente encomendado e entregue no dia seguinte.

O problema com todas as ventoinhas, quer tenham configurações de velocidade ou modos de oscilação mecânica, é que elas estão ligadas ou desligadas, e você acaba ligando e desligando-as o tempo todo. Uma centelha de imaginação, combinada com a necessidade de aumentar meu monitor em uns bons 3 , e meu próximo projeto nasce. Entra Fanomatic.

Eu joguei com o Arduino por muitos anos, então foi a primeira parada lógica.

Etapa 1: Lista de compras e caso

Lista de compras e caso
Lista de compras e caso
Lista de compras e caso
Lista de compras e caso
Lista de compras e caso
Lista de compras e caso

Lista de compras:

  • 1 folha de MDF de 12 mm - para o estojo
  • 1 Arduino Uno - o cérebro
  • 1 sml breadboard e fios
  • 1 DHT11 - sensor digital de temperatura e umidade - apenas para amostra de temperatura
  • Display OLED de 1 0,96 "- para exibir variáveis - velocidade, temperatura, etc.
  • 1 Módulo Mosfet IRF520 - para ligar e desligar o USB para o ventilador
  • 4 Potenciômetros de 10k com botões de cores diferentes - para controlar a velocidade do ventilador, tempo ligado, tempo desligado, ponto de ajuste da temperatura
  • 1 interruptor de energia
  • 1 sml lata tinta para quadro negro - adequado para MDF com 1 camada
  • 1 cabo usb e 1 tomada usb

Caso:

O tamanho do case era governado pelo tamanho da base do meu monitor de 24 e switch KVM de 4 portas com 220 mm de largura e altura final que eu queria definir para o meu monitor. A profundidade era bastante flexível, então optei por 180 mm para dar bastante Então, 220 mm x 180 mm x 60 mm era o tamanho. Agora, para fazer e preencher.

O MDF de 12 mm foi cortado em casa com bastante facilidade, antes de colar e parafusar para formar uma base e frente de trabalho. A frente foi então perfurada para encaixar 4 potenciômetros de 10k e 1 sobre o botão liga / desliga superior que controlaria a energia do Arduino e do ventilador. Um buraco retangular foi esculpido para segurar um pequeno painel de acrílico cinza fumê, atrás do qual eu planejava proteger um daqueles bonitos displays OLED. No meio do caminho, gostaria de ter optado por uma camada de 3 mm para a frente, em vez de um MDF de 12 mm, pois havia mais madeira removida do que restante.

Depois que os orifícios foram perfurados e cinzelados na parte traseira e lateral para o sensor de temperatura, soquete USB e alimentação USB. Algumas camadas de tinta para quadro-negro foram aplicadas. É uma ótima tinta para mdf, pois é de boa penetração e não precisa de subpêlo. Dá um acabamento fosco muito implacável, exatamente o que eu estava procurando.

Potes e interruptores foram colocados, acrílico fumê colado com cola quente e etiquetas Dyno produzidas para aquele visual retrô.

Ao lado dos controles …

Etapa 2: os controles

Os controles
Os controles

Tudo baseado em um Arduino Uno. Eu embarquei nos componentes e comecei um esboço.

O esboço usa 3 bibliotecas:

  • Um para acionar o mosfet irf520 para ligar o ventilador.
  • Um para conduzir o display OLED
  • Um para ler e traduzir os dados de temperatura do DHT11

Vou incluir o esboço aqui mais tarde, depois de arrumá-lo um pouco, mas esteja avisado, NÃO sou um programador, entendo bons princípios de codificação, mas tendo a ser um programador preguiçoso. Se eu consigo encontrar uma maneira de contornar alguma coisa e ela funciona, então funciona.

Existem alguns sites excelentes que explicam como usar cada um…. e incluirá links para os melhores (na minha opinião) sites para obter o melhor de cada um.

Lógica:

Um único cabo USB fornece energia para o Arduino E para o ventilador USB. O Arduino não pode operar o ventilador, pois a corrente que ele puxa danificaria o Arduino (um pouco dramático, na verdade! Isso desligaria o fusível integrado). Portanto, precisamos encontrar uma maneira de usar o Arduino para ligar ou desligar o ventilador.

Um transistor é necessário, primeiro encomendei um transistor Darlington, mas depois de ler, optei por um módulo de driver MOSFET irf520 em HobbyComponents.com. Alerta Geek !! O IRF520 é ótimo para troca de nível lógico (saída dos pinos do Arduino). A tensão enviada ao dispositivo determina a resistência do MOSFET, I. E. enviar de 0 a 255 para um pino digital irá conduzir o ventilador (ou outro dispositivo conectado) de desligado para velocidade total.

Voltaremos a 0 a 255 mais tarde.

Então, estamos ligando um ventilador com um Arduino, por que se preocupar? Bem, não queremos que acenda quando estiver muito frio, queremos? Portanto, se adicionarmos um sensor de temperatura, podemos escrever o código e testar para ver se está quente e ligar o ventilador (255) ou desligar (0). Eu optei por um DHT11 porque é muito barato, fácil de codificar e preciso o suficiente para este projeto.

De volta àquele negócio de 0 a 255. Se soubermos que um bit de código irá ligar o ventilador (255) se a temperatura estiver alta, ou desligar (0) se a temperatura estiver baixa, se tivermos um valor entre 0 e 255, a resistência aumentaria ou cairia no MOSFET e acelera ou desacelera o ventilador.

Insira um potenciômetro conectado a um pino analógico! Quando girado, gera um valor entre 0 e 1023. Este valor pode então ser testado em código para alterar a velocidade do ventilador !! yipeeeee.

Há uma última coisa (bem, algumas). A biblioteca de controle do motor que usaremos para acionar o driver MOSFET aceita 2 parâmetros, um para definir a resistência (para a velocidade) e outro para definir a duração. Portanto, com este parâmetro mágico, podemos definir por quanto tempo o ventilador fica ligado e por quanto tempo fica desligado.

Portanto, temos 4 potes para controlar as 4 variáveis. A seguir, veremos a tela.

Etapa 3: a tela

A tela
A tela
A tela
A tela

PRECISA de um display? Na verdade. Então, por que tem um? Bem, porque eu queria um display bonito para mostrar a temperatura atual, velocidade do ventilador, tempo de ventilador ligado, tempo de ventilador desligado e ponto de ajuste de temperatura.

A biblioteca U8G é brilhante ao dirigir este minúsculo display OLED. Levei uma noite de pesquisa e eu me concentrei nos comandos para obter o tamanho da fonte que eu queria para 5 linhas e para obter as variáveis a serem exibidas usando os comandos u8g.print (). A vantagem dessa tela é que não é uma tela de 2 ou 4 'linhas' com a qual a comunidade Arduino está tão acostumada, então gráficos e fontes são todos muito viáveis.

Para ser honesto, a maior parte do código está dirigindo a tela. se as declarações determinam os valores a serem exibidos, por exemplo, converter um valor dos potenciômetros analógicos (0 a 1023) em um valor para exibir na tela. Ao todo, existem vários conjuntos de blocos de instrução, determine a velocidade do ventilador a partir do potenciômetro, converta para o valor% para a tela e um valor entre 0 e 255 para acionar o ventilador.

Bem, isso servirá por enquanto, pessoal. Eu espero que você goste desta primeira parcela. Vou editar e atualizar com links e o código. Se houver algo que você gostaria de detalhes, deixe um comentário e pergunte.

Etapa 4: Código

Prometi fazer o upload do esboço quando postar isso, há 3 anos, e nunca o fiz.

Então aqui está……

Recomendado: