enquanto a primeira comparaçao de movimento if (esquerda>direita ) for false o resto do programa td vai bem ou seja o M1 gira p esquerda.e as comparaçoes de superior e inferior funciona muito bem
if (direita < esquerda) funciona
if (superior >inferior) funciona
if (superior <inferior) funciona
mas se a primeira comparaçao de movimento if (esquerda>direita ) for true so ela e executada ou seja M1 gira p direita e o resto para . ja tentei varias opçoes e nao vai.
se alguem puder me ajudar eu agradeço.
segue o codigo.
Tags:
ainda tem problema nessa parte?
tenho um pequeno problema quando os dois ldr estao =>que 800 era p zerar o motor mas ele fica dando uns pulsos meio bobo nas bobinas
provavel q tenha q usar um artificio de deboucing.. mas como vc sabe usar aquela estratégia do millis,, tempo bem pequenino ali
if (direita>=800&& esquerda >=800){
// aqui nesta linha usa a funcao milis, que seria um delay p executar o comando
digitalWrite (MOTORINTERNO1,0);
digitalWrite (MOTORINTERNO2,0);
digitalWrite (MOTORINTERNO3,0);
digitalWrite (MOTORINTERNO4,0);
}
acho q pode resolver.. abraço
o problema é aquele esquema q vc me explicou ontem
eu criei um impasse, bem aki.
if (direita && esquerda >=800){ //condicional "se" o valor for igual ou maior que o pré determinado//
digitalWrite (MOTORINTERNO1,0);
digitalWrite (MOTORINTERNO2,0);
digitalWrite (MOTORINTERNO3,0);
digitalWrite (MOTORINTERNO4,0);
}
e tem horas que:
if (direita> esquerda){ //condicional "se" o valor da “direita” for maior que a “esquerda” o motor girará para a direita//
Serial.println(direita);
if (step_motor1_H==0 && temp1_on==false){
temp1=millis(); // carrega o temp1 com o tempo atual
temp1_on=true; // liga o timer 1
digitalWrite( MOTORINTERNO4,false);//define valor para a saída//
digitalWrite( MOTORINTERNO1,true);//define valor para a saída//
digitalWrite( MOTORINTERNO2,true);//de
em alguns casos direita é > que 800, a situaçao que eu tinha mandado parar
quando direita é 820>esquerda810
if (direita && esquerda >=800) aqui manda parar
e if (direita> esquerda){ aqui manda ir p direita
acho que resolvi. mudando as comparacoes
invés de if (direita> esquerda){
fica if ((direita> esquerda)&&(esquerda<800)){
bom
teste proteus
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por