Ir ao conteúdo
  • Cadastre-se

ofabioh

Membro Júnior
  • Posts

    4
  • Cadastrado em

  • Última visita

Reputação

1
  1. Me chamo Fabio, estou cursando técnico em eletrônica, estou no ultimo modulo do tecnico. Restruturando a duvida, estou programando em C, estou numa etapa que tenho uma SAPZ (se chama Situação de Aprendizagem). Vou manda a programação: /* * File: sapzmodel.c * Author: Usuario-Note * * Created on 2 de Outubro de 2015, 08:55 */ //.....BIBLIOTECAS PADRÕES............// #include <stdio.h> #include <stdlib.h> #include <pic18f4550.h> #include "R.h" #include "lcd4bit.h" #define _XTAL_FREQ 2000000 void __espera_ms(unsigned int t) { unsigned int x=0; for(x=0;x<t;x++) __delay_ms(1); } /* * */ //.......FUNÇÃO SELO...........// bit selo=0; //selo do display bit selo1=0;//selo do pwm bit selo2;//selo motor de passo bit BUZZER;//BOTÃO DE SELEÇÃO DO SPEED// void main() { TRISB0=1;//SW1 TRISB1=1;//SW2 TRISB2=1;//SW3 TRISC0=0;//BUZZER int cont=0; //display int cont1=0; //pwm int cont2=0; //motor passo int SW1=0; //VARIAVEL PARA SW1 int SW2=0; //VARIAVEL PARA SW2 int SW3=0; //VARIAVEL PARA SW3 char buffer[17];//variavel de letras //Variáveis e seus tipos float celsius; //Variável que salva o valor de temperatura em celsius. float fahrenheit; //Variável que salva o valor de temperatrura em fahrenheit. float motion; //Variável que salva o valor de float speed; //Variável que salva o valor de int sp; //Variável que salva o valor de int sw1=0; //Variável que salva o valor de float celsiusp; //Variável que salva o valor obtido na conversão A/D. char buffer[17]; //Variável que salva os dados do display. float pwm; //Variável que salva os dados do PWM //Display init_lcd(_XTAL_FREQ);//Liga LCD cursor_off();/*Desliga Cursor*/ clear_lcd();//Limpa LCD //Parametrização do TMR2 - Utilizado como base de tempo no PWM// TRISBbits.RB0=1; //Botão que Muda a tela do display TRISBbits.RB1=1; //Botão que Liga ou desliga o pwm TRISCbits.RC2=0; //Pino do RC2/CCP1(PWM) como saída TRISCbits.RC0=0; //buzzer //Parametrização do TMR2 - Utilizado como base de tempo no PWM T2CONbits.TMR2ON=1; //Liga o TMR2 T2CONbits.T2CKPS=2; //Prescaler do TMR2 em 1:16 TMR2=0; //Zera a contagem do TMR2; //Parametrização do conversor A/D ADCON2bits.ADCS=0b101; //Configura a frequencia usada, pode usar o numero decimal, para 20 hz usar "101"-. ADCON1bits.PCFG=12; //define entadas como analógico e ou digital ADCON0bits.ADON=1; //liga o conversor analógico //..........INICIO DO PROGRAMA.............// sprintf(buffer,"DATALOGGER");//printa a informação lprintf_lin_col(buffer,1,4);//declara a informação sprintf(buffer, "SENAI");//printa a informação lprintf_lin_col(buffer,2,6);//declara a informação tempo_ms(2000);//delay de 2 segundos clear_lcd;//limpa LCD sprintf (buffer,"TEMPERATURE"); lprintf_lin_col(buffer,1,4); sprintf(buffer,"METER"); lprintf_lin_col(buffer,2,6); tempo_ms(3000); clear_lcd(); cursor_off; while(1) { if(RB0 &&!selo) //FUNÇÃO SELO { clear_lcd(); //LIMPA DISPLAY SW1++; //INCREMENTA VARIAVEL selo=1; } if(!RB0 && selo) //FUNÇÃO SELO selo=0; //DEFINE 0 EM SELO if(SW1==4) //FUNÇÃO PARA RESETAR CICLO DO DISPLAY LCD SW1=0; if(SW1==0) { ADCON2bits.ADFM=1; //Bits justificado a direita ADCON0bits.CHS=0; //Seleciona o canal 0 para ser convertido __delay_us(40); //Espera o capacitor carregar os dados ADCON0bits.GO=1; //Para a conversão e salvamento dos dados while(ADCON0bits.nDONE); //inicia a leitura dos dados celsiusp=(ADRESH<<8)+ADRESL; //salva os dados numa variável ADCON0bits.GO=0; //Para a conversão e salvamento dos dados celsius=celsiusp*150/1023; //converte o valor obtido pelo conversor em célcius sprintf (buffer,"CELSIUS"); lprintf_lin_col(buffer,1,4); sprintf(buffer, "VALUE: %.2f ",celsius); lprintf_lin_col(buffer,2,6); } if(SW1==1) { ADCON2bits.ADFM=1; //Bits justificado a direita ADCON0bits.CHS=0; //Seleciona o canal 0 para ser convertido __delay_us(40); //Espera o capacitor carregar os dados ADCON0bits.GO=1; //Para a conversão e salvamento dos dados while(ADCON0bits.nDONE); //inicia a leitura dos dados celsiusp=(ADRESH<<8)+ADRESL; //salva os dados numa variável ADCON0bits.GO=0; //Para a conversão e salvamento dos dados celsius=celsiusp*150/1023; //converte o valor obtido pelo conversor em célcius fahrenheit=celsius/5*9+32; //converte o valor de celsius para fahrenheit. sprintf (buffer,"FAHRENHEIT"); lprintf_lin_col(buffer,1,4); sprintf(buffer, "VALUE: %.2f ",fahrenheit); lprintf_lin_col(buffer,2,6); } if(SW1==2) { if(SW2==1) { speed=pwm*100/1023; sprintf(buffer, "SPEED"); lprintf_lin_col(buffer, 1,6); sprintf(buffer, "VALUE: %.0f%% ",speed); lprintf_lin_col(buffer, 2,1); } if(SW2==0) { sprintf(buffer, "SPEED"); lprintf_lin_col(buffer, 1,6); sprintf(buffer, "VALUE: OFF",speed); lprintf_lin_col(buffer, 2,1); } } if(SW1==3) { sprintf (buffer,"MOTION"); lprintf_lin_col(buffer,1,4); sprintf(buffer, "VALUE:%.1f SP:%.1f",motion ,sp); lprintf_lin_col(buffer,2,6); } //................ if(RB1 &&!selo1) //FUNÇÃO SELO { SW2++; //INCREMENTA VARIAVEL selo1=1; } if(!RB1 && selo1) //FUNÇÃO SELO { selo1=0; //DEFINE 0 EM SELO //AÇÕES SE ESTIVER LIGADO O PWM if(SW2==1) { ADCON2bits.ADFM=0; //Bits justificado a direita ADCON0bits.CHS=1; //Seleciona o canal 0 para ser convertido __delay_us(40); //Espera o capacitor carregar os dados ADCON0bits.GO=1; //Para a conversão e salvamento dos dados while(ADCON0bits.nDONE); //inicia a leitura dos dados pwm=(ADRESH<<2)+(ADRESL>>6); //salva os dados numa variável ADCON0bits.GO=0; //Para a conversão e salvamento dos dados //Parametrização do PWM CCP1CONbits.CCP1M=0b1111; //Liga o PWM PR2=155; //Utilizado na parametrização do período do PWM //controla a frequencia do pwm CCPR1L=ADRESH; //Período ativo do duty cycle CCP1CONbits.DC1B0=(ADRESL>>6); CCP1CONbits.DC1B1=ADRESL>>7; if(RB1==0) { RE0=1; tempo_ms(2000); RE0=0; } if(SW2==0) { CCP1CONbits.CCP1M=0; //Desliga o PWM no CCP1 pwm=0; if(RB1==1) { RE0=1; tempo_ms(2000); RE0=0; tempo_ms(2000); RE0=1; tempo_ms(2000); RE0=0; tempo_ms(2000); RE1=0; }}}}}} Também vou mandar a imagem
  2. Olá li e re-li este tópico, achei extremamente importante em vista que neste ano de 2015 me encontro em novembro, (fiz este breve comentario pois o rapaz tinha que entregar o tcc em novembro, no caso, mesma coisa que eu, que coincidência) e tenho que entregar esta parte funcionando do motor de passo. Gostaria de saber como ficou a programação utilizando o PIC18F4550, por gentileza gostaria que comentassem aqui ou me mandassem essa programação pelo e-mail: [email protected]. Muito obrigado por disponibilizarem este conhecimento, esta sendo de bom uso! Continuem assim!
  3. Ola, vim aqui explicar minha experiencia de usuario de windows, e espero poder te ajudar de certa forma narrando os fatos. Eu tinha um windows 8.1 atualizei para o 10 e comecei a enfrentar bug's, problemas de travamento (cujo um eu irei citar, a barra do menu iniciar não carregava e a mensagem surgia na minha tela me informando para "reiniciar" que voltaria funcionar, mas neste caso eu fazia isso nada de mudar para funcionar, mas depois de eu ter feito um arquivo no cmd, cujo arquivo que fiz num bloco de notas e salvei numa extensão obs. eu não lembro a extensão, eu vi num site da internet, ai sim, reiniciei e isso fez voltar a funcionar "normal") mas começou a trancar, ficar pesado e enfim... eu tive que mandar meu computador para formatar e fazer backup para não perder meus arquivos, paguei 175 dilma$ ao técnico e valeu a pena voltar usar o Windows 7. Ele me explicou que 8.1 da alguns problemas (mas que comigo antes de eu atualizar eu não enfretava problema algum) e que o 10 esta em versão teste, ou seja, no meu caso que conheço o básico, melhor e ter um software funcionando do que um atualizado me dando constantes problemas.
  4. Olá, gostaria de agradecer este tópico e pela opinião de todos, deste jeito consegui adquirir um celular que atingissem meus pré-requisitos, neste caso optei pela escolha da marca motorola. Primeiramente eu estava com um celular desses antigos, bem simples, da marca Samsung modelo GT-E1232D, como estamos neste avanço constante de se comunicar, precise me atualizar para ter aplicativos. Pelo preço que paguei 1499,00 valeu a pena (na minha opinião) o Moto X Play. Eu recomendo este aparelho, para quem quer um aparelho de qualidade com bateria duradoura. Valeu pessoal, fico continuem contribuindo com a opinião de vocês, isso ajuda muito na escolha, estou contente de estar por aqui compartilhando o pouco que sei, e quero aprender muito ainda! Muito obrigado

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