Termostaty są wszech obecne, zarówno w domach jak i w przemyśle. Niniejszy artykuł publikuję na prośby czytelników. Jak ostatnio dość często wykorzystuję Arduino tak było i tym razem. Wiem, że zaraz poleci z tego tytułu hejt, ale mam to gdzieś.
Program został napisany na biegu, odczytuje on wartość temperatury z DS18B20 raz na 5 sekund, jeżeli wartość będzie większa od 50°C załącza przekaźnik który znowu steruje pracą wentylatora. Czemu akurat 50°C, wszytko przez to, że docelowo będzie pracował wewnątrz wzmacniacza (który staram się ukończyć od jakiegoś roku) nie ma potrzeby aby wentylator dział cały czas. No to przejdźmy do potrzebnych rzeczy.
Komponenty:
– Arduino Nano lub odpowiednik,
– moduł przekaźnika,
– czujnik temperatury DS18B20.
– rezystor 4,7kΩ
Schemat połączeń:
Kod programu:
// by swistak
// www.tranzystor.pl
#include <Wire.h>
#include <DallasTemperature.h>
#include <OneWire.h>
#define ONE_WIRE_BUS 4 // pin ONE WIRE BUS
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
int WENTYL = 3; //pin do którego podłączamy przekaźnik
int licz;
int DS18B20_Pin = 4; // pin podłączenia DS18B20
int Temperatura = 50; //temperatura załączenia wentylatora
void setup()
{
pinMode(DS18B20_Pin, INPUT);
pinMode(WENTYL, OUTPUT);
Wire.begin();
Serial.begin(9600);
sensors.requestTemperatures();
}void loop()
{
delay(5000); // co ile ma sprawdzać temp domyslnie 5 s
sensors.requestTemperatures();
float tempC = (sensors.getTempCByIndex(1));
Serial.print(tempC);
Serial.print(„C „);if((Temperatura)<=tempC)
{
licz =0;
}
else if(tempC<=(Temperatura))
{
licz =1;
}
else
{
}
if(licz>0)
{
digitalWrite(WENTYL,HIGH);
Serial.print(” www.tranzystor.pl WENTYLATOR OFF „);
}
else
{
digitalWrite(WENTYL,LOW);
Serial.print(„www.tranzystor.pl WENTYLATOR ON „);
}}