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

N2Conhecer2016

de rudi |  v11 |  0 |  0 |  2380 |  18 
Acesse sua conta para comentar e baixar este programa.

Compartilhado há 7 anos e 10 meses atrás - Última modificação em 04/10/2016
Alguns direitos reservados
// n2conhecer2016.c - Criado pelo studio UNO 2.3
// 4 October 2016 1:48:20 pm
 
#include <uno.h>
 
 
// Defines
#define PRETO 20
#define REDUZIDO -550
 
// Declaracao das Variaveis
unsigned int Angulo;
unsigned int Distancia;
int EncDir;
int EncEsq;
unsigned int Graus;
unsigned char SegIr1;
unsigned char SegIr2;
unsigned char SegIr3;
unsigned char SegIr4;
unsigned char SegIr5;
unsigned int Tempo;
int Velocidade;
 
// Prototipos
void LeSeguidorAnalogico(void); 
void Freio(void); 
void Reto(void); 
void EmFrente(void); 
void ZeraEncoders(void); 
void LeEncoders(void); 
void DiminuiVel(void); 
void Frente(void); 
void CurvaDireita(void); 
void Resgate(void); 
void CurvaEsquerda(void); 
 
//Funcoes do Usuario
void LeSeguidorAnalogico(void) 
{
     SegIr1 = __SeguidorGetAnalog(1, 1);
     SegIr2 = __SeguidorGetAnalog(1, 2);
     SegIr3 = __SeguidorGetAnalog(1, 3);
     SegIr4 = __SeguidorGetAnalog(1, 4);
     SegIr5 = __SeguidorGetAnalog(1, 5);
}
 
void Freio(void) 
{
     __motor_curso(__REVERSE);
     __delay(30);
     __motor_curso(__STOP);
}
 
void Reto(void) 
{
     LeEncoders();
     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 EmFrente(void) 
{
     ZeraEncoders();
     EncDir = 0;
     while(TRUE) {
         if (__ENTER_KEY) {
             Velocidade = 0;
         }
         if (__UP_KEY) {
             Velocidade = 1023;
         }
         if (__LEFT_KEY) {
             Velocidade = 899;
         }
         if (__RIGHT_KEY) {
             Velocidade = 775;
         }
         if (__BOTTOM_KEY) {
             Velocidade = 650;
         }
         Reto();
     }
 
}
 
void ZeraEncoders(void) 
{
     __SmartSensorCmd(1, 1, 9, 0);
     __SmartSensorCmd(1, 2, 9, 0);
     EncEsq = 0;
     EncDir = 0;
}
 
void LeEncoders(void) 
{
     EncEsq = __EncoderGetValue(1);
     EncDir = __EncoderGetValue(2);
     __delay(5);
}
 
void DiminuiVel(void) 
{
     __SmartSensorCmd(1, 1, 8, 0);
     ZeraEncoders();
     Velocidade = 1023;
     while(TRUE) {
         Reto();
         if ((__UltrasonicGetValueMM(1) < 250)) {
             __motor_curso(__LEFT_ROTATE);
             __delay(1200);
             freio();
             ZeraEncoders();
         }
     }
 
}
 
void Frente(void) 
{
     __motor(1, Velocidade);
     __motor(2, Velocidade);
}
 
void CurvaDireita(void) 
{
     __motor(1, Velocidade);
     __motor(2, REDUZIDO);
}
 
void Resgate(void) 
{
     bitset(__TRIS_PWM, __DIGITAL1);
     __PWM1 = 180;
     __motor_curso(__FORWARD);
     __timer_sistema = 0;
     while(!(__analog_in(0) > 150)) { __delay(10); }
     Tempo = __timer_sistema;
     freio();
     __PWM1 = 40;
     __motor_curso(__BACKWARD);
     __delay(Tempo);
     freio();
     __PWM1 = 180;
}
 
void CurvaEsquerda(void) 
{
     __motor(1, REDUZIDO);
     __motor(2, Velocidade);
}
 
//Funcao Principal
void main(void)
{
     __inicializa;
     while(TRUE) {
         LeSeguidorAnalogico();
         // Ir do meio sobre a linha. Toda vez que Sensor esta sobre a
         // linha preta o valor é menor que 25.
         if (((SegIr2 > PRETO) && ((SegIr3 < PRETO) && (SegIr4 > PRETO)))) {
             // Ir da esquerda sobre a linha
             Velocidade = 1023;
             Frente();
         }
         if ((// Ir da Direita sobre a linha
(SegIr2 < PRETO) && ((SegIr3 > PRETO) && (SegIr4 > PRETO)))) {
             Velocidade = 750;
             CurvaEsquerda();
         }
         if (((SegIr2 > PRETO) && ((SegIr3 > PRETO) && (SegIr4 < PRETO)))) {
             Velocidade = 750;
             CurvaDireita();
         }
     }
 
     while(TRUE) { }
}

Descrição

Início da utilização da Garra, seguidor e resgate

Nenhum Comentário

Download


Entre para Baixar

Favorito de


Ninguém marcou este projeto como favorito ainda.

Projetos de rudi


 0    1980   2 
 0    2499   1 
 0    1962   2 
 0    2137   3 
 0    2671   13