Recentemente comprei umas ventoinhas novas para o meu recuperador. Comprei as mais potentes que havia, para poder aproveitar bastante o calor do meu recuperador. Como as ventoinhas no máximo fazem 45db, precisava de um controlador para as poder controlar. Durante o dia o barulho não incomoda, mas á noite quando se vai dormir, o barulho torna se incomodativo.
Já fiz algumas pesquisas, mas não encontrei nada. Alguém tem alguma solução para eu poder resolver a minha situação.
Controlador de Ventoinhas para recuperador
25 Jan. 2021 00:04#2
Primeiro há que saber as características técnicas das ventoinhas, tensão, corrente.
Depois basta regular há um esquema no site para ventiladores de 12V de baixa corrente, o principio é o mesmo.
Uma vez que há sempre uma relação entre a temperatura e a velocidade do "FAN", a melhor opção é usar um arduino que permite facilmente controlar ambos os parâmetros.
Exemplo de controlo de um ventilador PWM
/*This software is provided in an AS IS condition,NO WARRANTIES in any form apply to this software.
picmicrolab.com 10.12.2017
***************************************************************************************************************
Arduino PWM Fan Controller
*/
int FanPWM = 9; // Fan PWM pin
int PushButtonInput1 = 2; // Push button - set PWM Fan speed LOW
int PushButtonInput2 = 3; // Push button - set PWM Fan speed Medium
int PushButtonInput3 = 4; // Push button - set PWM Fan speed High
void setup()
{
pinMode(FanPWM, OUTPUT);
pinMode(PushButtonInput1,INPUT_PULLUP);
pinMode(PushButtonInput2,INPUT_PULLUP);
pinMode(PushButtonInput3,INPUT_PULLUP);
}
void loop()
{
//-----------------LOW----------------------
if(digitalRead(PushButtonInput1) == LOW)
analogWrite(FanPWM, 1);
//----------------Medium---------------------
if(digitalRead(PushButtonInput2) == LOW)
analogWrite(FanPWM, 127);
//------------------High-----------------------
if(digitalRead(PushButtonInput3) == LOW)
analogWrite(FanPWM, 255);
//---------------------------------------------
}
Um outro exemplo desta vez com um motor DC
Esquema
#include <LiquidCrystal.h>
LiquidCrystal lcd(2,3,4,5,6,7);
int tempPin = A0; // the output pin of LM35
int fan = 11; // the pin where fan is
int led = 8; // led pin
int temp;
int tempMin = 30; // the temperature to start the fan 0%
int tempMax = 60; // the maximum temperature when fan is at 100%
int fanSpeed;
int fanLCD;
void setup() {
pinMode(fan, OUTPUT);
pinMode(led, OUTPUT);
pinMode(tempPin, INPUT);
lcd.begin(16,2);
Serial.begin(9600);
}
void loop()
{
temp = readTemp(); // get the temperature
Serial.print( temp );
if(temp < tempMin) // if temp is lower than minimum temp
{
fanSpeed = 0; // fan is not spinning
analogWrite(fan, fanSpeed);
fanLCD=0;
digitalWrite(fan, LOW);
}
if((temp >= tempMin) && (temp <= tempMax)) // if temperature is higher than minimum temp
{
fanSpeed = temp;//map(temp, tempMin, tempMax, 0, 100); // the actual speed of fan//map(temp, tempMin, tempMax, 32, 255);
fanSpeed=1.5*fanSpeed;
fanLCD = map(temp, tempMin, tempMax, 0, 100); // speed of fan to display on LCD100
analogWrite(fan, fanSpeed); // spin the fan at the fanSpeed speed
}
if(temp > tempMax) // if temp is higher than tempMax
{
digitalWrite(led, HIGH); // turn on led
}
else // else turn of led
{
digitalWrite(led, LOW);
}
lcd.print("TEMP: ");
lcd.print(temp); // display the temperature
lcd.print("C ");
lcd.setCursor(0,1); // move cursor to next line
lcd.print("FANS: ");
lcd.print(fanLCD); // display the fan speed
lcd.print("%");
delay(200);
lcd.clear();
}
int readTemp() { // get the temperature and convert it to celsius
temp = analogRead(tempPin);
return temp * 0.48828125;
}