építenék egy fűtésvezérlőt, 4 motor vezérlése, állapot kijelzése, 4 hőmérséklet kijelzés, ebből 2 hőmérséklet állítható, ez alapján vezérelné 2 motor két kimenetet, illetve +1 kazántiltás, a két meglévő termosztáttal vezérelve. ( Kandalló vízhőmérséklet szabályzása,gázkazán tiltása, a két szobatermosztátnak megfelelően)
A hőmérők DS18B20 típusúak. Még nagyon az elején vagyok a dolgoknak, mind programilag, mind tapaszalatilag.
Azt szeretném kérdezni, hogy jelen pillanatban a kijelzőn kiírt hőmérséklet XX.XX de nekem nincs szükségem a század helyi értékre, ezt hogy tudom levarázsolni XX.X re?
Mellékelem a progit , De ne nagyon röhögjetek ki, 2 hónapja azt sem tudtam mi az az Arduino.
Kód: Egész kijelölése
#include <OneWire.h>
#include <DallasTemperature.h>
#include <Wire.h>
#include <FaBoLCD_PCF8574.h>
#define ONE_WIRE_BUS 5 // Hőmérők az 5 lábon
FaBoLCD_PCF8574 lcd(0x27); //lcd a 0x27 en van
OneWire oneWire(ONE_WIRE_BUS);
// Sznzorok azonosítása
DallasTemperature sensors(&oneWire);
DeviceAddress Hom1 = { 0x28, 0xFF, 0x98, 0xFC, 0x37, 0x16, 0x04, 0x21 };
DeviceAddress Hom2 = { 0x28, 0xFF, 0xC4, 0x0C, 0x38, 0x16, 0x04, 0xBB };
DeviceAddress Hom3 = { 0x28, 0xFF, 0x52, 0xD7, 0x37, 0x16, 0x04, 0x5A };
DeviceAddress Hom4 = { 0x28, 0xFF, 0x71, 0x0E, 0x38, 0x16, 0x04, 0x21 };
int M1J = 13; // M1 motor vezérlő a 13on tesztként
void setup()
{
pinMode(M1J,OUTPUT); //M1J kimenet, ezzel az M1 motort
sensors.begin();
sensors.setResolution(Hom1, 10); //hőmérők beállítása, pontosság elég 0.25
sensors.setResolution(Hom2, 10);
sensors.setResolution(Hom3, 10);
sensors.setResolution(Hom4, 10);
lcd.begin (20,4); //ezek fixen a kijelzőn
lcd.setCursor(0,0);
lcd.print("M1:");
lcd.setCursor(0,1);
lcd.print("M2:");
lcd.setCursor(0,2);
lcd.print("M3:");
lcd.setCursor(0,3);
lcd.print("M4:");
}
void printTemperature(DeviceAddress deviceAddress)
{
float tempC = sensors.getTempC(deviceAddress);
if (tempC == -127.00) {
lcd.print("Err"); //ha nem látja a szenzort
} else {
lcd.print(tempC);
}
}
void loop()
{
//labkimenet tesztelésre
{digitalWrite(13, HIGH); //13 lábon villogtatás
lcd.setCursor(3,0);
lcd.print(digitalRead(13)); //írjukki mitörténik
delay(1000);
digitalWrite(13, LOW);
lcd.setCursor(3,0);
lcd.print(digitalRead(13));
delay(1000);}
sensors.requestTemperatures(); // Adatkérés a hőmérőtől
lcd.home();
lcd.setCursor(5,0); // hovairjuk a hőmérsékletet
lcd.print("T1:");
printTemperature(Hom1);
lcd.setCursor(5,1);
lcd.print("T2:");
printTemperature(Hom2);
lcd.setCursor(5,2);
lcd.print("T3:");
printTemperature(Hom3);
lcd.setCursor(5,3);
lcd.print("T4:");
printTemperature(Hom4);
}
