Índice:

Modelo de ar condicionado Arduino: 6 etapas
Modelo de ar condicionado Arduino: 6 etapas

Vídeo: Modelo de ar condicionado Arduino: 6 etapas

Vídeo: Modelo de ar condicionado Arduino: 6 etapas
Vídeo: SISTEMA DE RESFRIAMENTO COM PASTILHA PELTIER | Curso de Arduino #132 2024, Novembro
Anonim
Modelo de ar condicionado Arduino
Modelo de ar condicionado Arduino

Como parte de uma demonstração da capacidade de nossa equipe de criar um modelo de dispositivo de trem inteligente para fins de marketing, o objetivo era criar um sistema no qual um sensor de temperatura lê os dados do circuito e converte as informações em um valor de temperatura que seja ao mesmo tempo exibido em uma tela iluminada e focado se um ventilador liga ou desliga. O objetivo é ajudar a acomodar as condições de pilotagem dos passageiros por meio de um sistema automatizado que também atua para exibir a temperatura nas proximidades.

Usando um kit de microcontrolador Arduino e as versões 2016b e 2017b do MATLAB, pudemos demonstrar esses resultados com relativo sucesso.

Etapa 1: Equipamento

Equipamento
Equipamento

Kit de microcontrolador com o seguinte:

-Sparkfun Red Board

-Sparkfun Breadboard

-LCD Board

-Potenciômetro

-Sensor de temperatura

-Servo

- Adaptador USB / Arduino

-Jumper Fios (25, mínimo)

Laptop (Windows 10) com entrada USB

Objeto impresso em 3D (opcional)

Etapa 2: configuração do microcontrolador

Configuração do microcontrolador
Configuração do microcontrolador
Configuração do microcontrolador
Configuração do microcontrolador
Configuração do microcontrolador
Configuração do microcontrolador
Configuração do microcontrolador
Configuração do microcontrolador

Considere o seguinte: todo o sistema é composto de unidades únicas em que cada uma aplica um fator significativo para o resultado final. Por esse motivo, é altamente recomendável criar uma imagem do circuito antes de prender os fios em uma bagunça complicada.

Imagens de cada modelo individual podem ser encontradas no manual do kit de ferramentas do microcontrolador ou em seu site em

Comece fixando o sensor de temperatura, potenciômetro, servo-conectores e LCD na placa. Recomenda-se que, devido ao tamanho do LCD e à necessidade do número de fios para ele, ele seja colocado em sua própria metade da placa de ensaio com as outras peças na outra metade e que o potenciômetro fique em uma área para alguém facilmente gire seu botão.

Para referência:

LCD: c1-16

Servo: i1-3 (GND + -)

Sensor de temperatura: i13-15 (- GND +)

Potenciômetro: g24-26 (- GND +)

Em seguida, comece a conectar os fios do jumper a cada pino das unidades do microcontrolador; embora arbitrário no grande esquema geral, o design foi criado com estas conexões importantes:

Conectando o potenciômetro ao LCD: f25 - e3

Fio GND do servo: j1 - Entrada digital 9

Sensor de temperatura GND: j14 - Entrada analógica 0

Entradas LCD: e11-e15 - Entrada digital 2-5

e4 - Entrada Digital 7

e6 - Entrada Digital 6

(Observação: se for bem-sucedido, as duas luzes na borda do LCD devem piscar e o potenciômetro pode ajudar a ajustar o brilho depois de receber energia do adaptador.)

Opcional: um objeto impresso em 3D foi usado como parte de um requisito. Para evitar danos potenciais às partes mais frágeis, uma caixa estendida foi colocada como uma capa ao redor do LCD. As medidas da tela LCD provaram ser de aproximadamente 2-13 / 16 "x 1-1 / 16" x 1/4 "e, portanto, apenas a altura foi alterada significativamente. Se uma impressora 3D estiver disponível, considere adicionar um objeto pessoal, embora desnecessário. Além disso, esteja ciente de que as medições podem ser diferentes.

Etapa 3: configuração do MATLAB

Configuração do MATLAB
Configuração do MATLAB
Configuração do MATLAB
Configuração do MATLAB

Instale uma versão mais atualizada do MATLAB (2016a em diante), disponível no site da MathWorks https://www.mathworks.com/products/matlab.html?s_tid=srchtitle. Depois de aberto, vá para Add-Ons na guia Home e baixe "Pacote de suporte MATLAB para hardware Arduino" para que os comandos do microcontrolador fiquem acessíveis.

Depois de concluído, um teste pode ser feito para encontrar a conectividade do microcontrolador ao computador / laptop de alguém. Após conectá-los com o adaptador USB do kit de ferramentas, insira o comando "fopen (serial ('nada'))."

Uma mensagem de erro aparecerá informando o conector como "COM #", que será necessário para criar um objeto arduino, desde que seja a mesma entrada o tempo todo.

Como o LCD não tem uma conexão direta com a biblioteca do Arduino, uma nova biblioteca deve ser criada para exibir as mensagens. Uma recomendação é criar um arquivo LCDAddon.m a partir do exemplo de LCD encontrado na janela de ajuda do MATLAB após pesquisar "Arduino LCD" e colocá-lo na pasta + arduinoioaddons, ou usar a pasta compactada anexada e copiar todo o seu conteúdo para o mencionado pasta.

Se for bem-sucedido, o código para criar um objeto Arduino no MATLAB é mostrado abaixo.

a = arduino ('com #', 'uno', 'Bibliotecas', 'ExemploLCD / LCDAddon');

Etapa 4: Funções

Funções
Funções
Funções
Funções

Crie uma função MATLAB. Para as entradas, usamos as variáveis "eff" e "T_min"; para saídas, embora desnecessárias no design geral, usamos a variável "B" como uma forma de conter os dados dos resultados. A entrada "eff" permite o gerenciamento da velocidade máxima do servo, e a entrada "T_min" controla a temperatura mínima desejada. O valor "B" deve, portanto, produzir uma matriz que contém três colunas para o tempo, a temperatura e a eficiência do ventilador. Além disso, como um bônus aos detalhes, o código listado abaixo também tem uma declaração if, de modo que a velocidade do ventilador será reduzida em cinquenta por cento quando se aproximar da temperatura mínima desejada.

Se todas as entradas e cabos de ligação forem colocados exatamente e assumindo que a porta da conexão do Arduino seja COM4 e o nome da função seja "fanread", o código a seguir deve ser suficiente:

função [B] = fanread (Tmin, eff)

limpar a; limpar lcd; a = arduino ('com4', 'uno', 'Bibliotecas', 'ExemploLCD / LCDAddon');

t = 0; t_max = 15; % tempo em segundos

lcd = addon (a, 'ExampleLCD / LCDAddon', {'D7', 'D6', 'D5', 'D4', 'D3', 'D2'});

inicializarLCD (lcd, 'Linhas', 2, 'Colunas', 2);

se ef> = 1 || e <0

erro ('O ventilador não será ativado a menos que o ef seja definido entre 0 e 1.')

fim

para t = 1: 10% número de loops / intervalos

claro c; % evita repetir o erro

v = readVoltage (a, 'A0');

TempC = (v-0,5) * 100; estimativa de% para faixas de tensão 2,7-5,5 V

se TempC> Tmin se TempC

c = ['Temp', num2str (TempC, 3), 'C Ligado'];

writePWMDutyCycle (a, 'D9', eff / 2); % liga o servo na metade da velocidade

spd = 50;

outro

c = ['Temp', num2str (TempC, 3), 'C Ligado'];

writePWMDutyCycle (a, 'D9', eff); % liga o servo na velocidade dada

spd = 100;

fim

outro

c = ['Temp', num2str (TempC, 3), 'C Desligado'];

writePWMDutyCycle (a, 'D9', 0); % desligado se já estiver ligado

spd = 0;

fim

printLCD (lcd, c);

pausa (3); % três segundos decorridos por loop

tempo (t) = t. * 3;

tempplot (t) = TempC;

act (t) = spd;

subtrama (2, 1, 1)

plot (tempo, tempplot, 'b-o')% gráfico de linha

eixo ([0 33 0 40])

xlabel ('Tempo (segundos)')

ylabel ('Temperatura (C)')

aguentar

plot ([0 33], [Tmin Tmin], 'r-')

aguentar

plot ([0 33], [Tmin + 2 Tmin + 2], 'g-')

subtrama (2, 1, 2)

bar (tempo, ação)% gráfico de barras

xlabel ('Tempo (segundos)')

ylabel ('Eficiência (%)')

fim

B = transpor ([tempo; gráfico temporário; ato]);

fim

Agora que a função está concluída, é hora de testar.

Etapa 5: Teste

Testando
Testando
Testando
Testando

Agora teste a função na janela de comando inserindo "function_name (input_value_1, input_value_2)" e observe. Certifique-se de que nenhum objeto Arduino já exista; em caso afirmativo, use o comando "clear a" para removê-lo. Se ocorrerem erros, verifique se algum conector está no lugar errado ou se as entradas digitais ou analógicas erradas são usadas. Espera-se que os resultados variem, embora isso possa ser causado pela colocação de certos cabos de ligação e do sensor de temperatura.

As expectativas dos resultados devem produzir mudanças no desempenho do servo e nos dados no LCD. A cada intervalo de três segundos, uma linha de texto deve exibir a temperatura em graus Celsius e se o ventilador está ou não ativo enquanto funciona em velocidade total, meia velocidade ou nenhuma velocidade. Os dados provavelmente não devem ser consistentes, embora, se desejar resultados mais diversos, coloque o valor "Tmin" próximo à temperatura média produzida pelo circuito.

Etapa 6: Conclusão

Conclusão
Conclusão

Embora seja uma tarefa árdua de realizar por tentativa e erro, os resultados finais provaram ser bastante interessantes e satisfatórios. Um sistema como tal ajuda a ilustrar quantas máquinas complicadas, ou mesmo algumas de suas peças, podem ser vistas como uma coleção de peças independentes colocadas juntas para atingir um objetivo específico.

Devido ao design bastante simplista do projeto final, aqueles que têm interesse em melhorar seu desempenho podem fazer ajustes e alterações no produto final que podem tornar o projeto melhor e mais elaborado. No entanto, ele revela fraquezas no circuito, como a ativação do servo resultando em flutuações esporádicas na leitura da tensão do circuito, o que pode fazer com que o sistema nunca produza resultados idênticos. Além disso, houve problemas em ver uma mudança na velocidade do servo quando "eff" é definido como 0,4 e superior. Caso fosse utilizado um sensor de temperatura e umidade, o modelo final seria mais complicado, porém apresentaria valores mais consistentes. No entanto, esta é uma experiência que mostra que uma máquina complexa pode funcionar como uma combinação de suas peças simples.

Recomendado: