Advertisement
tiodocomputador

Código Granja

Nov 18th, 2013
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 5.09 KB | None | 0 0
  1. int LATCH1 = 2;
  2. int DATA1 = 3;
  3. int CLK1 = 4;
  4.  
  5. int LATCH2 = 5;
  6. int DATA2 = 6;
  7. int CLK2 = 7;
  8.  
  9. int desce = 8;
  10. int sobe = 9;
  11. int agua = 10;
  12. int vent1 = 11;
  13. int vent2 = 12;
  14. int bomba = 13;
  15. int tempbase=275;
  16.  
  17. //latch: pino 12 no 74hc595
  18. //data: pino 14 no 74hc595
  19. //clock: pino 11 no 74hc595
  20. const int inPin = 0; // analog pin
  21.  
  22.  
  23. byte digito1[10]= {
  24.   B11111101,B01100001,B11011011,B11110011,B01100111,B10110111,B10111111,B11100001,B11111111,B11110111};
  25. byte digito2[10]= {
  26.   B11111101,B01100001,B11011011,B11110011,B01100111,B10110111,B10111111,B11100001,B11111111,B11110111};
  27. byte digito3[10]= {
  28.   B11111101,B01100001,B11011011,B11110011,B01100111,B10110111,B10111111,B11100001,B11111111,B11110111};
  29. byte digito4[10]= {
  30.   B11111101,B01100001,B11011011,B11110011,B01100111,B10110111,B10111111,B11100001,B11111111,B11110111};
  31. byte digito5[10]= {
  32.   B11111101,B01100001,B11011011,B11110011,B01100111,B10110111,B10111111,B11100001,B11111111,B11110111};
  33. byte digito6[10]= {
  34.   B11111101,B01100001,B11011011,B11110011,B01100111,B10110111,B10111111,B11100001,B11111111,B11110111};
  35.  
  36.  
  37. void setup()
  38. {
  39.   Serial.begin(9600);
  40.  
  41.   pinMode(A0, INPUT);
  42.  
  43.   pinMode(LATCH1, OUTPUT);
  44.   pinMode(CLK1, OUTPUT);
  45.   pinMode(DATA1, OUTPUT);
  46.  
  47.   pinMode(LATCH2, OUTPUT);
  48.   pinMode(CLK2, OUTPUT);
  49.   pinMode(DATA2, OUTPUT);  
  50.  
  51.   pinMode(desce, INPUT);
  52.   pinMode(sobe, INPUT);
  53.   pinMode(agua, INPUT);
  54.  
  55.   pinMode(vent1, OUTPUT);
  56.   pinMode(vent2, OUTPUT);
  57.   pinMode(bomba, OUTPUT);  
  58.  
  59. }
  60.  
  61. void loop()
  62. {
  63.   int t=50;
  64.  
  65.   int value = analogRead(inPin);
  66.   float millivolts = (value / 1024.0) * 5000;
  67.   float temperatura = millivolts / 10; // sensor output is 10mV per degree Celsius
  68.   float celsius = millivolts / 10; // sensor output is 10mV per Serial.print(celsius);
  69.   Serial.print(temperatura);
  70.   Serial.print(" degrees Celsius, ");
  71.   Serial.println(" degrees Celsius, ");
  72.  
  73.   int unidade;
  74.   int dezena;
  75.   int centena;
  76.  
  77.   int uni;
  78.   int dez;
  79.   int cent;
  80.  
  81.   {
  82.     {
  83.       int temperatura = analogRead(A0);
  84.       cent = (temperatura/100);
  85.       dezena = ((temperatura - (cent*100)) / 10);
  86.       uni = temperatura - ((100*cent) + (10*dez));
  87.       digitalWrite(LATCH1, LOW);
  88.       shiftOut(DATA1, CLK1, LSBFIRST, digito1[cent]);
  89.       shiftOut(DATA1, CLK1, LSBFIRST, digito2[dez]);
  90.       shiftOut(DATA1, CLK1, LSBFIRST, digito3[uni]);
  91.       digitalWrite(LATCH1, HIGH);
  92.       delay(t);
  93.     }
  94.  
  95.     {
  96.       //separar digitos tempbase exemplo: 285
  97.       centena = (tempbase/100);
  98.       //285/100=2 apenas o numero inteiro é captado
  99.       dezena = ((tempbase - (centena*100)) / 10);
  100.       //285-(2*100)/10 ou seja,285-200 (=85/10=8,5) apenas 8 é jogado no inteiro
  101.       unidade = tempbase - ((100*centena) + (10*dezena));
  102.       // 285-(200+80) ou (285 - 280) = 5
  103.       digitalWrite(LATCH2, LOW);
  104.       shiftOut(DATA2, CLK2, LSBFIRST, digito4[centena]); // escreve a centena no display
  105.       shiftOut(DATA2, CLK2, LSBFIRST, digito5[dezena]); // escreve a dezena no display
  106.       shiftOut(DATA2, CLK2, LSBFIRST, digito6[unidade]); // escreve a unidade no display
  107.       digitalWrite(LATCH2, HIGH);
  108.       delay(t);
  109.     }
  110.     if ((digitalRead(sobe) == HIGH) && (tempbase!=0))
  111.     {
  112.       tempbase = tempbase + 5;
  113.       centena = (tempbase/100);
  114.       dezena = ((tempbase - (centena*100)) / 10);
  115.       unidade = tempbase - ((100*centena) + (10*dezena));
  116.       digitalWrite(LATCH2, LOW);
  117.       shiftOut(DATA2, CLK2, LSBFIRST, digito4[centena]);
  118.       shiftOut(DATA2, CLK2, LSBFIRST, digito5[dezena]);
  119.       shiftOut(DATA2, CLK2, LSBFIRST, digito6[unidade]);
  120.       digitalWrite(LATCH2, HIGH);
  121.       delay(t);
  122.     }
  123.  
  124.     if ((digitalRead(desce) == HIGH) && (tempbase!=0))
  125.     {
  126.       tempbase = tempbase - 5;
  127.       centena=(tempbase/100);
  128.       dezena=((tempbase-(centena*100))/10);
  129.       unidade=tempbase-((100*centena) + (10*dezena));
  130.       digitalWrite(LATCH2, LOW);
  131.       shiftOut(DATA2, CLK2, LSBFIRST, digito4[centena]);
  132.       shiftOut(DATA2, CLK2, LSBFIRST, digito5[dezena]);
  133.       shiftOut(DATA2, CLK2, LSBFIRST, digito6[unidade]);
  134.       digitalWrite(LATCH2, HIGH);
  135.       delay(t);
  136.     }
  137.     if ((temperatura < (tempbase-1)) && (digitalRead(agua) == LOW) && (tempbase!=0))
  138.     {
  139.       digitalWrite(vent1, LOW);
  140.  
  141.       digitalWrite(vent2, LOW);
  142.  
  143.       digitalWrite(bomba, LOW);
  144.     }
  145.  
  146.     else if (((tempbase-1) <= temperatura) && (temperatura < tempbase) && (digitalRead(agua) == LOW) && (tempbase!=0))
  147.     {
  148.       digitalWrite(vent1, HIGH);
  149.  
  150.       digitalWrite(vent2, LOW);
  151.  
  152.       digitalWrite(bomba, LOW);
  153.     }
  154.  
  155.     else if ((tempbase <= temperatura) && (temperatura < (tempbase+1)) && (digitalRead(agua) == LOW) && (tempbase!=0))
  156.     {
  157.       digitalWrite(vent1, HIGH);
  158.  
  159.       digitalWrite(vent2, HIGH);
  160.  
  161.       digitalWrite(bomba, LOW);
  162.     }
  163.     else if (((tempbase+1) <= temperatura) && (digitalRead(agua) == LOW) && (tempbase!=0))
  164.     {
  165.       digitalWrite(vent1, HIGH);
  166.  
  167.       digitalWrite(vent2, HIGH);
  168.  
  169.       digitalWrite(bomba, HIGH);
  170.     }      
  171.     while ((digitalRead(agua) == HIGH) && (tempbase!=0))
  172.     {
  173.       digitalWrite(bomba, HIGH);
  174.     }      
  175.   }
  176. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement