Ir ao conteúdo
  • Cadastre-se

Leo_01

Membro Júnior
  • Posts

    3
  • Cadastrado em

  • Última visita

Reputação

1
  1. Irei retirar o código para que não haja aumento no limite da porcentagem de plágio aceita, pois quando o programa verificar na internet se há algo igual, irá reconhecer meu código e o do artigo. Desde já, agradeço a Isadora pela prestatividade e paciência.
  2. @Isadora Ferraz , muito obrigado por responder. Não coloquei o código completo e isso possivelmente atrapalhou o seu entendimento sobre o código. Então, segue o código completo: Como eu havia dito, assim que a distância chega aos 30cm, não consigo dar mais comandos. Gostaria de "intertravar". Se o comando fosse mover frente, mover esquerda ou mover direita continuasse travado, entretanto, se eu pedisse o comando mover ré, ela voltasse para que assim eu pudesse ter uma maior distância da parede e poder usar todos os comandos novamente. Como já tem os 30 centímetros, o comando if postado abaixo "proíbe" que eu execute o comando mover ré. Desculpe pelo tamanho do texto e desde já, agradeço pela prestatividade.
  3. Boa tarde, galera.Sou novato e estou tendo um pouco de dificuldade com o final da minha programação. Meu projeto é de um carrinho acionado por voz. Até então tudo certo, mas estou tendo problemas quando coloco um if para parar o carro caso a distância seja menor ou igual a 30 cm e diferente de 0. O carro para, entretanto, como a distância continua a mesma, não consigo dar outro comando para que se ele movimente, exemplo: se eu falar “mover frente”, ele anda e caso o sensor ultrassonico detecte que a distância se equivale a 30, o carro freia. Após isso, não consigo dar mais comandos, como por exemplo, ré, para que assim ele fique a uma distância maior e possa assim ou ir para a esquerda ou direita. Gostaria de alguma metodologia que fizesse como se fosse um “intertravamento”. Caso ele estivesse a 30cm, se eu falar mover frente, mover esquerda ou mover direita, ele continuasse travado. Entretanto, se eu falar ré, ele pudesse tomar distância da parede. Um exemplo que tentei, mas talvez fiz de forma errada foi: if (((cm<=30) && (cm!=0)) && !(voice == “re”)) { freio(); } Desculpem caso eu não tenha sido claro. Qualquer dúvida, me perguntem para que eu possa informá-los melhor. long duration, cm; long duration2, cm2; // sensor 1 digitalWrite(emissor, LOW); delayMicroseconds(2); digitalWrite(emissor, HIGH); delayMicroseconds(5); digitalWrite(emissor, LOW); duration = pulseIn(receptor, HIGH); cm = microsecondsToCentimeters(duration); if ((cm <=30) && (cm !=0)) freio(); delay(50); } //sensor 2 digitalWrite(emissor2, LOW); delayMicroseconds(2); digitalWrite(emissor2, HIGH); delayMicroseconds(5); digitalWrite(emissor2, LOW); duration2 = pulseIn(receptor2, HIGH); cm2 = microsecondsToCentimeters(duration2); if (cm2 >=75) { freio(); delay(50); } }

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...