Galera poderiam me ajudar ? estou com duvida no código do programa que estou fazendo, o programa e para controlar uma válvula a partir de 02 sensores, basicamente meu código está gerando conflito entre 2 condições.
onde digo;;
sensor1 - HIGH
sensor2 - HIGH
Valvula - LOW
só que preciso que em um determinado momento;
sensor1 - HIGH
sensor2 - HIGH
Valvula - HIGH
e não consigo imaginar a logica para esse problema…
Obrigado pela resposta, deixa eu te explicar melhor.
tenho uma esteira, onde tenho 2 sensores um no inicio outro no final.
e no meio da esteira tenho uma válvula.
o produto irá vir até o final da esteira. onde acionará o primeiro sensor. que acionará a válvula.
quando o produto for retirado da frente do sensor a válvula será desarmada liberando o fluxo. porem logo após a válvula tem outro sensor que quando passar um produto por ele ele também aciona a válvula. (para dar ritimo a linha de produção e também só passar um produto por vez.
estou me batendo para programar, sou novo e gostaria de dicas. não a resposta… kkk por gentileza…
desculpa se for muito idiota essa questão mas desejo evoluir.
O texto tá meio estranho mesmo, mas eu acredito que tenha entendido, toda vez que um produto na posição final (que segura a esteira parada e a válvula desligada) é retirado e o sensor desarmado a esteira+válvula liga, fazendo a fila andar ao mesmo tempo que o produto na posição anteriora é lavado/pintado/qualquercoisado.
Se for isso mesmo, a lógica é simples:
Sensor1 Sensor2 Resultado
0 0 Ignorar/manter o estado vigente.
1 0 Parar a esteira
0 1 Ligar a esteira
1 1 Situação anômala, decidir o que fazer.
Em outras palavras (em C):
while(1) {
if(sensor1) esteira=0;
if(sensor2) esteira=1;
valvula=esteira;
}
Nesse código caso ambos os sensores sejam 1 a esteira ficará ligada, se invertermos os ifs ela ficará desligada, eu deixei toda a abstração de hardware de lado, acredito que isso não seja problemas pra vocês.
Posso sugerir um cenário de exemplo? digamos por exemplo um sistema de envase
tendo como base o descritivo de seu problema acima. Criei o desenho abaixo para melhor entendermos:
Coloquei os dois sensores no inicio e fim da esteira e a valvula(cruz vermelha no desenho).
teria como confirmar essa montagem se possível fazer a correção
Mas como a esteira não é elétrica, você pode trocar todas as ocorrências de “esteira” por “valvula”, e pra sua melhor compreensão talvez trocar “sensor1” por “sensor2” e vice-versa.
Se o primeiro sensor deflagrar ele liga a válvula, quando o segundo sensor deflagar ele delisga, se os dois estiverem deflagrados ao mesmo tempo eu recomendaria deixar a válvula aberta, provavelmente é interessante deixar o sensor que desliga mais próximo da válvula do que o sensor que desliga, mesmo que seja uma diferença bem pequena, esse detalhe é bem importante.
conversando com um amigo aqui chegamos a solução do problema junto com as dicas de vocês…
segue cód.
//---------------------------CONSTANTES E VARIAVEIS -------------------------------
const int Val = 11; // Valvula de stop
const int BotaoSE = 9; // SEEEnsor do final da esteira
const int BotaoSV = 8; // SEEEnsor da valvula
int SEV = 0; // Estado do SEEEnsor da Valvula
int SEE = 0; // Estado do SEEEnsor da esteira
const int led = 10;
const int led1 = 12;
int M1 = 0;
int M2 = 0;
int M3 = 0;
//-----------------------------------ERADAS E SAIDA---------------------------------
void setup() {
pinMode(BotaoSE,INPUT);
pinMode(BotaoSV,INPUT);
pinMode(Val,OUTPUT);
pinMode(led,OUTPUT);
pinMode(led1,OUTPUT);
}
void loop()
{
//---------------------------------- LENDO OS SENSORES ----------------------------
SEV = digitalRead(BotaoSV);
SEE= digitalRead(BotaoSE);
Fala ai PabloJoenck, blz
então vamos definir as funcoes de cada item no desenho que enviei
1 - Circulo a esquerda(Sensor1) é o sensor de entrada na esteira
2 - Cruz vermelha é a valvula de envase
3 - Circulo a direita(Sensor2) é o sensor de saída da esteira
Um detalhe que não foi abordado nesse problema: a válvula teria um sensor também, para poder determinar quando o envase teria terminado
Então o descritivo desse problema seria algo do tipo:
"Obs: O Sensor1 deveria estar colado na válvula ou bem mais próximo"
Na minha visão esse seria o algoritmo para múltiplos envases
LOOP{
- A lata entra na esteira que estará ligada ao passar pelo Sensor1 que detecta a presença da mesma ele desligará a esteira e ativará a válvula de envase.
- A válvula devera detectar o momento em que a lata estiver cheia
- Após esse momento, a válvula deverá ser desligada e religada a esteira
}
o Sensor2 acredito eu que só tenha utilidade para saber quando a lata chega ao final da esteira.