Go Down

Topic: Controllare ventole 24v, in pwm ,con sensore lm35 tramite rele (Read 514 times) previous topic - next topic

Claudio_FF

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

Quote
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.

Quote
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).
********* IF e SWITCH non sono cicli ! *********
**** Una domanda ben posta è già mezza risposta ****
*** La corrente si misura in mA, la quantità di carica in mAh ***

zonalimitatore

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

zonalimitatore

#17
May 17, 2019, 04:04 am Last Edit: May 17, 2019, 04:05 am by zonalimitatore
Ho provato a scrivere questo.....dovrebbe funzionare.
C'è qualche errore secondo voi?


Code: [Select]
// 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

Go Up