Controllo della temperatura con Arduino
Scrivere un programma per il controllo della temperatura con Arduino richiede alcuni componenti
hardware e l'uso del linguaggio di programmazione C, tipico della piattaforma Arduino. In questo
esempio, useremo un sensore di temperatura come l'LM35 o il DHT11 e un elemento di controllo,
come un LED o un relè, per attivare o disattivare un dispositivo quando la temperatura supera una
certa soglia.
Componenti necessari
1. Arduino Uno o simile
2. Sensore di temperatura (es. LM35 o DHT11)
3. Relè o LED per il controllo del dispositivo
4. Cavi jumper per collegamenti
Schema di collegamento
1. Collega il sensore di temperatura (LM35):
o Vcc del sensore a 5V dell'Arduino
o GND del sensore a GND dell'Arduino
o Output del sensore (es. pin centrale dell'LM35) a un pin analogico dell'Arduino (es.
A0)
2. Collega il relè (o il LED):
o Collega un'estremità del relè o del LED al pin digitale D2 di Arduino (con una
resistenza, se usi un LED)
o Collega l'altra estremità a GND.
Codice Arduino
Questo esempio mostra come leggere la temperatura dal sensore e attivare il relè o il LED se la
temperatura supera una soglia (es. 30 °C).
cpp
Copia codice
// Definizione dei pin
const int tempPin = A0; // Pin per il sensore di temperatura LM35
const int relayPin = 2; // Pin per il relè o LED
// Soglia di temperatura in gradi Celsius
const float sogliaTemperatura = 30.0;
void setup() {
// Inizializzazione del seriale per il monitoraggio
Serial.begin(9600);
// Configurazione dei pin
pinMode(tempPin, INPUT);
pinMode(relayPin, OUTPUT);
// Spegne il relè o LED all'avvio
digitalWrite(relayPin, LOW);
}
void loop() {
// Lettura della tensione dal sensore di temperatura
int lettura = analogRead(tempPin);
// Calcolo della temperatura (LM35 fornisce 10 mV per grado Celsius)
float temperatura = lettura * (5.0 / 1023.0) * 100.0;
// Stampa della temperatura sul monitor seriale
Serial.print("Temperatura: ");
Serial.print(temperatura);
Serial.println(" C");
// Controllo del relè in base alla temperatura
if (temperatura > sogliaTemperatura) {
// Attiva il relè o LED se la temperatura è sopra la soglia
digitalWrite(relayPin, HIGH);
Serial.println("Relè acceso");
} else {
// Spegne il relè o LED se la temperatura è sotto la soglia
digitalWrite(relayPin, LOW);
Serial.println("Relè spento");
}
// Ritardo per evitare letture troppo frequenti
delay(1000);
}
Spiegazione del codice
1. Definizione dei pin: Impostiamo i pin analogico (A0) per il sensore e il pin digitale (D2)
per il controllo del relè.
2. Lettura della temperatura: La lettura viene convertita da tensione a temperatura in gradi
Celsius. LM35 fornisce 10 mV per grado, quindi ogni unità analogica viene moltiplicata per
il valore corrispondente in gradi.
3. Condizione di attivazione: Se la temperatura supera la soglia (30 °C), il relè si accende;
altrimenti, si spegne.
4. Serial Monitor: Stampa la temperatura e lo stato del relè, utile per il monitoraggio.
Modifiche per altri sensori
Se usi un sensore DHT11, il codice richiede una libreria aggiuntiva (DHT.h).