Olá, tenho um projeto para meu tcc que é o seguinte tenho que ligar 4 ventiladores automaticamente, da seguinte forma quando estiver em uma certa temperatura um dos ventiladores liga, se essa temperatura aumentar ate certo grau o primeiro ventilador, manda um sinal que faz com que ligue o outro ventilador e conforme for aumentando a temperatura os outros ventiladores vão ligando. Alguém pode me ajudar a fazer isso ? Obrigado

Exibições: 2894

Responder esta

Respostas a este tópico

Esse projeto é bem simples

vc tem uma relay shield ou algo do tipo?

Tiago você poderia me explicar como fazer isso ?

Acredito que você possua um Arduíno, de preferencia, mas não obrigatório um UNO, neste Arduíno você colocaria uma SHIELD com 4 relês como por exemplo a shield abaixo: 

Existem vários modelos. Ai você só precisaria fazer uma conexão na shield com um sensor de temperatura LM35, lembrando que para utilizar o lm35 precisa de um capacitor para melhorar a precisão (tem umas postagens no forum sobre o assunto).

O código é mais ou menos esse que postei anteriormente, lembrando de verificar os pinos corretos da shield para acionar os relês. Desta forma cada vez que a temperatura aumenta o Arduíno aciona um relê ativando um ventilador.

Outra ideia que você poderia utilizar, mas não sei se é viável, seria ao invés de reles, utilizar um Dimmer shield, fazendo com que a velocidade de exaustão aumente de acordo com a temperatura, mas nunca utilizei o dimmer então não entendo muito do mesmo. Mas o projeto com relês é bem mais fácil.

Agora se você estiver com bastante tempo e quiser dificultar um pouco, você pode comprar também um SD shield com entrada para sensor e um Real Time Clock - RTC, desta forma você faria um data logger, onde armazenaria informações como, hora, temperatura, tempo de acionamento dos relês e o tempo que os ventiladores precisavam ficar ligados para baixar 1ºC do ambiente rsrsrs

Tiago, eu fiz um sensor de temperatura com o arduino, porém a medição da temperatura varia demais, como posso fazer o sensor medir a temperatura com mais qualidade e precisão ?

Yuri eu resolvi o problema neste debate

http://labdegaragem.com/forum/topics/problema-lm35d?id=6223006%3ATo...

para estabilizar a leitura do sensor  um capacitor eletrolitico de 10uF 25V já resolve,  basta colocar a perna GND do capacitor com GND do LM35 e a outra perna do capacitor no pino de saída analógico do sensor.

Devo alterar a programação ?

Não é necessário alterar o código, pois é apenas uma melhoria no hardware do circuito, o capacitor não interfere no circuito de forma direta, ele funciona como uma especie de caixa d'água, servindo de reservatório de energia, auxiliando na estabilização dos pulsos elétricos, só tome cuidado para não colocar ele invertido, pois o capacitor eletrolítico é polarizado, se colocar ele invertido o mesmo explode.

Tiago se ao invés de arduino, eu quisesse utilizar pic 16f877a, sería possivel o mesmo resultado ?

Até onde eu entendo não há diferença

, não sei ao certo se é essa sua ideia, mas veja se esse código te serve, :

// acionamento relês
int pinoSensor = 0;
int valorLido;
int ventilador1 = 12; // rele 1
int ventilador2 = 11; // rele 2
int ventilador3 = 10; // rele 3
int ventilador4 = 9; // rele 4
int ventState = LOW;
float temperatura;

void setup()
{

Serial.begin(9600);

pinMode(ventilador1, OUTPUT); // declare motor como output pin 12
pinMode(ventilador2, OUTPUT); // declare motor como output pin 11
pinMode(ventilador3, OUTPUT); // declare motor como output pin 10
pinMode(ventilador4, OUTPUT); // declare motor como output pin 9

}

void loop()
{
LM35 ();
}

void LM35 ()
{ //faz a leitura da temperatura e define a dose de ração em função da temperatura

valorLido = analogRead(pinoSensor);// leitura da temperatura
double temperatura = (valorLido * 0.48857); // converte a leitura do LM35 em graus Celcius

digitalWrite((ventilador1, ventilador2, ventilador3, ventilador4), ventState); // declara o status dos ventiladores

if (temperatura >= 30 && temperatura <=35)
{ // se a temperatura for maior ou igual a 30 e menor ou igual a 35 liga o relê
digitalWrite(ventilador1, HIGH);
}
if (temperatura >= 31 && temperatura <=35)

digitalWrite(ventilador2, HIGH);
}
if (temperatura >= 32 && temperatura <=35)

digitalWrite(ventilador3, HIGH);
}
if (temperatura >= 33 && temperatura <=35)
{
digitalWrite(ventilador4, HIGH);
}
}

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço