Ir ao conteúdo
  • Cadastre-se

KainanXD

Membro Júnior
  • Posts

    2
  • Cadastrado em

  • Última visita

Reputação

0
  1. Muito boa a explicação @MatheusLPS, muito obrigado mesmo, esta de parabéns... Não sou muito bom em programação estou tendo que me virar pra poder entregar o meu TCC funcionando em novembro kkkk, é que faço curso técnico então eles não aprofunda muito em microcontrolador, só o básico mesmo, então estou tendo que aprender na raça mesmo, pesquisando em livros e tal. Mas meu projeto é isso ai mesmo, igual do vídeo, ai depois que eu conseguir fazer essa parte vou ter que adicionar um encoder pra ler a posição do motor. Agora que você explico eu consegui compreender melhor, só que vou usar o PIC18F4550 e na sua programação que você fez você usou o PIC16F877A, então tem alguns detalhes na minha programação que tem que ser ajustada, por exemplo no PIC18F4550 ele nao aceita o comando OUTPUT_B e nem esse delay_ms(frame_time); mais esses sao detalhes que vou ir verificando output_b (sentido_motor[i_1]); delay_ms(frame_time); mais de uma olhada na minha programação que eu fiz ate o momento esta logo acima, Obrigado!
  2. Então matheus eu não entendi essa parte do programa (y = 0.195 * distancia nao entendi o porque de 0.195. Estou fazendo um projeto similar a esse, so que estou utilizando o PIC18F4550 olha a programação que fiz ate o momento #include<P18F4550.h> // Inclui Informações do microcontrolador. #include<delays.h> // Adiciona a biblioteca de funções de atraso. #include<adc.h> // Adiciona a biblioteca de funções para o módulo conversor A/D. // Fosc = 20MHz // Tciclo = 4/Fosc = 0,4us #pragma config FOSC = HS // Fosc = 20MHz -> Tcy=200ns #pragma config CPUDIV = OSC1_PLL2 // PLL desligado #pragma config WDT = OFF // Desabilita o Watchdog Timer (WDT). #pragma config PWRT = ON // Habilita o Power-up Timer (PWRT). #pragma config BOR = ON // Brown-out Reset (BOR) habilitado somente no hardware. #pragma config BORV = 1 // tensão do BOR é 4,33V. #pragma config LVP = OFF // Desabilita o Low Voltage Program. #pragma config DEBUG = ON // habilita debug #pragma config PLLDIV = 5 // PLL para 20MHz // Definições de hardware #define BOBINA_A PORTDbits.RD0 // Define outro nome para a estrutura. #define BOBINA_B PORTDbits.RD1 // Define outro nome para a estrutura. #define BOBINA_Ab PORTDbits.RD2 // Define outro nome para a estrutura. #define BOBINA_Bb PORTDbits.RD3 // Define outro nome para a estrutura. #define MOTOR PORTD // Define o nome da estrutura do PORTD para MOTOR unsigned char buffer[16]; void main(void) { unsigned int resultado_conv; int i = 0; // Tabela de dgitos do MOTOR char table[] = {0b00000011, // Passo 1 0b00000110, // Passo 2 0b00001100, // Passo 3 0b00001001 // Passo 4 }; OpenADC(ADC_FOSC_16 // Seleção da fonte de clock para a conversão A/D. Fosc = 20Mhz. Tad = 16/20MHz = 0,8us. &ADC_RIGHT_JUST // Resultado justificado para a direita. &ADC_4_TAD, // Configuração do tempo de aquisição automático. (4*tad = 3,2us) ADC_CH0 // Seleciona o canal 0 (AN0) &ADC_INT_OFF // Interrupção desabilitada. &ADC_VREFPLUS_VDD // Vref+ = Vcc &ADC_VREFMINUS_VSS, // Vref- = Vss ADC_1ANA); // Habilita somente o canal AN0. SetChanADC (ADC_CH0); // Seleciona o canal 0 (AN0). Delay10TCYx(5); // Delay de 50 ciclos de máquina. // *** Inicialização TRISAbits.TRISA0 = 1; // Configura o pino AN0 como entrada TRISDbits.TRISD0 = 0; // Configura o pino RD0 como saída. TRISDbits.TRISD1 = 0; // Configura o pino RD1 como saída. TRISDbits.TRISD2 = 0; // Configura o pino RD2 como saída. TRISDbits.TRISD3 = 0; // Configura o pino RD3 como saída. while(1) // Looping infinito { ConvertADC(); // Inicia a conversão. while(BusyADC()); // Aguarda o fim da conversão. resultado_conv = ReadADC(); // Armazena o resultado da conversão. // Vcc = 5 Volts. // Vref+ = Vcc e Vref- = Vss. // V_1bit = 4,887585mV // resultado_conv = 511 --> V_sinal_analógico = 2,5 Volts. MOTOR = table; if(resultado_conv==511) { PORTD = 0; } if(resultado_conv>511) { i--; if(i<0b00000011){ i=0b00001001; } } else if(resultado_conv<511) { i++; if(i>0b00001001){ i=0b00000011; } } } } acho que esta errado a parte do MOTOR = table; para baixo

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!