Advertisement
Double_G

Untitled

Dec 31st, 2017
183
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.90 KB | None | 0 0
  1. #include <LiquidCrystal.h>    /*Kijelző könyvtár*/
  2.  
  3. int ThermistorPin = 0;        /*Termisztor feszültésgosztott analog bemenete A0*/
  4. int Potipin = 1;              /*A kivánt hőmérséklet potijának bemenete A1*/
  5. int pinOut = 7;               /*Relay kimenete a kazán felé*/
  6. int Vo;
  7. int Temp;                     /*Temp*/
  8. float R1 = 10000;             /*A feszültség osztó ismert ellenállása*/
  9. float logR2, R2, T, Tc, Po, Poti;
  10. float c1 = 1.009249522e-03, c2 = 2.378405444e-04, c3 = 2.019202697e-07;
  11.  
  12. LiquidCrystal lcd(12, 11, 5, 4, 3, 2); /*LCD kimenete 4 bit*/
  13. byte ebetu[8] = {             /*É betű megszerkesztése (nem tartalmazza a natív betűkészlet)*/
  14.   B00010,
  15.   B00100,
  16.   B01110,
  17.   B10001,
  18.   B11111,
  19.   B10000,
  20.   B01110,
  21.   B00000,
  22. };
  23.  
  24. void setup() {
  25. Serial.begin(9600);
  26.  pinMode(pinOut, OUTPUT);     /*Relay kimenet kimenetre állítása*/
  27.  lcd.createChar(0, ebetu);    /*é betű legenerálása*/
  28. }
  29.  
  30. void loop() {
  31.  
  32.  Vo = analogRead(ThermistorPin);   /*Termisztor feszültség kiolvasása*/
  33.  Poti = analogRead(Potipin);      /*Potival beállított érték kiolvasása*/
  34.   R2 = R1 * (1023.0 / (float)Vo - 1.0);
  35.   logR2 = log(R2);
  36.   T = (1.0 / (c1 + c2*logR2 + c3*logR2*logR2*logR2));
  37.   Tc = T - 273.15;                /*Kelvinbő celziusz átalakítás (gondolom)*/
  38.  
  39.   Tc = Tc * 10;                   /*Csak tizedes számjegyek legyenek*/
  40.   Temp = Tc;
  41.   Tc = Temp;
  42.   Tc = Tc / 10;
  43.  
  44.   Tc = Tc *10;                    /*5 tizedre kerekítés*/
  45.   Temp = Tc;
  46.   Temp = Temp / 5;
  47.   Temp = Temp * 5;
  48.   Tc = Temp;
  49.   Tc = Tc / 10;
  50.  
  51.    
  52.   Po = (Poti / 70) + 15;          /*Poti celziusszá alakítása*/
  53.  
  54.   Po = Po * 10;                   /*Csak tizedes számjegyek legyenek*/
  55.   Temp = Po;
  56.   Po = Temp;
  57.   Po = Po / 10;
  58.  
  59.   Po = Po *10;                    /*5 tizedesre kerekítés*/
  60.   Temp = Po;
  61.   Temp = Temp /5;
  62.   Temp = Temp *5;
  63.   Po = Temp;
  64.   Po = Po /10;  
  65.  
  66.  
  67.   lcd.begin(16, 2);               /*Kijelző konfig*/
  68.   lcd.setCursor(0,0);             /*Kezdő pozició megadás, bal felső sarok*/
  69.   lcd.print("H");                 /*Kjelzőn megjelnő infó kiírása*/
  70.   lcd.print((char)239);           /*ő betű kiírása*/
  71.   lcd.print("m.=");
  72.   lcd.print(Tc,1);  
  73.   lcd.print(" C");
  74.   lcd.print((char)223);           /*fok kiírása*/
  75.   lcd.setCursor(0,1);             /*Második sor megadása*/
  76.   lcd.print("C");
  77.   lcd.write(byte(0));             /*é betű kirajzolása*/
  78.   lcd.print("l =");
  79.   lcd.print(Po,1);
  80.   lcd.print(" C");
  81.   lcd.print((char)223);           /*fok kiírása*/
  82.  
  83.   if (Tc >= Po){                  /*Beállított érték és a mért érték összehasonlítása*/
  84.     digitalWrite(pinOut, LOW);    /*Ha nagyobb nincs bekapcsolva a relay*/
  85.   }
  86.     else {
  87.     digitalWrite(pinOut, HIGH);   /*Egyébként meg be van kapcsolva*/
  88.     }
  89.   delay(500);           /*1mp időköz*/
  90. /*  lcd.clear();           /*kijelző törlése*/
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement