Advertisement
Guest User

Untitled

a guest
Jun 19th, 2019
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.02 KB | None | 0 0
  1. #include <LiquidCrystal.h> // Adiciona a biblioteca para o display LCD
  2. LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // Define as pinagens nas quais o LCD será conectado
  3. int sinal_4030 = 13; // Define o pino 13 como a entrada do sinal do CI 4030
  4.  
  5. float radianos = (180/PI); // Realiza a conversão de radianos para graus
  6. double graus = 360; // Define como 360 o grau máximo para um período
  7. double frequencia = 60; // Define a frequência do sistema
  8. float periodo = (1/frequencia);// Define o período em microssegundos
  9. int tensao = 220; // Define a tensão do sistema
  10.  
  11. float fp; // Define a variável fator de potência
  12. float angulo; // Define a variável ângulo
  13. int amostras; // Define uma variável de amostras
  14. float duracao;
  15. float duracao_ms;
  16.  
  17. void setup()
  18. {
  19. pinMode(sinal_4030, INPUT); // Define o pino sinal_4030 como entrada
  20. lcd.begin(16,2); // Inicia o LCD 16x2
  21. }
  22. void loop()
  23. {
  24. medicao_fp();
  25. }
  26. void medicao_fp()
  27. {
  28. for (amostras = 0; amostras <= 10000; amostras++); // Colhe 10000 amostras do sinal
  29.  
  30. // Realiza o cálculo para encontrar o ângulo com a seguinte fórmula
  31. // angulo = ((duracao * 360)/(período))
  32.  
  33. duracao = pulseInLong(sinal_4030, HIGH,10000000); // Colhe a duração do pulso de entrada
  34. duracao_ms = duracao/1000.0; // Realiza a conversão do pulso para milissegundos
  35. angulo = (((duracao_ms*graus)/periodo)/1000.0); // Calcula o ângulo conforme a equação do ângulo descrito
  36. fp = cos(angulo/radianos); // Calcula o fator de potência
  37. delay(500); // Aguarda o tempo de 0,5 segundo para a próxima iteração do laço for
  38. }
  39. lcd.print("FP ="); // Imprime na tela do LCD "FP ="
  40. lcd.setCursor(5,0); // Seleciona a posição 5,0 (col,lin) no LCD para imprimir "FP ="
  41. lcd.print(fp); // Imprime a variável fp
  42. lcd.setCursor(0,1); // Seleciona a posição 0,1 (col,1) no LCD para imprimir o valor do fp
  43. lcd.print("Angulo ="); // Imprime na tela do LCD "Angulo ="
  44. lcd.setCursor(9,1); // Seleciona a posição 9,1 (col,lin) no LCD para imprimir "Angulo ="
  45. lcd.print(angulo); // Imprime a variável angulo
  46. delay(1000);
  47. lcd.clear();
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement