Caros amigos, estou tentando fazer um projeto de um estacionamento com arduino , e estou tendo algums dificuldades.

O projeto é o seguinte :quando  apertar um botão o arduino liga um motor que leva o carro até a vaga livre , porem to com dificuldade de o motor parar  quando o micro for acionado pois são 6 vagas e temos eixo x,y,e z ou seja são 2 linhas  3 colunas de vagas sobrepostas.

Como faço para arduino ligar o motor até por exemplo vaga 9 ,aperto o botão o arduino liga o motor do x até o micro da terceira coluna , ai desliga x e liga y sobe até o micro da terceira linha ai bate no micro desliga y e liga z ai baté no micro z deliga z .

vai o codigo ai



int microref=5;
int microx1=22;
int microx2=23;
int microx3=8;
int microy1=9;
int microy2=10;
int microz1=11;
int microz2=12;
int motorxe=2;
int motorxd=3;
int motorye=4;
int motoryd=6;
int motorze=7;
int motorzd=A5;
int led=13;
int m1 =22;



void setup() {


pinMode(motorxe,OUTPUT);
}


void loop() {
digitalWrite(motorxe,HIGH);
delay(1000);
digitalWrite(motorxe,LOW);
delay(1000);
digitalWrite(motorye,HIGH);
delay(1000);
digitalWrite(motorye,LOW);
delay(1000);
}

minha duvida é como faço para poder parar o motor x  quando o mesmo bater no fim de curso ?

será que alguem pode me ajudar

Exibições: 734

Anexos

Responder esta

Respostas a este tópico

DG, 

veja este exemplo de código

Rui

int microref=5;
int microx1=22;
int microx2=23;
int microx3=8;
int microy1=9;
int microy2=10;
int microz1=11;
int microz2=12;
int motorxe=2;
int motorxd=3;
int motorye=4;
int motoryd=6;
int motorze=7;
int motorzd=A5;
int led=13;
int m1 =22;
//---------------------------- Setup
void setup()
{
pinMode(motorxe,OUTPUT);
pinMode(microx1,INPUT_PULLUP);
}
//---------------------------- Volta
void Volta()
{
; // Escreve aqui a rotina pra o motor voltar
}
//---------------------------- loop
void loop()
{
if (microx1 == 1) // Se o switch tiver fechado faz as proximas instruções
{
digitalWrite(motorxe,HIGH); // Ligue o motor

}
else // Caso contrário faça as proximas instruçoes
{
digitalWrite(motorxe,LOW); // Desligue o motor
delay(1000); // Espere 1 segundo ?
Volta();
}
}

Faz isso:

if(digitalRead(microx) == 1) {

  digitalWrite(motorx,LOW);

}

Espero ter ajudado,

  'Eiju

Celso,

deslize  meu, nem testei este code.

Obrigado pela correção

Rui

Olá novamente:
Deixa eu te dar algumas dicas iniciais:

Na declaração das variáveis, comentar cada função de cada variável. Para você pode parecer obvio que o microx1 vai conter o tamanho do x do motor 1 que é o primeiro de tráz pra frente.

No setup(), você terá que definir a função de cada pino do Arduíno.
Após, definir a situação inicial para os pinos de saída.

No loop(), mesma coisa, comentarios nunca são demais. Entendi que você liga e desliga um dos motores, depois liga e desliga outro motor.
Parece que esta parte funciona corretamente.

Pense que o Arduino deverá receber algum sinal sempre que você quizer que ele altere o comportamento. Portanto, na sua bandeija do carro deverá ter 2 sensores certo?

Também estou entendento que você não precisa que a velocidade vá diminuindo a medida que o motor chega ao seu destino, ou seja: ao acionar o sensor, o motor para imediatamente.

Incluir a entrada do botão que fará o arduíno guardar o carro. Como fará para retirar algum carro específico?

Entendi que tem 6 motores, é isso mesmo?

Por favor, esclareça as dúvidas atualizando o seu post.

Muito obrigado,
'Eiju

Oi Diego, bom dia.

Algum resultado?

Ruo

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço