Ir ao conteúdo

Posts recomendados

Postado

<#define M1 2 // Pino_Velocidade 1º Motor ( 0 a 255)_ Porta ATV_A ponte H;

#define dir1 3 //Pino_Direção do 1º Motor: Para frente / Para trás (HIGH ou LOW)_ porta IN1 ponte H;

#define M2 5 //Pino_Velocidade 2º Motor ( 0 a 255) _ Porta ATV_B ponte H;

#define dir2 6 //Pino_Direção do 2º Motor: Para frente / Para trás (HIGH ou LOW)_ porta IN3 ponte H;

//Definição dos pinos dos sensores

#define pin_S1 8

#define pin_S2 13

bool Sensor1 = 0;

bool Sensor2 = 0;

//variável responsável por controlar a velocidade dos motores

int velocidade = 150;

void setup(){

//Setamos os pinos de controle dos motores como saída

pinMode(M1, OUTPUT);

pinMode(M2, OUTPUT);

pinMode(dir1, OUTPUT);

pinMode(dir2, OUTPUT);

//Setamos a direção inicial do motor como 0, isso fará com que ambos os motores girem para frente

digitalWrite(dir1, LOW);

digitalWrite(dir2, LOW);

//Setamos os pinos dos sensores como entrada

pinMode(pin_S1, INPUT);

pinMode(pin_S2, INPUT);

}

void loop(){

//Neste processo armazenamos o valor lido pelo sensor na variável que armazena tais dados.

Sensor1 = digitalRead(pin_S1);

Sensor2 = digitalRead(pin_S2);

//Aqui está toda a lógica de comportamento do robô: Para a cor branca atribuímos o valor 0 e, para a cor preta, o valor 1.

if((Sensor1 == 0) && (Sensor2 == 0)){ // Se detectar na extremidade das faixas duas cores brancas

analogWrite(M1, velocidade); // Ambos motores ligam na mesma velocidade

analogWrite(M2, velocidade);

}

if((Sensor1 == 1) && (Sensor2 == 0)){ // Se detectar um lado preto e o outro branco

analogWrite(M1, 0); // O motor 1 desliga

analogWrite(M2, velocidade); // O motor 2 fica ligado, fazendo assim o carrinho virar

}

if((Sensor1 == 0) && (Sensor2 == 1)){ // Se detectar um lado branco e o outro preto

analogWrite(M1, velocidade); //O motor 1 fica ligado

analogWrite(M2, 0); // O motor 2 desliga, fazendo assim o carrinho virar no outro sentido

}

}>

  • Obrigado 1
  • Confuso 1
Postado

@sykr1nwt    Olá  ,    talvez você não observou que esse código já está em linguagem c  , e não tem nada de c++ nele , e outra coisa é que esse código serve bem para a placa experimental  Arduíno  Uno da Artmega ,  e você pode usar o botão code   "<>"  que está desenhado lá na barra de ferramentas da janela de postar 

443002152_barracode.jpg.f56f052a084d7a3eda5f9461d6c86e1e.jpg

 

para que sua postagem fique bem organizada e coloridinha mesmo ,      assim  :

#define M1 2                    /// Pino_Velocidade 1º Motor ( 0 a 255)_ Porta ATV_A 
                                /// ponte H;
#define dir1 3                  /// Pino_Direção do 1º Motor: Para frente / Para trás 
                                /// (HIGH ou LOW)_ porta IN1 ponte H;
#define M2 5                    /// Pino_Velocidade 2º Motor ( 0 a 255) _ Porta ATV_B
                                /// ponte H;
#define dir2 6                  /// Pino_Direção do 2º Motor: Para frente / Para trás 
                                /// (HIGH ou LOW)_ porta IN3 ponte H;
                                /// Definição dos pinos dos sensores
#define pin_S1 8
#define pin_S2 13
bool Sensor1 = 0;
bool Sensor2 = 0;
                                /// variável responsável por controlar a velocidade 
                                /// dos motores
int velocidade = 150;
void setup()
{
                                /// Setamos os pinos de controle dos motores como 
                                /// saída
    pinMode( M1  , OUTPUT );
    pinMode( M2  , OUTPUT );
    pinMode( dir1, OUTPUT );
    pinMode( dir2, OUTPUT );
                                /// Setamos a direção inicial do motor como 0, 
                                /// isso fará com que
                                /// ambos os motores girem para frente
    digitalWrite( dir1 , LOW );
    digitalWrite( dir2 , LOW );
                                /// Setamos os pinos dos sensores como entrada
    pinMode( pin_S1 , INPUT );
    pinMode( pin_S2 , INPUT );
}
void loop()
{
                                          /// Neste processo armazenamos o valor  
                                          /// lido pelo sensor
                                          /// na variável que armazena tais dados.
    Sensor1 = digitalRead( pin_S1 );
    Sensor2 = digitalRead( pin_S2 );
                                          /// Aqui está toda a lógica de 
                                          /// comportamento do robô:
                                          /// Para a cor branca atribuímos o valor
                                          /// 0 e, para a cor preta, o valor 1.
    if( Sensor1 == 0 && Sensor2 == 0 )    /// Se detectar na extremidade das faixas 
                                          /// duas  cores brancas
    {
        analogWrite( M1 , velocidade );   /// Ambos motores ligam na mesma velocidade
        analogWrite( M2 , velocidade );
    }

    if( Sensor1 == 1 && Sensor2 == 0 )    /// Se detectar um lado preto e o outro
    {                                     /// branco
        analogWrite( M1 ,          0 );   /// O motor 1 desliga
        analogWrite( M2 , velocidade );   /// O motor 2 fica ligado, fazendo assim 
                                          /// o carrinho virar
    }
    if( Sensor1 == 0 && Sensor2 == 1 )    /// Se detectar um lado branco e o 
    {                                     /// outro preto
        analogWrite( M1 , velocidade );   /// O motor 1 fica ligado
        analogWrite( M2 ,          0 );   /// O motor 2 desliga, fazendo assim o 
    }                                     /// carrinho virar no outro sentido
}

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!