Ir ao conteúdo
  • Cadastre-se

nicaranha

Membro Júnior
  • Posts

    12
  • Cadastrado em

  • Última visita

posts postados por nicaranha

  1. Bem, eu estou fazendo um robô, ja contrui ele e tudo, mas a programação esta difícil, estou a muito tempo tentando e não consigo, aqui está o código:

    #include <Ultrassonico.h>
    #include <Servo.h>
    
    
    #define motoE1 6 //faz o motor Esquerdo ir para traz
    #define motoE2 7 //faz o motor Esquerdo ir para frente
    
    #define motoD1 8//faz o motor direito ir para traz
    #define motoD2 9//faz o motor direito ir para frente
    
    #define p_trigger 5 // dispara o som que vai ser rebatido
    #define p_echo 4 // recebe a onda de som
    
    int viraservo;
    int viradireita;
    int viraesquerda;
    
    
    Servo sensor,garra; //servos da garra e da base do sensor
    
    float dist_cm;
    
    
    Ultrassonico ultrassonico(p_trigger, p_echo); 
    
    
    void setup() {
      
      
    sensor.attach(2);
    garra.attach(3);
    
    viradireita = 180;
    viraesquerda = 0;
    
    
    pinMode(motoE1, OUTPUT);
    pinMode(motoE2, OUTPUT);
    pinMode(motoD1, OUTPUT);
    pinMode(motoD2, OUTPUT);
    
    digitalWrite (motoE1, LOW);
    digitalWrite (motoE2, LOW);
    digitalWrite (motoD1, LOW);
    digitalWrite (motoD2, LOW);
    sensor.write(90);
    garra.write(60);
    delay(100);
    
    }
    
    void loop() {
      dist_cm=ultrassonico.ditancia_cm();
    
      
      if (dist_cm >= 14.00 ){
          digitalWrite (motoE2, HIGH);
          digitalWrite (motoD2, HIGH);
     
        
      }else{ 
          digitalWrite (motoE2, LOW);
          digitalWrite(motoD2, LOW);
          if(dist_cm <=14.00){
            viraservo = viradireita;
            sensor.write(viraservo);
            if(dist_cm >14.00){
            digitalWrite(motoE2, HIGH);
            digitalWrite(motoD1,HIGH);
            delay(500);
            }else {
            viraservo = viraesquerda;
            sensor.write(viraservo);
            
            if(dist_cm >14.00){
            digitalWrite(motoE1, HIGH);
            digitalWrite(motoD2,HIGH);
            delay(500);
              }
            
            }
            
            
          
        }
        }
    }

    O que eu queria fazer era o robô seguir em frente mas quando chegar a 14.00 cm da parede ele parar virar o sensor para a direita e caso tenha distancia o suficiente ele virar para a direita, caso contrario ele vira o sensor para a esquerda e caso tenha distância suficente ele vira para a esquerda, o robo possui 3 rodas 2 com motor e uma roda guia, coloquei uma placa H l298 que permite que o motor vire para os dois lados, e até a parte de chegar na parede e parar eu consegui porém depois disso o sensor fica maluko virando de um lado para o outro, Eu agradeceriam s alguem podesse me dar uma ideia de como resolver isso
                
      
        
      

     

    • Amei 1
  2. Estou na duvida de como se usa const char* em alguns lugares tem char* const e alguns falam que é o mesmo que string nome="nome";
    
    #include<iostream>
    using namespace std;
    
    int main() {
    
     
    
        
        const char* nome="Alexa";
        for (int i=0;i<=sizeof(nome);i++){         
            cout << nome[i] << endl;
    
    
    
        return 0;
    }
    Nesse código aqui const char* funciona mas string não por que ?

     

  3. Eu sou muito burro e não consigo entender de forma alguma pra que std  e :: servem por exemplo essa .h aqui:
    
    
    #ifndef AVIAO_H_INCLUDED
    #define AVIAO_H_INCLUDED
    
    class Aviao{
      public:
        int vel=0;
        int velMax;
        std::string tipo;
        Aviao(int tp);
        void imprimir();
        private:
    
    
    };, 
    Aviao::Aviao(int tp){ 
           if(tp==1){
            tipo="Jato";
            velMax=800;
    
           }else if (tp==2){
             tipo="Monomotor";
             velMax=350;
           }else if (tp==3){
             tipo="Planador";
             velMax=180;
           }
    }
    
    void Aviao::imprimir(){
         std::cout << "Tipo.............: " << tipo << std::endl;
         std::cout << "Velocidade Maxima: " << velMax << std::endl;
         std::cout << "Velocidade Atual.: " << vel << std::endl ;
         std::cout <<"-----------------------" << std::endl;
    
    }
    
    #endif // AVIAO_H_INCLUDED
    
    Eu não sei o por que desses std e ::  e também me questiono sobre o que é método construtor, se algém poder me explicar de uma maneira bem simples mas completa eu agradeceria.

     

    • Obrigado 1

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!