RuiViana

PWM_Porcentual

Oct 1st, 2016
221
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <Thermistor.h>             // Adiciona a biblioteca
  2. #define red 3                       // Pino de saída PWM 3 digital
  3. Thermistor temp(A0);                // Pino A0 ligado ao sensor NTC10k
  4. unsigned long Tempo = 0;            // Controle de tempo
  5. //------------------------------
  6. void setup()
  7. {
  8.   pinMode (red, OUTPUT);            // Defene como saída
  9.   Serial.begin(9600);               // Inicia o serial monitor
  10. }
  11. //------------------------------
  12. void loop()
  13. {
  14.   if ((millis() - Tempo) > 1000)
  15.   {
  16.     leitura();                      // Criação de uma função
  17.     Tempo = millis();               // Compara Tempo em millis()
  18.   }
  19.   int temperatura = temp.getTemp();
  20.   for (temperatura = 0; temperatura <= 255; temperatura++)   // Faz leitura em temp.getTemp() e imprimi variavel temperatura
  21.   {
  22.     analogWrite (red, temp.getTemp());
  23.   }
  24.   for (temperatura = 255; temperatura >= 0; temperatura--)
  25.   {
  26.     analogWrite (red, temp.getTemp());
  27.   }
  28. }
  29. //------------------------------
  30. void leitura()                      // Abaixo faz leitura e impressao na serial monitor
  31. {
  32.   /*
  33.     15 graus seria 25% de intensidade.
  34.     20 graus seria 50%
  35.     25 graus seria 75%
  36.     30 graus seria 100%
  37.         10  (10 -10)*5 =  0%
  38.         15  (15 -10)*5 =  25%
  39.         20  (20 -10)*5 =  50%
  40.         25  (25 -10)*5 =  75%
  41.         30  (30 -10)*5 =  100%
  42.         Porcentual = (temperatura - 10) * 5
  43.   */
  44.   int temperatura = temp.getTemp();
  45.   Serial.print("Temperatura no Sensor eh: ");
  46.   Serial.print(temperatura);
  47.   Serial.println(" C");
  48.   if ((temperatura >= 10) & (temperatura <= 30))            // Se temperatura está entre 10 e 30 oC
  49.   {                                                         // Faça
  50.     int porcentual = (temperatura - 10) * 5;                // Calcule o porcentual
  51.     Serial.print(porcentual);                               // Imprime
  52.     Serial.println(" %");
  53.     int intensidade = map(  porcentual, 0, 100, 0, 255);    // mapeie de 0 a 100 para 0 a 255
  54.     analogWrite(red, intensidade);                          // Controle o PWM
  55.     Serial.print(intensidade);                              // Imprime
  56.   }
  57. }
RAW Paste Data