Boa Noite Galera,

Poderiam me ajudar nesse projeto, onde tenho uma esteira seletora de materiais recicláveis e, funciona da seguinte maneira: Tenho três sensores que detectam três materiais diferentes e, esses sensores ao ser acionado manda o motor retirar o material da esteira. O problema é o seguinte quando um dos sensores atua pela primeira vez, o motor retira da esteira o material normalmente, só que depois ele e os demais podem até atuar mas o arduino se perde no tempo e os motores só respondem minutos depois. 

Segue a lógica que eu fiz:

Obrigado,

// Projeto Esteira Seletora de Materiais Recicláveis
#include<AFMotor.h>
int sensor1 = 2;// Configurando Sensor1 no pino 2
int sensor2 = 3;// Configurando Sensor2 no pino 3
int sensor3 = 4;// Configurando Sensor3 no pino 4

void setup() // Definindo instruções
{
pinMode(sensor1, INPUT);// Define o sensor1 como entrada
pinMode(sensor2, INPUT);// Define o sensor2 como entrada
pinMode(sensor3, INPUT);// Define o sensor3 como entrada
}

void loop() // Função para execução do programa
{
int state1 = digitalRead(sensor1); // Verifica a condição de entrada do sensor1 (alto/baixo)
int state2 = digitalRead(sensor2); // Verifica a condição de entrada do sensor2 (alto/baixo)
int state3 = digitalRead(sensor3); // Verifica a condição de entrada do sensor3 (alto/baixo)

if(state1 == HIGH) // Se o sensor1 estiver em nível lógico alto, então
{
AF_DCMotor motor(1); // Seleciona o motor 1
motor.setSpeed(255); // Define a velocidade máxima
motor.run(FORWARD); // Gira o motor em sentido horário
delay(5000); // Por tanto tempo
motor.setSpeed(0); // Define velocidade zero
motor.run(RELEASE); // Desliga o motor 1
delay(1000); // Por tanto tempo
motor.setSpeed(255); //Define velocidade máxima
motor.run(BACKWARD); //Gira o motor sentido anti-horário
delay(5000); // Por tanto tempo
motor.setSpeed(0); // Define velocidade zero
motor.run(RELEASE); // Desliga o motor
}

if(state2 == HIGH) // Se o sensor2 estiver em nível lógico alto, então
{
AF_DCMotor motor(2); // Seleciona o motor 2
motor.setSpeed(255); // Define a velocidade máxima
motor.run(FORWARD); // Gira o motor em sentido horário
delay(5000); // Por tanto tempo
motor.setSpeed(0); // Define velocidade zero
motor.run(RELEASE); // Desliga o motor 2
delay(1000); // Por tanto tempo
motor.setSpeed(255); //Define velocidade máxima
motor.run(BACKWARD); //Gira o motor sentido anti-horário
delay(5000); // Por tanto tempo
motor.setSpeed(0); // Define velocidade zero
motor.run(RELEASE); // Desliga o motor
}

if(state3 == HIGH) // Se o sensor3 estiver em nível lógico alto, então
{
AF_DCMotor motor(3); // Liga o motor 3
motor.setSpeed(255); // Define a velocidade máxima
motor.run(FORWARD); // Gira o motor em sentido horário
delay(5000); // Por tanto tempo
motor.setSpeed(0); // Define velocidade zero
motor.run(RELEASE); // Desliga o motor 3
delay(1000); // Por tanto tempo
motor.setSpeed(255); //Define velocidade máxima
motor.run(BACKWARD); //Gira o motor sentido anti-horário
delay(5000); // Por tanto tempo
motor.setSpeed(0); // Define velocidade zero
motor.run(RELEASE); // Desliga o motor
}
}

Exibições: 204

Responder esta

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço