Controllare ventole 24v, in pwm ,con sensore lm35 tramite rele

Buongiorno a tutti.

Dovrei controllare 2 ventole in pwm a 24V con 2 sensori lm35 (ogni sensore avrà la sua ventola)
Utilizzerei un rele a 2 canali,sempre a 24vdc.

In pratica vorrei controllare la temperatura di 2 motori nema,ed in caso raggiunge una temperatura superiore a X gradi,la ventola parte, e quando scende sotto X si spegne.
es..Parte a 50° al 25%,se la temperatura sale a 55° va al 50%,ecc... Una volta sceso sotto ai 50 si spegne.

Ho fatto uno schizzo di come dovrebbe essere.
Il fatto è che non saprei come "programmare" questa funzionalità!
Qualcuno potrebbe aiutarmi?

Prendi delle ventole da 12V per PC con entrata PWM (quelli a 4 cavi). Quelli puoi pilotare direttamente con un segnale 5V PWM .
Ciao Uwe

Ciao. Io ho preso apposta delle sunon a 24v perchè ho un gran range di velocità,oltre ad avere gia un alimetatore a 24...

Ma l'alimentazione non è il mio problema
Il mio problema è come fare

Prima di passare al software, direi di costruire un circuito funzionante. Ad esempio ( lo schema non è per niente comprensibile ) come pensi di usare un relè per pilotare la ventola in PWM ?

Non è comprensibile?
La bobina del relè è alimentata a parte.
Il comune invece andrà a chiudermi il contatto alla relativa ventola (grazie ad arduino)
Che sia pulsata o meno non importa al relè :wink:

Giusta regola ad Arduino non importa nemmeno che ci sia, il relè: non lo legge, non lo comanda...

Ma scusa.
Io sarò ignorante in programmazione.
Ma se dico di leggere un valore, e se lo supera di comandare l'uscita digitale ad un valore,cosa gliene importa ad arduino se è un relè,un led,o qualcos'altro?

Ma che domanda è?
Tu non lo comandi quel relè!

zonalimitatore:
Ma se dico di leggere un valore, e se lo supera di comandare l'uscita digitale ad un valore,cosa gliene importa ad arduino se è un relè,un led,o qualcos'altro?

Le uscite di Arduino hanno dei limiti ben precisi di corrente e di tensioni erogabili e applicabili.

Il tuo schema non è corretto. Il relè non serve a nulla, meno che meno con la bobina sempre alimentata.
Se quello schema lo hai già montato l'unico motivo per cui non ha fatto il botto è perché le masse degli alimentatori sono separate, ma come le colleghi in pratica porti i 24 direttamente sui piedini di Arduino... passando a ritroso attraverso le ventole e i contatti del relè.

Quello che ti serve sono due driver di potenza (a mosfet o transistor bipolari) che accettano in ingresso il segnale digitale PWM a 5V di Arduino, e comandano un carico a 24V.

Ok.Scartiamo il relè ed andiamo di mosfet.

Posso fare in modo che quando lm35 supera i 50° mi fa partire la ventola al 25%,se legge 55° al 50% e se scendo sotto i 50 rimane spenta?
Questo per 2 sensori e ventole indipendenti?
Con che libreria mi posso "aggrappare"?

Niente?Non cè possibilità?

Allora,
dividiamo le cose ...

  • Se devi controllare la velocità di un semplice motore DC (quindi una semplice ventola con due fili), guarda l'allegato schema MOTOR.

  • Se devi controllare ventole per PC con 3 o 4 fili (quindi anche con segnale tachimetrico), guarda gli schemi nell'allegato FAN.

Il resto è solo software ... delle IF e delle analogWrite() ...

Guglielmo

MOTOR.pdf (64.8 KB)

FAN.pdf (141 KB)

Grazie guglielmo

gpb01:
Allora,
dividiamo le cose ...

  • Se devi controllare la velocità di un semplice motore DC (quindi una semplice ventola con due fili), guarda l'allegato schema MOTOR.

  • Se devi controllare ventole per PC con 3 o 4 fili (quindi anche con segnale tachimetrico), guarda gli schemi nell'allegato FAN.

Il resto è solo software ... delle IF e delle analogWrite() ...

Guglielmo

Quindi con il circuito "motor" che è quello che serve a me,posso controllarle in pwm?

zonalimitatore:
Quindi con il circuito "motor" che è quello che serve a me,posso controllarle in pwm?

Si, certo ... probabilmete dovrai togliere il condensatore il parallelo al motore lasciando solo il diodo :slight_smile:

Guglielmo

zonalimitatore:
Posso fare in modo che quando lm35 supera i 50° mi fa partire la ventola al 25%,se legge 55° al 50% e se scendo sotto i 50 rimane spenta?

Si

Questo per 2 sensori e ventole indipendenti?

Il limite è solo il numero di ingressi analogici e uscite PWM disponibili, con ArduinoUNO/mini/nano puoi gestire sei coppie sensore/ventola indipendenti.

Con che libreria mi posso "aggrappare"?

Nessuna. Si parte con il leggere la temperatura, un link a caso. E con una serie di 'if' scegli il valore PWM da scrivere. La domanda però sarebbe da circostanziare, nel senso di dove sta la difficoltà (procedura, struttura, sintassi ecc).

Grazie mille ad entrambi.
Forse la parte difficile per me sarà impostare in maniera adeguata i pwm/lettura temp

Ho provato a scrivere questo.....dovrebbe funzionare.
C'è qualche errore secondo voi?

// imposto i 2 sensori e relativi pin
const float tempx = analogRead(A0) * 0.48875;
const int tempy = analogRead(A1) * 0.48875;
const int fanx = 10;
const int fany = 9;


// setup
void setup()
{
 pinMode(tempx, INPUT);
 pinMode(tempy, INPUT);
 pinMode(fanx, OUTPUT);
 pinMode(fany, OUTPUT);
 
 // comunicazione seriale
 Serial.begin(9600);
}

// funzione continua
void loop() {
 // leggo le temp dell' lm35:
 int tempx = analogRead(A0);
 int tempy = analogRead(A1);

// se la temp è uguale o sotto i 50° resto tutto spento,se supera i 50° ventole al 25%, 55° 50%:
 ;if (tempx || tempy <= 50) {
   analogWrite(fanx, 0);
   analogWrite(fany, 0);
 }
 ;if (tempx || tempy >50) {
   digitalWrite(fanx, 64);
   digitalWrite(fany, 64);
 }
 
 ;if (tempx || tempy >55) {
   digitalWrite(fanx, 128);
   digitalWrite(fany, 128);
 }

Serial.print("Temp X:");
Serial.print(tempx);
Serial.print("Temp Y");
Serial.print(tempy);
Serial.println(" ");   

 //delay
 delay(1000);
}

//fine