Advertisement
RuiViana

Conta Garrafa

Jul 14th, 2015
379
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.90 KB | None | 0 0
  1. //#include <LiquidCrystal.h>
  2. //LiquidCrystal lcd(22, 23, 24, 25, 26, 27);
  3. int sensor0 = 0; // Inicia o sensor 0;
  4. int cont0 = 0;
  5. int sensor1 = 0; // Inicia o sensor 1;
  6. int cont1 = 0;
  7. //int sensor2 = 0; // Inicia o sensor 2;
  8. //int cont2 = 0;
  9. //int sensor3 = 0; // Inicia o sensor 3;
  10. //int cont3 = 0;
  11. //int sensor4 = 0; // Inicia o sensor 4;
  12. //int cont4 = 0;
  13. //int total = 0; // Variavel para guardar a soma de todos os sensores;
  14.  
  15. #include <Threads.h> // Bibioteca das threads
  16. #include <ThreadController.h> // Bibioteca de controle das threads
  17.  
  18. Thread Thread_Sensor_0; // Define thread de
  19. Thread Thread_Sensor_1; // Define thread
  20.  
  21. void setup()
  22. {
  23. Serial.begin(9600);
  24.  
  25. Thread_Sensor_0.setInterval(200); // Thread de 200 ms
  26. Thread_Sensor_0.onRun(Conta_Sensor_0); // Executa função de
  27. Thread_Sensor_1.setInterval(200); // Thread de 200 ms
  28. Thread_Sensor_1.onRun(Conta_Sensor_1); // Executa função
  29.  
  30. //lcd.begin(16, 2);
  31. //lcd.setCursor(0,0);
  32. //lcd.print("Mauro");
  33. //lcd.setCursor(0,1);
  34. //lcd.print("Numb peças: ");
  35.  
  36. }
  37.  
  38. void Conta_Sensor_0(){
  39. // Bloco para leiura do sensor 0
  40. if(analogRead(A0) > 500) // objeto passando entre o sensor sharp
  41. {
  42. cont0++;//Incrementa o contador em 1
  43. Serial.print("Quantidade de Peças sensor 0 = ");
  44. Serial.println(cont0);
  45. Serial.print("Valor Lido = ");
  46. Serial.println(analogRead(A0));
  47.  
  48.  
  49. //delay(200); // Aqui está o meu problema. Como o sensor que estou usando faz varias medidas por segundo, ao detectar o objeto
  50. // pelo comando "if(analogRead(A0) > 500)
  51. // cont1++;//Incrementa o contador em 1"
  52. // o sistema precisa dar uma pausa, mas somente no sensor em questão, deixando os demais trabalhando
  53. // normalmente, para que o objeto passe pelo sensor e assim não conte duas vezes...
  54.  
  55. //lcd.setCursor(11,1);
  56. //lcd.print(contador++);
  57.  
  58. }
  59. }
  60.  
  61. void Conta_Sensor_1(){
  62. // Bloco para leiura do sensor 1
  63. if(analogRead(A1) > 500) // objeto passando entre o sensor sharp
  64. {
  65. cont1++;//Incrementa o contador em 1
  66. Serial.print("Quantidade de Peças sensor 1 = ");
  67. Serial.println(cont1);
  68. Serial.print("Valor Lido = ");
  69. Serial.println(analogRead(A1));
  70. //delay(200); // não utilizado.
  71. //lcd.setCursor(11,1);
  72. //lcd.print(contador++);
  73.  
  74. }
  75. }
  76. void loop()
  77. {
  78. if(Thread_Sensor_0.shouldRun()) // Se deve executar função ()
  79. Thread_Sensor_0.run(); // Execute função ()
  80.  
  81. if(Thread_Sensor_1.shouldRun()) // Se deve executar função ()
  82. Thread_Sensor_1.run(); // Execute função ()
  83. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement