Boa tarde, entrei num problemão, me solicitaram elaborar um projeto no arduino sem ter nenhum conhecimento. O projeto deve funcionar dessa forma: A partir de uma determinada distância dada pelo Sensor Ultrasônico SR04, um relé deverá ativar e também será gerado uma tensão utilizando PWM. Os valores de tensão e  distância devem ser mostrados num LCD 16x2. 

Só que como está no sketch, a distância lida sempre consta como 0, se poderem analisar e ver algo fora do normal e me dizer seria de boa ajuda. 

Print do Sketch: https://pastebin.com/print/wuLdCi9T

  1. #include "Ultrasonic.h"
  2. #include <LiquidCrystal.h>
  3.  
  4. Ultrasonic ultrasonic(13, 12); // 13 Echo 12 Trig
  5. LiquidCrystal lcd (11, 10, 9, 8, 7, 6);
  6.  
  7. int valor_pwm; //Variável para armazenar o sinal PWM
  8. int entrada_rele1 = 1; //Define o relé 1 no pino 1
  9. int entrada_rele2 = 2; //Define o relé 2 no pino 2
  10. int entrada_rele3 = 3; //Define o relé 3 no pino 3
  11. int entrada_rele4 = 4; //Define o relé 4 no pino 4
  12.  
  13. void setup() {
  14. pinMode(entrada_rele1, OUTPUT);
  15. pinMode(entrada_rele2, OUTPUT);
  16. pinMode(entrada_rele3, OUTPUT);
  17. pinMode(entrada_rele4, OUTPUT);
  18. digitalWrite(entrada_rele1, HIGH); // Deixa o relé desligado
  19. digitalWrite(entrada_rele2, HIGH); // Deixa o relé desligado
  20. digitalWrite(entrada_rele3, HIGH); // Deixa o relé desligado
  21. digitalWrite(entrada_rele4, HIGH); // Deixa o relé desligado
  22.  
  23.  
  24. Serial.begin(9600);
  25. lcd.begin(16, 2);
  26. lcd.setCursor( 0, 0);
  27. lcd.print(" Gerando tensao ");
  28. lcd.setCursor( 0, 1);
  29. lcd.print(" pela distancia ");
  30. delay(3000);
  31. lcd.clear();
  32. }
  33.  
  34. void loop()
  35. {
  36.  
  37. int tensao = valor_pwm; //Define a tensão o valor dado pelo pwm
  38. int distancia = (ultrasonic.Ranging(CM)); //Distancia dada pela leitura do Sensor
  39.             if (distancia /span> 100) {
  40.               if (distancia /span> 70) {
  41.                 if (distancia /span> 50) {
  42.                   if (distancia /span> 30) {
  43.                     if (distancia /span> 10) {
  44. analogWrite(valor_pwm, 0);//Ativa 0vcc
  45. lcd.setCursor(0, 0);
  46. lcd.print("Tensao ");
  47. lcd.print(tensao);   //Escreve no display o valor da tensao obtida pelo pwm
  48. lcd.print(" V");    //Escreve V
  49. lcd.setCursor(0, 1);
  50. lcd.print("Distancia ");
  51. lcd.print(distancia);//Escreve no display o valor da distancia em CM.
  52. Serial.print(distancia);
  53. Serial.println();
  54. }
  55.  }
  56. else {
  57.          
  58. analogWrite(valor_pwm, 64);//Ativa ~1,2 vcc
  59. digitalWrite(entrada_rele1, LOW); //Aciona o Relé
  60. lcd.setCursor(0, 0);
  61. lcd.print("Tensao ");
  62. lcd.print(tensao);        //Escreve no display o valor da tensao obtida pelo pwm
  63. lcd.print(" V");    //Escreve V
  64. lcd.setCursor(0, 1);
  65. lcd.print("Distancia ");
  66. lcd.print(distancia); //Escreve no display o valor da distancia em CM.
  67. Serial.print(distancia);
  68. Serial.println();        
  69. }
  70.  }
  71.  
  72. else {
  73. analogWrite(valor_pwm, 127);//Ativa ~2,5 vcc
  74. digitalWrite(entrada_rele2, LOW); //Aciona o relé 2
  75. lcd.setCursor(0, 0);
  76. lcd.print("Tensao ");
  77. lcd.print(tensao);        //Escreve no display o valor da tensao obtida pelo pwm
  78. lcd.print(" V");    //Escreve V
  79. lcd.setCursor(0, 1);
  80. lcd.print("Distancia ");
  81. lcd.print(distancia);//Escreve no display o valor da distancia em CM.
  82. Serial.print(distancia);
  83. Serial.println();
  84. }
  85.  }
  86.  
  87. else {      
  88. analogWrite(valor_pwm, 191);//Ativa ~ 3,7vcc
  89. digitalWrite(entrada_rele3, LOW); //Aciona o Relé 3
  90. lcd.setCursor(0, 0);
  91. lcd.print("Tensao ");
  92. lcd.print(tensao);        //Escreve no display o valor da tensao obtida pelo pwm
  93. lcd.print(" V");    //Escreve V
  94. lcd.setCursor(0, 1);
  95. lcd.print("Distancia ");
  96. lcd.print(distancia);//Escreve no display o valor da distancia em CM.
  97. Serial.print(distancia);
  98. Serial.println();
  99. }
  100.  }
  101.          
  102. else {
  103. analogWrite(valor_pwm, 255); //Ativa 5vcc
  104. digitalWrite(entrada_rele4, LOW); //Aciona o Relé 4
  105. lcd.setCursor(0, 0);
  106. lcd.print("Tensao ");
  107. lcd.print(tensao);        //Escreve no display o valor da tensao obtida pelo pwm
  108. lcd.print(" V");    //Escreve V
  109. lcd.setCursor(0, 1);
  110. lcd.print("Distancia ");
  111. lcd.print(distancia);//Escreve no display o valor da distancia em CM.
  112. Serial.print(distancia);
  113. Serial.println();
  114. }    
  115.  }

Exibições: 107

Anexos

Responder esta

Respostas a este tópico

Boa tarde Gjr.

Recomendações:
1. Remova seu sketch da área de texto do seu tópico;
2. Leia http://labdegaragem.com/forum/topics/sugest-o-de-como-postar
3. Clique em : " Deseja carregar arquivos? " e depois em " Escolher arquivo" e anexe o arquivo
     com o seu sketch.

RV

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço