Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <LiquidCrystal.h> /*Kijelző könyvtár*/
- int ThermistorPin = 0; /*Termisztor feszültésgosztott analog bemenete A0*/
- int Potipin = 1; /*A kivánt hőmérséklet potijának bemenete A1*/
- int pinOut = 7; /*Relay kimenete a kazán felé*/
- int Vo;
- int Temp; /*Temp*/
- float R1 = 10000; /*A feszültség osztó ismert ellenállása*/
- float logR2, R2, T, Tc, Po, Poti;
- float c1 = 1.009249522e-03, c2 = 2.378405444e-04, c3 = 2.019202697e-07;
- LiquidCrystal lcd(12, 11, 5, 4, 3, 2); /*LCD kimenete 4 bit*/
- byte ebetu[8] = { /*É betű megszerkesztése (nem tartalmazza a natív betűkészlet)*/
- B00010,
- B00100,
- B01110,
- B10001,
- B11111,
- B10000,
- B01110,
- B00000,
- };
- void setup() {
- Serial.begin(9600);
- pinMode(pinOut, OUTPUT); /*Relay kimenet kimenetre állítása*/
- lcd.createChar(0, ebetu); /*é betű legenerálása*/
- }
- void loop() {
- Vo = analogRead(ThermistorPin); /*Termisztor feszültség kiolvasása*/
- Poti = analogRead(Potipin); /*Potival beállított érték kiolvasása*/
- R2 = R1 * (1023.0 / (float)Vo - 1.0);
- logR2 = log(R2);
- T = (1.0 / (c1 + c2*logR2 + c3*logR2*logR2*logR2));
- Tc = T - 273.15; /*Kelvinbő celziusz átalakítás (gondolom)*/
- Tc = Tc * 10; /*Csak tizedes számjegyek legyenek*/
- Temp = Tc;
- Tc = Temp;
- Tc = Tc / 10;
- Tc = Tc *10; /*5 tizedre kerekítés*/
- Temp = Tc;
- Temp = Temp / 5;
- Temp = Temp * 5;
- Tc = Temp;
- Tc = Tc / 10;
- Po = (Poti / 70) + 15; /*Poti celziusszá alakítása*/
- Po = Po * 10; /*Csak tizedes számjegyek legyenek*/
- Temp = Po;
- Po = Temp;
- Po = Po / 10;
- Po = Po *10; /*5 tizedesre kerekítés*/
- Temp = Po;
- Temp = Temp /5;
- Temp = Temp *5;
- Po = Temp;
- Po = Po /10;
- lcd.begin(16, 2); /*Kijelző konfig*/
- lcd.setCursor(0,0); /*Kezdő pozició megadás, bal felső sarok*/
- lcd.print("H"); /*Kjelzőn megjelnő infó kiírása*/
- lcd.print((char)239); /*ő betű kiírása*/
- lcd.print("m.=");
- lcd.print(Tc,1);
- lcd.print(" C");
- lcd.print((char)223); /*fok kiírása*/
- lcd.setCursor(0,1); /*Második sor megadása*/
- lcd.print("C");
- lcd.write(byte(0)); /*é betű kirajzolása*/
- lcd.print("l =");
- lcd.print(Po,1);
- lcd.print(" C");
- lcd.print((char)223); /*fok kiírása*/
- if (Tc >= Po){ /*Beállított érték és a mért érték összehasonlítása*/
- digitalWrite(pinOut, LOW); /*Ha nagyobb nincs bekapcsolva a relay*/
- }
- else {
- digitalWrite(pinOut, HIGH); /*Egyébként meg be van kapcsolva*/
- }
- delay(500); /*1mp időköz*/
- /* lcd.clear(); /*kijelző törlése*/
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement