Advertisement
Demetra4

fotovoltaic

Jun 2nd, 2020
233
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Arduino 33.02 KB | None | 0 0
  1. #include <Wire.h>
  2. #include "ds3231.h" // Biblioteca pentru modulul RTC DS3231
  3. #include <Servo.h> // Biblioteca pentru servo motor
  4.  
  5. const int cellVoltage = A0; // Portul la care e legat panoul solar (input between 0 - 1023)
  6.  
  7. uint8_t time[8];
  8. unsigned long prev, interval = 15UL * 60UL * 1000UL; // UL = unsigned long - 15 minute * 60 secunde * 1000 milisecunde => interval [milis]
  9.  
  10. // Functie de initializare a RTC-ului
  11. /*#define BUFF_MAX 128
  12. char recv[BUFF_MAX];
  13. unsigned int recv_size = 0;
  14. void parse_cmd(char *cmd, int cmdsize);
  15. void parse_cmd(char *cmd, int cmdsize)
  16. {
  17.     uint8_t i;
  18.     uint8_t reg_val;
  19.     char buff[BUFF_MAX];
  20.     struct ts t;
  21.  
  22.     //snprintf(buff, BUFF_MAX, "cmd was '%s' %d\n", cmd, cmdsize);
  23.     //Serial.print(buff);
  24.  
  25.     // TssmmhhWDDMMYYYY aka set time
  26.     if (cmd[0] == 84 && cmdsize == 16) {
  27.         //T355720619112011
  28.         t.sec = inp2toi(cmd, 1);
  29.         t.min = inp2toi(cmd, 3);
  30.         t.hour = inp2toi(cmd, 5);
  31.         t.wday = cmd[7] - 48;
  32.         t.mday = inp2toi(cmd, 8);
  33.         t.mon = inp2toi(cmd, 10);
  34.         t.year = inp2toi(cmd, 12) * 100 + inp2toi(cmd, 14);
  35.         DS3231_set(t);
  36.         Serial.println("OK");
  37.     } else if (cmd[0] == 49 && cmdsize == 1) {  // "1" get alarm 1
  38.         DS3231_get_a1(&buff[0], 59);
  39.         Serial.println(buff);
  40.     } else if (cmd[0] == 50 && cmdsize == 1) {  // "2" get alarm 1
  41.         DS3231_get_a2(&buff[0], 59);
  42.         Serial.println(buff);
  43.     } else if (cmd[0] == 51 && cmdsize == 1) {  // "3" get aging register
  44.         Serial.print("aging reg is ");
  45.         Serial.println(DS3231_get_aging(), DEC);
  46.     } else if (cmd[0] == 65 && cmdsize == 9) {  // "A" set alarm 1
  47.         DS3231_set_creg(DS3231_CONTROL_INTCN | DS3231_CONTROL_A1IE);
  48.         //ASSMMHHDD
  49.         for (i = 0; i < 4; i++) {
  50.             time[i] = (cmd[2 * i + 1] - 48) * 10 + cmd[2 * i + 2] - 48; // ss, mm, hh, dd
  51.         }
  52.         uint8_t flags[5] = { 0, 0, 0, 0, 0 };
  53.         DS3231_set_a1(time[0], time[1], time[2], time[3], flags);
  54.         DS3231_get_a1(&buff[0], 59);
  55.         Serial.println(buff);
  56.     } else if (cmd[0] == 66 && cmdsize == 7) {  // "B" Set Alarm 2
  57.         DS3231_set_creg(DS3231_CONTROL_INTCN | DS3231_CONTROL_A2IE);
  58.         //BMMHHDD
  59.         for (i = 0; i < 4; i++) {
  60.             time[i] = (cmd[2 * i + 1] - 48) * 10 + cmd[2 * i + 2] - 48; // mm, hh, dd
  61.         }
  62.         uint8_t flags[5] = { 0, 0, 0, 0 };
  63.         DS3231_set_a2(time[0], time[1], time[2], flags);
  64.         DS3231_get_a2(&buff[0], 59);
  65.         Serial.println(buff);
  66.     } else if (cmd[0] == 67 && cmdsize == 1) {  // "C" - get temperature register
  67.         Serial.print("temperature reg is ");
  68.         Serial.println(DS3231_get_treg(), DEC);
  69.     } else if (cmd[0] == 68 && cmdsize == 1) {  // "D" - reset status register alarm flags
  70.         reg_val = DS3231_get_sreg();
  71.         reg_val &= B11111100;
  72.         DS3231_set_sreg(reg_val);
  73.     } else if (cmd[0] == 70 && cmdsize == 1) {  // "F" - custom fct
  74.         reg_val = DS3231_get_addr(0x5);
  75.         Serial.print("orig ");
  76.         Serial.print(reg_val,DEC);
  77.         Serial.print("month is ");
  78.         Serial.println(bcdtodec(reg_val & 0x1F),DEC);
  79.     } else if (cmd[0] == 71 && cmdsize == 1) {  // "G" - set aging status register
  80.         DS3231_set_aging(0);
  81.     } else if (cmd[0] == 83 && cmdsize == 1) {  // "S" - get status register
  82.         Serial.print("status reg is ");
  83.         Serial.println(DS3231_get_sreg(), DEC);
  84.     } else {
  85.         Serial.print("unknown command prefix ");
  86.         Serial.println(cmd[0]);
  87.         Serial.println(cmd[0], DEC);
  88.     }
  89. }*/
  90.  
  91.  
  92. // Servo
  93. Servo myServo;
  94. const int portServo = 9;
  95. int angle = 0;
  96.  
  97. struct daytime{
  98.      int rasarit;
  99.      int apus;
  100. };
  101.  
  102. daytime vectorDayTime[180]; // Folosim doar 180/366 de zile, din motive de memorie
  103.  
  104. int luna, zi, ora, minut;
  105.  
  106. int ora_curenta_minute, ziua_curenta;
  107.  
  108. int zi_curenta() { // input luna + zi, output: a n-a zi din an
  109.   switch(luna){
  110.       case 1:  return zi; break;
  111.       case 2:  return zi + 31; break;
  112.       case 3:  return zi + 31 + 29; break;
  113.       case 4:  return zi + 31 + 29 + 31; break;
  114.       case 5:  return zi + 31 + 29 + 31 + 30; break;
  115.       case 6:  return zi + 31 + 29 + 31 + 30 + 31; break;
  116.       case 7:  return zi + 31 + 29 + 31 + 30 + 31 + 30; break;
  117.       case 8:  return zi + 31 + 29 + 31 + 30 + 31 + 30 + 31; break;
  118.       case 9:  return zi + 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31; break;
  119.       case 10: return zi + 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30; break;
  120.       case 11: return zi + 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31; break;
  121.       case 12: return zi + 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30; break;
  122.       default: return 0; break;
  123.   }
  124. }
  125.  
  126. int minut_curent() { // al n-lea minut din zi
  127.     return ora*60 + minut;
  128. }
  129.  
  130. int map_angle() { // functia care ne mapeaza ora curenta in minute la unghi
  131.     if(ora_curenta_minute < vectorDayTime[ziua_curenta].rasarit){
  132.         return 10;
  133.         Serial.println("Mod rasarit activat - unghi: 10 grade");
  134.     }
  135.     if(ora_curenta_minute > vectorDayTime[ziua_curenta].apus){
  136.         return 170;
  137.         Serial.println("Mod apus activat - unghi: 170 grade");
  138.     }
  139.     double procent = map(ora_curenta_minute, vectorDayTime[ziua_curenta].rasarit, vectorDayTime[ziua_curenta].apus, 0, 1000);
  140.     double unghi = 10 + procent * 160 / 1000.0;
  141.     Serial.print("A n-a zi din an        : ");Serial.println(ziua_curenta);
  142.     Serial.print("Ora curenta [minute]   : ");Serial.println(ora_curenta_minute);
  143.     Serial.print("Ora rasarit [minute]   : ");Serial.println(vectorDayTime[ziua_curenta].rasarit);
  144.     Serial.print("Ora apus    [minute]   : ");Serial.println(vectorDayTime[ziua_curenta].apus);
  145.     Serial.print("Procentul trecut din zi: ");Serial.println(procent/1000.0);
  146.     Serial.print("Unghiul [float]        : ");Serial.println(unghi);
  147.     return (int)unghi;
  148. }
  149.  
  150. void setup(){
  151.     Serial.begin(9600);
  152.     Wire.begin();
  153.     DS3231_init(DS3231_CONTROL_INTCN);
  154.     Serial.println("Normal functioning");
  155.  
  156.     //Doar pentru initializarea timpului pe RTC (deoarece nu avem acumulator (LIR...) introdus in modul)
  157.     //Serial.println("Initialization");
  158.     //parse_cmd("T000718630052020",16);
  159.               //TssmmhhWDDMMYYYY
  160.  
  161.     // Initializare rasarit si apus
  162.     vectorDayTime[1].rasarit = 496; vectorDayTime[1].apus = 1020;
  163.     vectorDayTime[2].rasarit = 496; vectorDayTime[2].apus = 1021;
  164.     vectorDayTime[3].rasarit = 496; vectorDayTime[3].apus = 1022;
  165.     vectorDayTime[4].rasarit = 496; vectorDayTime[4].apus = 1023;
  166.     vectorDayTime[5].rasarit = 495; vectorDayTime[5].apus = 1024;
  167.     vectorDayTime[6].rasarit = 495; vectorDayTime[6].apus = 1025;
  168.     vectorDayTime[7].rasarit = 495; vectorDayTime[7].apus = 1026;
  169.     vectorDayTime[8].rasarit = 495; vectorDayTime[8].apus = 1027;
  170.     vectorDayTime[9].rasarit = 495; vectorDayTime[9].apus = 1029;
  171.     vectorDayTime[10].rasarit = 494; vectorDayTime[10].apus = 1030;
  172.     vectorDayTime[11].rasarit = 494; vectorDayTime[11].apus = 1031;
  173.     vectorDayTime[12].rasarit = 494; vectorDayTime[12].apus = 1032;
  174.     vectorDayTime[13].rasarit = 493; vectorDayTime[13].apus = 1033;
  175.     vectorDayTime[14].rasarit = 493; vectorDayTime[14].apus = 1035;
  176.     vectorDayTime[15].rasarit = 492; vectorDayTime[15].apus = 1036;
  177.     vectorDayTime[16].rasarit = 492; vectorDayTime[16].apus = 1037;
  178.     vectorDayTime[17].rasarit = 491; vectorDayTime[17].apus = 1038;
  179.     vectorDayTime[18].rasarit = 490; vectorDayTime[18].apus = 1040;
  180.     vectorDayTime[19].rasarit = 490; vectorDayTime[19].apus = 1041;
  181.     vectorDayTime[20].rasarit = 488; vectorDayTime[20].apus = 1042;
  182.     vectorDayTime[21].rasarit = 488; vectorDayTime[21].apus = 1044;
  183.     vectorDayTime[22].rasarit = 487; vectorDayTime[22].apus = 1045;
  184.     vectorDayTime[23].rasarit = 486; vectorDayTime[23].apus = 1047;
  185.     vectorDayTime[24].rasarit = 485; vectorDayTime[24].apus = 1048;
  186.     vectorDayTime[25].rasarit = 485; vectorDayTime[25].apus = 1049;
  187.     vectorDayTime[26].rasarit = 484; vectorDayTime[26].apus = 1051;
  188.     vectorDayTime[27].rasarit = 483; vectorDayTime[27].apus = 1052;
  189.     vectorDayTime[28].rasarit = 482; vectorDayTime[28].apus = 1054;
  190.     vectorDayTime[29].rasarit = 481; vectorDayTime[29].apus = 1055;
  191.     vectorDayTime[30].rasarit = 479; vectorDayTime[30].apus = 1057;
  192.     vectorDayTime[31].rasarit = 478; vectorDayTime[31].apus = 1058;
  193.     vectorDayTime[32].rasarit = 477; vectorDayTime[32].apus = 1060;
  194.     vectorDayTime[33].rasarit = 476; vectorDayTime[33].apus = 1061;
  195.     vectorDayTime[34].rasarit = 475; vectorDayTime[34].apus = 1063;
  196.     vectorDayTime[35].rasarit = 473; vectorDayTime[35].apus = 1064;
  197.     vectorDayTime[36].rasarit = 472; vectorDayTime[36].apus = 1065;
  198.     vectorDayTime[37].rasarit = 471; vectorDayTime[37].apus = 1067;
  199.     vectorDayTime[38].rasarit = 470; vectorDayTime[38].apus = 1068;
  200.     vectorDayTime[39].rasarit = 468; vectorDayTime[39].apus = 1070;
  201.     vectorDayTime[40].rasarit = 467; vectorDayTime[40].apus = 1071;
  202.     vectorDayTime[41].rasarit = 465; vectorDayTime[41].apus = 1073;
  203.     vectorDayTime[42].rasarit = 464; vectorDayTime[42].apus = 1074;
  204.     vectorDayTime[43].rasarit = 462; vectorDayTime[43].apus = 1076;
  205.     vectorDayTime[44].rasarit = 461; vectorDayTime[44].apus = 1077;
  206.     vectorDayTime[45].rasarit = 459; vectorDayTime[45].apus = 1079;
  207.     vectorDayTime[46].rasarit = 458; vectorDayTime[46].apus = 1080;
  208.     vectorDayTime[47].rasarit = 456; vectorDayTime[47].apus = 1082;
  209.     vectorDayTime[48].rasarit = 455; vectorDayTime[48].apus = 1083;
  210.     vectorDayTime[49].rasarit = 453; vectorDayTime[49].apus = 1085;
  211.     vectorDayTime[50].rasarit = 452; vectorDayTime[50].apus = 1086;
  212.     vectorDayTime[51].rasarit = 450; vectorDayTime[51].apus = 1087;
  213.     vectorDayTime[52].rasarit = 448; vectorDayTime[52].apus = 1089;
  214.     vectorDayTime[53].rasarit = 447; vectorDayTime[53].apus = 1090;
  215.     vectorDayTime[54].rasarit = 445; vectorDayTime[54].apus = 1092;
  216.     vectorDayTime[55].rasarit = 443; vectorDayTime[55].apus = 1093;
  217.     vectorDayTime[56].rasarit = 442; vectorDayTime[56].apus = 1095;
  218.     vectorDayTime[57].rasarit = 440; vectorDayTime[57].apus = 1096;
  219.     vectorDayTime[58].rasarit = 438; vectorDayTime[58].apus = 1097;
  220.     vectorDayTime[59].rasarit = 436; vectorDayTime[59].apus = 1100;
  221.     vectorDayTime[60].rasarit = 435; vectorDayTime[60].apus = 1100;
  222.     vectorDayTime[61].rasarit = 433; vectorDayTime[61].apus = 1102;
  223.     vectorDayTime[62].rasarit = 431; vectorDayTime[62].apus = 1103;
  224.     vectorDayTime[63].rasarit = 429; vectorDayTime[63].apus = 1104;
  225.     vectorDayTime[64].rasarit = 427; vectorDayTime[64].apus = 1106;
  226.     vectorDayTime[65].rasarit = 425; vectorDayTime[65].apus = 1107;
  227.     vectorDayTime[66].rasarit = 424; vectorDayTime[66].apus = 1109;
  228.     vectorDayTime[67].rasarit = 422; vectorDayTime[67].apus = 1110;
  229.     vectorDayTime[68].rasarit = 420; vectorDayTime[68].apus = 1111;
  230.     vectorDayTime[69].rasarit = 418; vectorDayTime[69].apus = 1113;
  231.     vectorDayTime[70].rasarit = 416; vectorDayTime[70].apus = 1114;
  232.     vectorDayTime[71].rasarit = 414; vectorDayTime[71].apus = 1115;
  233.     vectorDayTime[72].rasarit = 412; vectorDayTime[72].apus = 1117;
  234.     vectorDayTime[73].rasarit = 411; vectorDayTime[73].apus = 1118;
  235.     vectorDayTime[74].rasarit = 409; vectorDayTime[74].apus = 1119;
  236.     vectorDayTime[75].rasarit = 407; vectorDayTime[75].apus = 1121;
  237.     vectorDayTime[76].rasarit = 405; vectorDayTime[76].apus = 1122;
  238.     vectorDayTime[77].rasarit = 403; vectorDayTime[77].apus = 1124;
  239.     vectorDayTime[78].rasarit = 401; vectorDayTime[78].apus = 1125;
  240.     vectorDayTime[79].rasarit = 399; vectorDayTime[79].apus = 1126;
  241.     vectorDayTime[80].rasarit = 397; vectorDayTime[80].apus = 1128;
  242.     vectorDayTime[81].rasarit = 395; vectorDayTime[81].apus = 1129;
  243.     vectorDayTime[82].rasarit = 393; vectorDayTime[82].apus = 1130;
  244.     vectorDayTime[83].rasarit = 391; vectorDayTime[83].apus = 1131;
  245.     vectorDayTime[84].rasarit = 390; vectorDayTime[84].apus = 1133;
  246.     vectorDayTime[85].rasarit = 388; vectorDayTime[85].apus = 1134;
  247.     vectorDayTime[86].rasarit = 386; vectorDayTime[86].apus = 1135;
  248.     vectorDayTime[87].rasarit = 384; vectorDayTime[87].apus = 1137;
  249.     vectorDayTime[88].rasarit = 382; vectorDayTime[88].apus = 1138;
  250.     vectorDayTime[89].rasarit = 440; vectorDayTime[89].apus = 1199;
  251.     vectorDayTime[90].rasarit = 438; vectorDayTime[90].apus = 1201;
  252.     vectorDayTime[91].rasarit = 436; vectorDayTime[91].apus = 1202;
  253.     vectorDayTime[92].rasarit = 434; vectorDayTime[92].apus = 1203;
  254.     vectorDayTime[93].rasarit = 432; vectorDayTime[93].apus = 1205;
  255.     vectorDayTime[94].rasarit = 430; vectorDayTime[94].apus = 1206;
  256.     vectorDayTime[95].rasarit = 429; vectorDayTime[95].apus = 1207;
  257.     vectorDayTime[96].rasarit = 427; vectorDayTime[96].apus = 1209;
  258.     vectorDayTime[97].rasarit = 425; vectorDayTime[97].apus = 1210;
  259.     vectorDayTime[98].rasarit = 423; vectorDayTime[98].apus = 1211;
  260.     vectorDayTime[99].rasarit = 421; vectorDayTime[99].apus = 1212;
  261.     vectorDayTime[100].rasarit = 419; vectorDayTime[100].apus = 1214;
  262.     vectorDayTime[101].rasarit = 417; vectorDayTime[101].apus = 1215;
  263.     vectorDayTime[102].rasarit = 416; vectorDayTime[102].apus = 1216;
  264.     vectorDayTime[103].rasarit = 414; vectorDayTime[103].apus = 1218;
  265.     vectorDayTime[104].rasarit = 412; vectorDayTime[104].apus = 1219;
  266.     vectorDayTime[105].rasarit = 410; vectorDayTime[105].apus = 1220;
  267.     vectorDayTime[106].rasarit = 408; vectorDayTime[106].apus = 1222;
  268.     vectorDayTime[107].rasarit = 407; vectorDayTime[107].apus = 1223;
  269.     vectorDayTime[108].rasarit = 405; vectorDayTime[108].apus = 1224;
  270.     vectorDayTime[109].rasarit = 403; vectorDayTime[109].apus = 1226;
  271.     vectorDayTime[110].rasarit = 401; vectorDayTime[110].apus = 1227;
  272.     vectorDayTime[111].rasarit = 400; vectorDayTime[111].apus = 1228;
  273.     vectorDayTime[112].rasarit = 398; vectorDayTime[112].apus = 1229;
  274.     vectorDayTime[113].rasarit = 396; vectorDayTime[113].apus = 1231;
  275.     vectorDayTime[114].rasarit = 395; vectorDayTime[114].apus = 1232;
  276.     vectorDayTime[115].rasarit = 393; vectorDayTime[115].apus = 1233;
  277.     vectorDayTime[116].rasarit = 391; vectorDayTime[116].apus = 1235;
  278.     vectorDayTime[117].rasarit = 390; vectorDayTime[117].apus = 1236;
  279.     vectorDayTime[118].rasarit = 388; vectorDayTime[118].apus = 1237;
  280.     vectorDayTime[119].rasarit = 386; vectorDayTime[119].apus = 1239;
  281.     vectorDayTime[120].rasarit = 385; vectorDayTime[120].apus = 1240;
  282.     vectorDayTime[121].rasarit = 383; vectorDayTime[121].apus = 1241;
  283.     vectorDayTime[122].rasarit = 382; vectorDayTime[122].apus = 1242;
  284.     vectorDayTime[123].rasarit = 380; vectorDayTime[123].apus = 1244;
  285.     vectorDayTime[124].rasarit = 379; vectorDayTime[124].apus = 1245;
  286.     vectorDayTime[125].rasarit = 377; vectorDayTime[125].apus = 1246;
  287.     vectorDayTime[126].rasarit = 376; vectorDayTime[126].apus = 1247;
  288.     vectorDayTime[127].rasarit = 374; vectorDayTime[127].apus = 1249;
  289.     vectorDayTime[128].rasarit = 373; vectorDayTime[128].apus = 1250;
  290.     vectorDayTime[129].rasarit = 372; vectorDayTime[129].apus = 1251;
  291.     vectorDayTime[130].rasarit = 370; vectorDayTime[130].apus = 1252;
  292.     vectorDayTime[131].rasarit = 369; vectorDayTime[131].apus = 1254;
  293.     vectorDayTime[132].rasarit = 368; vectorDayTime[132].apus = 1255;
  294.     vectorDayTime[133].rasarit = 367; vectorDayTime[133].apus = 1256;
  295.     vectorDayTime[134].rasarit = 365; vectorDayTime[134].apus = 1257;
  296.     vectorDayTime[135].rasarit = 364; vectorDayTime[135].apus = 1258;
  297.     vectorDayTime[136].rasarit = 363; vectorDayTime[136].apus = 1260;
  298.     vectorDayTime[137].rasarit = 362; vectorDayTime[137].apus = 1261;
  299.     vectorDayTime[138].rasarit = 361; vectorDayTime[138].apus = 1262;
  300.     vectorDayTime[139].rasarit = 360; vectorDayTime[139].apus = 1263;
  301.     vectorDayTime[140].rasarit = 359; vectorDayTime[140].apus = 1264;
  302.     vectorDayTime[141].rasarit = 358; vectorDayTime[141].apus = 1265;
  303.     vectorDayTime[142].rasarit = 357; vectorDayTime[142].apus = 1266;
  304.     vectorDayTime[143].rasarit = 356; vectorDayTime[143].apus = 1268;
  305.     vectorDayTime[144].rasarit = 355; vectorDayTime[144].apus = 1269;
  306.     vectorDayTime[145].rasarit = 354; vectorDayTime[145].apus = 1270;
  307.     vectorDayTime[146].rasarit = 353; vectorDayTime[146].apus = 1271;
  308.     vectorDayTime[147].rasarit = 352; vectorDayTime[147].apus = 1272;
  309.     vectorDayTime[148].rasarit = 352; vectorDayTime[148].apus = 1273;
  310.     vectorDayTime[149].rasarit = 351; vectorDayTime[149].apus = 1274;
  311.     vectorDayTime[150].rasarit = 350; vectorDayTime[150].apus = 1275;
  312.     vectorDayTime[151].rasarit = 349; vectorDayTime[151].apus = 1275;
  313.     vectorDayTime[152].rasarit = 349; vectorDayTime[152].apus = 1276;
  314.     vectorDayTime[153].rasarit = 348; vectorDayTime[153].apus = 1277;
  315.     vectorDayTime[154].rasarit = 348; vectorDayTime[154].apus = 1278;
  316.     vectorDayTime[155].rasarit = 347; vectorDayTime[155].apus = 1279;
  317.     vectorDayTime[156].rasarit = 347; vectorDayTime[156].apus = 1280;
  318.     vectorDayTime[157].rasarit = 346; vectorDayTime[157].apus = 1280;
  319.     vectorDayTime[158].rasarit = 346; vectorDayTime[158].apus = 1281;
  320.     vectorDayTime[159].rasarit = 346; vectorDayTime[159].apus = 1282;
  321.     vectorDayTime[160].rasarit = 345; vectorDayTime[160].apus = 1283;
  322.     vectorDayTime[161].rasarit = 345; vectorDayTime[161].apus = 1283;
  323.     vectorDayTime[162].rasarit = 345; vectorDayTime[162].apus = 1284;
  324.     vectorDayTime[163].rasarit = 345; vectorDayTime[163].apus = 1284;
  325.     vectorDayTime[164].rasarit = 344; vectorDayTime[164].apus = 1285;
  326.     vectorDayTime[165].rasarit = 344; vectorDayTime[165].apus = 1285;
  327.     vectorDayTime[166].rasarit = 344; vectorDayTime[166].apus = 1286;
  328.     vectorDayTime[167].rasarit = 344; vectorDayTime[167].apus = 1286;
  329.     vectorDayTime[168].rasarit = 344; vectorDayTime[168].apus = 1287;
  330.     vectorDayTime[169].rasarit = 344; vectorDayTime[169].apus = 1287;
  331.     vectorDayTime[170].rasarit = 344; vectorDayTime[170].apus = 1287;
  332.     vectorDayTime[171].rasarit = 345; vectorDayTime[171].apus = 1288;
  333.     /*vectorDayTime[172].rasarit = 345; vectorDayTime[172].apus = 1288;
  334.     vectorDayTime[173].rasarit = 345; vectorDayTime[173].apus = 1288;
  335.     vectorDayTime[174].rasarit = 345; vectorDayTime[174].apus = 1288;
  336.     vectorDayTime[175].rasarit = 345; vectorDayTime[175].apus = 1288;
  337.     vectorDayTime[176].rasarit = 346; vectorDayTime[176].apus = 1288;
  338.     vectorDayTime[177].rasarit = 346; vectorDayTime[177].apus = 1288;
  339.     vectorDayTime[178].rasarit = 347; vectorDayTime[178].apus = 1289;
  340.     vectorDayTime[179].rasarit = 347; vectorDayTime[179].apus = 1288;
  341.     vectorDayTime[180].rasarit = 347; vectorDayTime[180].apus = 1288;
  342.     vectorDayTime[181].rasarit = 348; vectorDayTime[181].apus = 1288;
  343.     vectorDayTime[182].rasarit = 348; vectorDayTime[182].apus = 1288;
  344.     vectorDayTime[183].rasarit = 349; vectorDayTime[183].apus = 1288;
  345.     vectorDayTime[184].rasarit = 350; vectorDayTime[184].apus = 1288;
  346.     vectorDayTime[185].rasarit = 350; vectorDayTime[185].apus = 1287;
  347.     vectorDayTime[186].rasarit = 351; vectorDayTime[186].apus = 1287;
  348.     vectorDayTime[187].rasarit = 352; vectorDayTime[187].apus = 1287;
  349.     vectorDayTime[188].rasarit = 352; vectorDayTime[188].apus = 1286;
  350.     vectorDayTime[189].rasarit = 353; vectorDayTime[189].apus = 1286;
  351.     vectorDayTime[190].rasarit = 354; vectorDayTime[190].apus = 1285;
  352.     vectorDayTime[191].rasarit = 355; vectorDayTime[191].apus = 1285;
  353.     vectorDayTime[192].rasarit = 356; vectorDayTime[192].apus = 1284;
  354.     vectorDayTime[193].rasarit = 357; vectorDayTime[193].apus = 1284;
  355.     vectorDayTime[194].rasarit = 358; vectorDayTime[194].apus = 1283;
  356.     vectorDayTime[195].rasarit = 359; vectorDayTime[195].apus = 1282;
  357.     vectorDayTime[196].rasarit = 359; vectorDayTime[196].apus = 1282;
  358.     vectorDayTime[197].rasarit = 360; vectorDayTime[197].apus = 1281;
  359.     vectorDayTime[198].rasarit = 361; vectorDayTime[198].apus = 1270;
  360.     vectorDayTime[199].rasarit = 362; vectorDayTime[199].apus = 1279;
  361.     vectorDayTime[200].rasarit = 363; vectorDayTime[200].apus = 1278;
  362.     vectorDayTime[201].rasarit = 364; vectorDayTime[201].apus = 1278;
  363.     vectorDayTime[202].rasarit = 365; vectorDayTime[202].apus = 1277;
  364.     vectorDayTime[203].rasarit = 366; vectorDayTime[203].apus = 1276;
  365.     vectorDayTime[204].rasarit = 367; vectorDayTime[204].apus = 1275;
  366.     vectorDayTime[205].rasarit = 368; vectorDayTime[205].apus = 1274;
  367.     vectorDayTime[206].rasarit = 369; vectorDayTime[206].apus = 1273;
  368.     vectorDayTime[207].rasarit = 370; vectorDayTime[207].apus = 1271;
  369.     vectorDayTime[208].rasarit = 371; vectorDayTime[208].apus = 1270;
  370.     vectorDayTime[209].rasarit = 372; vectorDayTime[209].apus = 1269;
  371.     vectorDayTime[210].rasarit = 373; vectorDayTime[210].apus = 1268;
  372.     vectorDayTime[211].rasarit = 375; vectorDayTime[211].apus = 1267;
  373.     vectorDayTime[212].rasarit = 376; vectorDayTime[212].apus = 1266;
  374.     vectorDayTime[213].rasarit = 377; vectorDayTime[213].apus = 1264;
  375.     vectorDayTime[214].rasarit = 378; vectorDayTime[214].apus = 1263;
  376.     vectorDayTime[215].rasarit = 379; vectorDayTime[215].apus = 1262;
  377.     vectorDayTime[216].rasarit = 380; vectorDayTime[216].apus = 1260;
  378.     vectorDayTime[217].rasarit = 382; vectorDayTime[217].apus = 1259;
  379.     vectorDayTime[218].rasarit = 383; vectorDayTime[218].apus = 1257;
  380.     vectorDayTime[219].rasarit = 384; vectorDayTime[219].apus = 1256;
  381.     vectorDayTime[220].rasarit = 385; vectorDayTime[220].apus = 1255;
  382.     vectorDayTime[221].rasarit = 386; vectorDayTime[221].apus = 1253;
  383.     vectorDayTime[222].rasarit = 388; vectorDayTime[222].apus = 1252;
  384.     vectorDayTime[223].rasarit = 389; vectorDayTime[223].apus = 1250;
  385.     vectorDayTime[224].rasarit = 390; vectorDayTime[224].apus = 1249;
  386.     vectorDayTime[225].rasarit = 391; vectorDayTime[225].apus = 1247;
  387.     vectorDayTime[226].rasarit = 393; vectorDayTime[226].apus = 1245;
  388.     vectorDayTime[227].rasarit = 394; vectorDayTime[227].apus = 1244;
  389.     vectorDayTime[228].rasarit = 395; vectorDayTime[228].apus = 1242;
  390.     vectorDayTime[229].rasarit = 396; vectorDayTime[229].apus = 1240;
  391.     vectorDayTime[230].rasarit = 397; vectorDayTime[230].apus = 1239;
  392.     vectorDayTime[231].rasarit = 399; vectorDayTime[231].apus = 1237;
  393.     vectorDayTime[232].rasarit = 400; vectorDayTime[232].apus = 1235;
  394.     vectorDayTime[233].rasarit = 401; vectorDayTime[233].apus = 1234;
  395.     vectorDayTime[234].rasarit = 402; vectorDayTime[234].apus = 1232;
  396.     vectorDayTime[235].rasarit = 404; vectorDayTime[235].apus = 1230;
  397.     vectorDayTime[236].rasarit = 405; vectorDayTime[236].apus = 1228;
  398.     vectorDayTime[237].rasarit = 406; vectorDayTime[237].apus = 1227;
  399.     vectorDayTime[238].rasarit = 407; vectorDayTime[238].apus = 1225;
  400.     vectorDayTime[239].rasarit = 409; vectorDayTime[239].apus = 1223;
  401.     vectorDayTime[240].rasarit = 410; vectorDayTime[240].apus = 1221;
  402.     vectorDayTime[241].rasarit = 411; vectorDayTime[241].apus = 1219;
  403.     vectorDayTime[242].rasarit = 412; vectorDayTime[242].apus = 1218;
  404.     vectorDayTime[243].rasarit = 414; vectorDayTime[243].apus = 1216;
  405.     vectorDayTime[244].rasarit = 415; vectorDayTime[244].apus = 1214;
  406.     vectorDayTime[245].rasarit = 416; vectorDayTime[245].apus = 1212;
  407.     vectorDayTime[246].rasarit = 417; vectorDayTime[246].apus = 1210;
  408.     vectorDayTime[247].rasarit = 418; vectorDayTime[247].apus = 1208;
  409.     vectorDayTime[248].rasarit = 420; vectorDayTime[248].apus = 1206;
  410.     vectorDayTime[249].rasarit = 421; vectorDayTime[249].apus = 1205;
  411.     vectorDayTime[250].rasarit = 422; vectorDayTime[250].apus = 1203;
  412.     vectorDayTime[251].rasarit = 423; vectorDayTime[251].apus = 1201;
  413.     vectorDayTime[252].rasarit = 425; vectorDayTime[252].apus = 1199;
  414.     vectorDayTime[253].rasarit = 426; vectorDayTime[253].apus = 1197;
  415.     vectorDayTime[254].rasarit = 427; vectorDayTime[254].apus = 1195;
  416.     vectorDayTime[255].rasarit = 428; vectorDayTime[255].apus = 1193;
  417.     vectorDayTime[256].rasarit = 429; vectorDayTime[256].apus = 1191;
  418.     vectorDayTime[257].rasarit = 431; vectorDayTime[257].apus = 1189;
  419.     vectorDayTime[258].rasarit = 432; vectorDayTime[258].apus = 1187;
  420.     vectorDayTime[259].rasarit = 433; vectorDayTime[259].apus = 1185;
  421.     vectorDayTime[260].rasarit = 434; vectorDayTime[260].apus = 1183;
  422.     vectorDayTime[261].rasarit = 436; vectorDayTime[261].apus = 1181;
  423.     vectorDayTime[262].rasarit = 437; vectorDayTime[262].apus = 1179;
  424.     vectorDayTime[263].rasarit = 438; vectorDayTime[263].apus = 1177;
  425.     vectorDayTime[264].rasarit = 439; vectorDayTime[264].apus = 1176;
  426.     vectorDayTime[265].rasarit = 441; vectorDayTime[265].apus = 1174;
  427.     vectorDayTime[266].rasarit = 442; vectorDayTime[266].apus = 1172;
  428.     vectorDayTime[267].rasarit = 443; vectorDayTime[267].apus = 1170;
  429.     vectorDayTime[268].rasarit = 444; vectorDayTime[268].apus = 1168;
  430.     vectorDayTime[269].rasarit = 446; vectorDayTime[269].apus = 1166;
  431.     vectorDayTime[270].rasarit = 447; vectorDayTime[270].apus = 1164;
  432.     vectorDayTime[271].rasarit = 448; vectorDayTime[271].apus = 1162;
  433.     vectorDayTime[272].rasarit = 449; vectorDayTime[272].apus = 1160;
  434.     vectorDayTime[273].rasarit = 451; vectorDayTime[273].apus = 1158;
  435.     vectorDayTime[274].rasarit = 452; vectorDayTime[274].apus = 1156;
  436.     vectorDayTime[275].rasarit = 453; vectorDayTime[275].apus = 1154;
  437.     vectorDayTime[276].rasarit = 454; vectorDayTime[276].apus = 1152;
  438.     vectorDayTime[277].rasarit = 456; vectorDayTime[277].apus = 1150;
  439.     vectorDayTime[278].rasarit = 457; vectorDayTime[278].apus = 1149;
  440.     vectorDayTime[279].rasarit = 458; vectorDayTime[279].apus = 1147;
  441.     vectorDayTime[280].rasarit = 460; vectorDayTime[280].apus = 1145;
  442.     vectorDayTime[281].rasarit = 461; vectorDayTime[281].apus = 1143;
  443.     vectorDayTime[282].rasarit = 462; vectorDayTime[282].apus = 1141;
  444.     vectorDayTime[283].rasarit = 464; vectorDayTime[283].apus = 1139;
  445.     vectorDayTime[284].rasarit = 465; vectorDayTime[284].apus = 1137;
  446.     vectorDayTime[285].rasarit = 466; vectorDayTime[285].apus = 1135;
  447.     vectorDayTime[286].rasarit = 468; vectorDayTime[286].apus = 1134;
  448.     vectorDayTime[287].rasarit = 469; vectorDayTime[287].apus = 1132;
  449.     vectorDayTime[288].rasarit = 470; vectorDayTime[288].apus = 1130;
  450.     vectorDayTime[289].rasarit = 472; vectorDayTime[289].apus = 1128;
  451.     vectorDayTime[290].rasarit = 473; vectorDayTime[290].apus = 1127;
  452.     vectorDayTime[291].rasarit = 474; vectorDayTime[291].apus = 1125;
  453.     vectorDayTime[292].rasarit = 476; vectorDayTime[292].apus = 1123;
  454.     vectorDayTime[293].rasarit = 477; vectorDayTime[293].apus = 1121;
  455.     vectorDayTime[294].rasarit = 478; vectorDayTime[294].apus = 1120;
  456.     vectorDayTime[295].rasarit = 480; vectorDayTime[295].apus = 1118;
  457.     vectorDayTime[296].rasarit = 481; vectorDayTime[296].apus = 1116;
  458.     vectorDayTime[297].rasarit = 482; vectorDayTime[297].apus = 1115;
  459.     vectorDayTime[298].rasarit = 484; vectorDayTime[298].apus = 1113;
  460.     vectorDayTime[299].rasarit = 425; vectorDayTime[299].apus = 1051;
  461.     vectorDayTime[300].rasarit = 427; vectorDayTime[300].apus = 1050;
  462.     vectorDayTime[301].rasarit = 428; vectorDayTime[301].apus = 1048;
  463.     vectorDayTime[302].rasarit = 429; vectorDayTime[302].apus = 1047;
  464.     vectorDayTime[303].rasarit = 431; vectorDayTime[303].apus = 1045;
  465.     vectorDayTime[304].rasarit = 432; vectorDayTime[304].apus = 1044;
  466.     vectorDayTime[305].rasarit = 434; vectorDayTime[305].apus = 1042;
  467.     vectorDayTime[306].rasarit = 435; vectorDayTime[306].apus = 1041;
  468.     vectorDayTime[307].rasarit = 436; vectorDayTime[307].apus = 1039;
  469.     vectorDayTime[308].rasarit = 438; vectorDayTime[308].apus = 1038;
  470.     vectorDayTime[309].rasarit = 439; vectorDayTime[309].apus = 1037;
  471.     vectorDayTime[310].rasarit = 441; vectorDayTime[310].apus = 1035;
  472.     vectorDayTime[311].rasarit = 442; vectorDayTime[311].apus = 1034;
  473.     vectorDayTime[312].rasarit = 443; vectorDayTime[312].apus = 1033;
  474.     vectorDayTime[313].rasarit = 445; vectorDayTime[313].apus = 1031;
  475.     vectorDayTime[314].rasarit = 446; vectorDayTime[314].apus = 1030;
  476.     vectorDayTime[315].rasarit = 448; vectorDayTime[315].apus = 1029;
  477.     vectorDayTime[316].rasarit = 449; vectorDayTime[316].apus = 1028;
  478.     vectorDayTime[317].rasarit = 451; vectorDayTime[317].apus = 1027;
  479.     vectorDayTime[318].rasarit = 452; vectorDayTime[318].apus = 1025;
  480.     vectorDayTime[319].rasarit = 453; vectorDayTime[319].apus = 1024;
  481.     vectorDayTime[320].rasarit = 455; vectorDayTime[320].apus = 1023;
  482.     vectorDayTime[321].rasarit = 456; vectorDayTime[321].apus = 1022;
  483.     vectorDayTime[322].rasarit = 457; vectorDayTime[322].apus = 1021;
  484.     vectorDayTime[323].rasarit = 459; vectorDayTime[323].apus = 1020;
  485.     vectorDayTime[324].rasarit = 460; vectorDayTime[324].apus = 1019;
  486.     vectorDayTime[325].rasarit = 462; vectorDayTime[325].apus = 1019;
  487.     vectorDayTime[326].rasarit = 463; vectorDayTime[326].apus = 1018;
  488.     vectorDayTime[327].rasarit = 464; vectorDayTime[327].apus = 1017;
  489.     vectorDayTime[328].rasarit = 466; vectorDayTime[328].apus = 1016;
  490.     vectorDayTime[329].rasarit = 467; vectorDayTime[329].apus = 1016;
  491.     vectorDayTime[330].rasarit = 468; vectorDayTime[330].apus = 1015;
  492.     vectorDayTime[331].rasarit = 469; vectorDayTime[331].apus = 1014;
  493.     vectorDayTime[332].rasarit = 471; vectorDayTime[332].apus = 1014;
  494.     vectorDayTime[333].rasarit = 472; vectorDayTime[333].apus = 1013;
  495.     vectorDayTime[334].rasarit = 473; vectorDayTime[334].apus = 1013;
  496.     vectorDayTime[335].rasarit = 474; vectorDayTime[335].apus = 1013;
  497.     vectorDayTime[336].rasarit = 475; vectorDayTime[336].apus = 1012;
  498.     vectorDayTime[337].rasarit = 477; vectorDayTime[337].apus = 1012;
  499.     vectorDayTime[338].rasarit = 478; vectorDayTime[338].apus = 1011;
  500.     vectorDayTime[339].rasarit = 479; vectorDayTime[339].apus = 1011;
  501.     vectorDayTime[340].rasarit = 480; vectorDayTime[340].apus = 1011;
  502.     vectorDayTime[341].rasarit = 481; vectorDayTime[341].apus = 1011;
  503.     vectorDayTime[342].rasarit = 482; vectorDayTime[342].apus = 1010;
  504.     vectorDayTime[343].rasarit = 483; vectorDayTime[343].apus = 1010;
  505.     vectorDayTime[344].rasarit = 484; vectorDayTime[344].apus = 1010;
  506.     vectorDayTime[345].rasarit = 485; vectorDayTime[345].apus = 1010;
  507.     vectorDayTime[346].rasarit = 486; vectorDayTime[346].apus = 1010;
  508.     vectorDayTime[347].rasarit = 487; vectorDayTime[347].apus = 1010;
  509.     vectorDayTime[348].rasarit = 487; vectorDayTime[348].apus = 1010;
  510.     vectorDayTime[349].rasarit = 488; vectorDayTime[349].apus = 1011;
  511.     vectorDayTime[350].rasarit = 489; vectorDayTime[350].apus = 1011;
  512.     vectorDayTime[351].rasarit = 490; vectorDayTime[351].apus = 1011;
  513.     vectorDayTime[352].rasarit = 490; vectorDayTime[352].apus = 1011;
  514.     vectorDayTime[353].rasarit = 491; vectorDayTime[353].apus = 1012;
  515.     vectorDayTime[354].rasarit = 492; vectorDayTime[354].apus = 1012;
  516.     vectorDayTime[355].rasarit = 492; vectorDayTime[355].apus = 1013;
  517.     vectorDayTime[356].rasarit = 493; vectorDayTime[356].apus = 1013;
  518.     vectorDayTime[357].rasarit = 493; vectorDayTime[357].apus = 1014;
  519.     vectorDayTime[358].rasarit = 494; vectorDayTime[358].apus = 1014;
  520.     vectorDayTime[359].rasarit = 494; vectorDayTime[359].apus = 1015;
  521.     vectorDayTime[360].rasarit = 494; vectorDayTime[360].apus = 1015;
  522.     vectorDayTime[361].rasarit = 495; vectorDayTime[361].apus = 1016;
  523.     vectorDayTime[362].rasarit = 495; vectorDayTime[362].apus = 1017;
  524.     vectorDayTime[363].rasarit = 495; vectorDayTime[363].apus = 1018;
  525.     vectorDayTime[364].rasarit = 495; vectorDayTime[364].apus = 1018;
  526.     vectorDayTime[365].rasarit = 496; vectorDayTime[365].apus = 1019;
  527.     vectorDayTime[366].rasarit = 496; vectorDayTime[366].apus = 1020;*/
  528.  
  529.     //Initializare servo
  530.     myServo.attach(portServo); // Servo atasat portului 9 capabil de PWM
  531.     delay(500);
  532.     myServo.write(angle); // Initializare pozitie servo
  533.     delay(200);
  534.     myServo.detach();
  535. }
  536.  
  537. void loop(){
  538.     unsigned long now = millis(); // timpul de cand a pornit placuta Arduino
  539.     struct ts t;
  540.  
  541.     // secventa repetitiva a functionalitatii autonome
  542.     if ((now - prev > interval) && (Serial.available() <= 0)) {
  543.         DS3231_get(&t); // Extragem timpul din RTC
  544.         luna = t.mon;
  545.         zi = t.mday;
  546.         ora = t.hour;
  547.         minut = t.min;
  548.         int sec = t.sec;
  549.         Serial.print("Ora curenta: ");
  550.         Serial.print(zi);Serial.print(".");Serial.print(luna);Serial.print(".");
  551.         Serial.print("2020 -> ");Serial.print(ora);Serial.print(":");
  552.         Serial.print(minut);Serial.print(":");Serial.println(sec);
  553.         ziua_curenta = zi_curenta();
  554.         ora_curenta_minute = minut_curent();
  555.  
  556.         angle = map_angle();
  557.         myServo.attach(portServo); // Servo atasat portului 9 capabil de PWM
  558.         delay(500);
  559.         myServo.write(180-angle); // Setare unghi servo (180 - angle, deoarece unghiul 0 era pozitionat catre vest, in loc de est)
  560.         delay(200);
  561.         myServo.detach();
  562.         delay(1000);
  563.         int voltage = analogRead(A0); // Citim voltajul de pe panoul fotovoltaic
  564.         float realVoltage = (float)((voltage * 6) / 1023.0); // Mapam input 0 - 1023 la 0 - 6V
  565.        
  566.         Serial.print("Voltajul panoului: ");Serial.println(realVoltage);
  567.         Serial.println("------------------------");
  568.         prev = now;
  569.     }
  570. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement