Advertisement
CamolaZ

SSProjectWSI

Sep 9th, 2019
195
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.51 KB | None | 0 0
  1. #include "mbed.h"
  2. //#include "TextLCD.h"
  3.  
  4. #define voltage 3300;
  5. #define ON 0;
  6. #define OFF 1;
  7.  
  8. AnalogIn analog_light(A4);
  9. AnalogIn analog_humid(A0);
  10.  
  11. Serial pc(SERIAL_TX, SERIAL_RX);
  12.  
  13. DigitalOut led_D1( PA_5 );  // Vermelho
  14. DigitalOut led_D2( PA_6 );  // Verde
  15. DigitalOut led_D3( PA_7 );  // Azul
  16.  
  17. DigitalOut sw_s1( PB_6 );   //relay
  18.  
  19. //TextLCD lcd(D8, D3, D7, D6, D5, D4, TextLCD::LCD8x2);
  20.  
  21. bool verificacao(float humid_sensor, float light_sensor);
  22. void liga_rega(float humid_sensor);
  23.  
  24.  
  25. int main()
  26. {
  27.     pc.printf("Hello World");
  28.     float light_sensor, humid_sensor;
  29.     int /*count=0, a=0,*/ disp=0;
  30.     bool rega;
  31.  
  32.     sw_s1=OFF;
  33.     led_D1 = !false;
  34.     led_D2 = !false;
  35.     led_D3 = !false;
  36.     //  lcd.cls();
  37.  
  38.     while(1) {
  39.  
  40.         humid_sensor =1- analog_humid.read();
  41.         light_sensor = analog_light.read();
  42.  
  43.  
  44.         //se for noite e estiver entre 0.25 e 0.3 liga amarelo
  45.         if(humid_sensor<0.75f) {
  46.             led_D2=!true;
  47.  
  48.         } else {
  49.             led_D2=!false;
  50.         }
  51.  
  52.         //se for dia e estiver entre 0.3 e 0.4 liga vermelho
  53.         if(humid_sensor<0.65f) {
  54.             led_D1=!true;
  55.         } else {
  56.             led_D1=!false;
  57.         }
  58.  
  59.         //changes LCD every 15 seconds
  60.         /*       if(count>14) {
  61.                 //   if(a==0)a=1;
  62.                    else if(a==1)a=0;
  63.                    count=0;
  64.                }*/
  65.  
  66. //if(a==0) {
  67.         //       lcd.cls();
  68.         disp=light_sensor*100;
  69. /*lcd.*/pc.printf("Light: %d%%\n", disp);
  70.         //      } else if(a==1) {
  71.         disp=humid_sensor*100;
  72.         //lcd.cls();
  73. /*lcd.*/pc.printf("Humidity: %d%%\n", disp);
  74.         // }
  75.         light_sensor*=voltage;
  76.  
  77.         pc.printf( "light: %f \n\r humid: %f \n\r\n\r", light_sensor, humid_sensor );
  78.  
  79.         rega= verificacao(humid_sensor, (float) light_sensor);
  80.         if(rega) {
  81.             liga_rega(humid_sensor);
  82.         }
  83.         wait_ms(1000);
  84.         //  count++;
  85.     }
  86. }
  87.  
  88. bool verificacao(float humid_sensor, float light_sensor)
  89. {
  90.  
  91.     if( (light_sensor<330 && humid_sensor<0.7f) || (humid_sensor< 0.6f)) {
  92.  
  93.         return true;
  94.     } else return false;
  95. }
  96.  
  97. void liga_rega(float humid_sensor)
  98. {
  99.     //liga verde
  100.     led_D1=!true;
  101.     led_D2=!true;
  102.     while(humid_sensor<0.75f) {
  103.         humid_sensor = 1-analog_humid.read();
  104.         //LIGAR MOTOR
  105.         sw_s1=ON;
  106.         pc.printf("humid: %f \n\r\n\r", humid_sensor);
  107.         wait(1);
  108.     }
  109.     sw_s1=OFF;
  110.     led_D1=!false;
  111.     led_D2=!false;
  112.     return;
  113. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement