Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //#include <LiquidCrystal.h>
- //LiquidCrystal lcd(22, 23, 24, 25, 26, 27);
- int sensor0 = 0; // Inicia o sensor 0;
- int cont0 = 0;
- int sensor1 = 0; // Inicia o sensor 1;
- int cont1 = 0;
- //int sensor2 = 0; // Inicia o sensor 2;
- //int cont2 = 0;
- //int sensor3 = 0; // Inicia o sensor 3;
- //int cont3 = 0;
- //int sensor4 = 0; // Inicia o sensor 4;
- //int cont4 = 0;
- //int total = 0; // Variavel para guardar a soma de todos os sensores;
- #include <Threads.h> // Bibioteca das threads
- #include <ThreadController.h> // Bibioteca de controle das threads
- Thread Thread_Sensor_0; // Define thread de
- Thread Thread_Sensor_1; // Define thread
- void setup()
- {
- Serial.begin(9600);
- Thread_Sensor_0.setInterval(200); // Thread de 200 ms
- Thread_Sensor_0.onRun(Conta_Sensor_0); // Executa função de
- Thread_Sensor_1.setInterval(200); // Thread de 200 ms
- Thread_Sensor_1.onRun(Conta_Sensor_1); // Executa função
- //lcd.begin(16, 2);
- //lcd.setCursor(0,0);
- //lcd.print("Mauro");
- //lcd.setCursor(0,1);
- //lcd.print("Numb peças: ");
- }
- void Conta_Sensor_0(){
- // Bloco para leiura do sensor 0
- if(analogRead(A0) > 500) // objeto passando entre o sensor sharp
- {
- cont0++;//Incrementa o contador em 1
- Serial.print("Quantidade de Peças sensor 0 = ");
- Serial.println(cont0);
- Serial.print("Valor Lido = ");
- Serial.println(analogRead(A0));
- //delay(200); // Aqui está o meu problema. Como o sensor que estou usando faz varias medidas por segundo, ao detectar o objeto
- // pelo comando "if(analogRead(A0) > 500)
- // cont1++;//Incrementa o contador em 1"
- // o sistema precisa dar uma pausa, mas somente no sensor em questão, deixando os demais trabalhando
- // normalmente, para que o objeto passe pelo sensor e assim não conte duas vezes...
- //lcd.setCursor(11,1);
- //lcd.print(contador++);
- }
- }
- void Conta_Sensor_1(){
- // Bloco para leiura do sensor 1
- if(analogRead(A1) > 500) // objeto passando entre o sensor sharp
- {
- cont1++;//Incrementa o contador em 1
- Serial.print("Quantidade de Peças sensor 1 = ");
- Serial.println(cont1);
- Serial.print("Valor Lido = ");
- Serial.println(analogRead(A1));
- //delay(200); // não utilizado.
- //lcd.setCursor(11,1);
- //lcd.print(contador++);
- }
- }
- void loop()
- {
- if(Thread_Sensor_0.shouldRun()) // Se deve executar função ()
- Thread_Sensor_0.run(); // Execute função ()
- if(Thread_Sensor_1.shouldRun()) // Se deve executar função ()
- Thread_Sensor_1.run(); // Execute função ()
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement