Nos informe porque este programa é inadequado. Por favor, não envie várias vezes.

Razão
Mensagem

Enviar    Cancelar

  • Use o bom senso
  • Seja educado. Trate os outros como você gostaria de ser tratado
  • Você só pode usar até 3.000 caracteres por comentário
  • Você não pode comentar o mesmo programa dentro do período de 60 segundos
  • Você não pode postar o mesmo comentário em vários programas.
  • Existe um limite de 100 comentários por usuário no período de 24 horas.

Fechar

N4Conhecer

de rudi |  v4 |  0 |  0 |  2095 |  24 
Acesse sua conta para comentar e baixar este programa.

Compartilhado há 7 anos e 9 meses atrás - Última modificação em 11/08/2016
Alguns direitos reservados
// n4conhecer.c - Criado pelo studio UNO 2.3
// 11 August 2016 12:47:12 pm
 
#include <uno.h>
 
 
// Defines
#define TempoSinc 5
 
// Declaracao das Variaveis
unsigned int Angulo;
unsigned int Distancia;
int EncDir;
int EncEsq;
int Pulsos;
unsigned int Velocidade;
 
// Prototipos
void freio(void); 
void GiraEsquerda(void); 
void LeEncoders(void); 
void Reto(void); 
void RetoAteObjeto(void); 
void GiraDireita(void); 
void ZeraEncoders(void); 
void RetoPorDistancia(void); 
 
//Funcoes do Usuario
void freio(void) 
{
     __motor_curso(__REVERSE);
     __delay(40);
     __motor_curso(__STOP);
}
 
void GiraEsquerda(void) 
{
     ZeraEncoders();
     __motor_curso(__LEFT_ROTATE);
     // NP=Angulo/4.19
     Pulsos = (Angulo / 4.19);
     while((__EncoderGetValue(2) < Pulsos)) {
         while(!(__EncoderGetValue(2) >= Pulsos)) { __delay(10); }
     }
 
}
 
void LeEncoders(void) 
{
     EncEsq = __EncoderGetValue(1);
     EncDir = __EncoderGetValue(2);
     __delay(TempoSinc);
}
 
void Reto(void) 
{
     if ((EncEsq > EncDir)) {
         __motor(1, 0);
         __motor(2, Velocidade);
     }
     if ((EncEsq < EncDir)) {
         __motor(1, Velocidade);
         __motor(2, 0);
     }
     if ((EncEsq == EncDir)) {
         __motor(1, Velocidade);
         __motor(2, Velocidade);
     }
 
}
 
void RetoAteObjeto(void) 
{
     ZeraEncoders();
     while((__analog_in(0) < 500)) {
         reto();
         LeEncoders();
     }
 
}
 
void GiraDireita(void) 
{
     ZeraEncoders();
     __motor_curso(__RIGHT_ROTATE);
     // NP=Angulo/4.19
     Pulsos = (Angulo / 4.19);
     while((__EncoderGetValue(1) < Pulsos)) {
         while(!(__EncoderGetValue(1) >= Pulsos)) { __delay(10); }
     }
 
}
 
void ZeraEncoders(void) 
{
     __SmartSensorCmd(1, 1, 9, 0);
     __SmartSensorCmd(1, 2, 9, 0);
     EncEsq = 0;
     EncDir = 0;
}
 
void RetoPorDistancia(void) 
{
     ZeraEncoders();
     // Pulsos=Distancia/0.618
     Pulsos = (Distancia / 0.618);
     while(((EncEsq < Pulsos) || (EncDir < Pulsos))) {
         reto();
         LeEncoders();
     }
 
}
 
//Funcao Principal
void main(void)
{
     __inicializa;
     __SmartSensorCmd(1, 1, 8, 0);
     Angulo = 90;
     Velocidade = 900;
     Distancia = 40;
     RetoPorDistancia();
     GiraDireita();
     RetoPorDistancia();
     GiraEsquerda();
     RetoAteObjeto();
     freio();
     while(TRUE) { }
}

Descrição

Nenhum Comentário

Download


Entre para Baixar

Favorito de


Ninguém marcou este projeto como favorito ainda.

Projetos de rudi


 0    2172   1 
 0    2671   13 
 3    2460   14 
 0    2142   23 
 33    3086   103