Ir ao conteúdo

nil.34

Membro Pleno
  • Posts

    24
  • Cadastrado em

  • Última visita

  1. mas estas saídas são para duas caixas menores passivas e agudas, para a outra caixa ativa nao tem saída
  2. Alguém pode me ajudar tenho duas caixas ativas tipo subwover satelite 45W rms, e gostaria de ligar as duas numa mesma saída de audio (PC /celular), mas as caixa só possuem uma entrada p2 cada.Como faço? um simples cabo Y p2 estereo resolve o problema? São duas dessas na foto, posso usar ligando as duas caixas em uma unica saída (pc/celular) ou preciso de algo a mais?
  3. Consegui resolver problema, não era ruido, e sim erro no programa, que no CCS ficou assim: while(true){ if(botao_start==0 && x==1){ // se o botao start acionado,motor estiver lig delay_ms(5); x++; set_pwm1_duty(0);// desliga motor led_start=0; //apaga led start led_stop=1;// acende led stop delay_ms(1); while(botao_start==0);//aguarda soltar botão x=0; } if(botao_start==0 && x==0){ //se o botao start acionado,motor estiver deslig delay_ms(5); x++; set_pwm1_duty(a); // atribui pwm ao valor ajustado em a led_start=1;// acende led start led_stop=0; // apaga led stop delay_ms(1); while(botao_start==0);//aguarda soltar botão } tópico resolvido.
  4. Obrigado. DMHIGOR Conforme você sugeriu, fiz algumas adaptações no programa que estou testando e funcionou, conforme estava esperando... A intenção é acionar e desacionar um motor cc com pwm (através mosfet) através de um unico botão, e variar a velocidade mesmo através de um botão incrementa e outro decrementa. Esta funcionando, o que estou agora tentando resolver, é que as vezes o botão que lig/ desl o pwm falha como se fosse problema de ruido.Mas não testei na pratica, apenas simulei no proteus, não sei se pode ser problema de simulação,Mas o acionamento esta falhando. Segue abaixo o programa /******************************************************************************* Acionamento motor com PWM PIC 16f877A Compilador CCS *******************************************************************************/ #FUSES NOWDT //No Watch Dog Timer #FUSES HS //High speed Osc (> 4mhz for PCM/PCH) (>10mhz for PCD) #FUSES NOPUT //No Power Up Timer #FUSES NOPROTECT //Code not protected from reading #FUSES NODEBUG //No Debug mode for ICD #FUSES NOBROWNOUT //No brownout reset #FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O #FUSES NOCPD //No EE protection #FUSES NOWRT //Program memory not write protected #FUSES RESERVED //Used to set the reserved FUSE bits #use delay(clock=4000000) #use fast_io(a)// define as utilizações das portas a como entrada e saida #use fast_io(b)// define as utilizações das portas b como entrada e saida #use fast_io(d)// -- #byte porta = 0x05 // padrão endereços das portas #byte portb = 0x06 // padrão endereços das portas #byte portc = 0x07 // -- #byte portd = 0x08 // -- #bit botao_desce = porta.0 // define porta A0 como botão decrementa PWM #bit botao_sobe = porta.1 // define porta A1 como botão incrementa PWM #bit botao_start = porta.2 // define porta A2 como botão liga /desliga PWM unsigned int a=10,x=0; /*************************************************************************** Função liga / desliga - motor ****************************************************************************/ void motor_para(){ //rotina deliga motor x++; if(x>=1) set_pwm1_duty(0);// desliga pwm delay_ms(1); while(input(botao_start)==1);//aguarda soltar botão x=0; } void motor_gira(){ //rotina liga motor x++; if(x>=1) set_pwm1_duty(a); delay_ms(1); while(input(botao_start)==1);//aguarda soltar botão } /***************************************************************************** Função Principal ******************************************************************************/ void main() { setup_adc_ports(NO_ANALOGS); setup_adc(ADC_CLOCK_DIV_2); setup_psp(PSP_DISABLED); setup_spi(SPI_SS_DISABLED); setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); setup_timer_1(T1_DISABLED); setup_timer_2(T2_DIV_BY_4,249,1);// frequência 1KZ setup_ccp1(CCP_PWM); set_pwm1_duty(10); setup_comparator(NC_NC_NC_NC); setup_vref(FALSE); set_tris_a (0b00000111); // define port a0 e port a1 e a2 como entrada set_pwm1_duty(30);// *********************************************************** delay_ms(600); // Estas funçoes acionam um pulso no motor sempre lig progr. set_pwm1_duty(0);//************************************************************* while(true){ if (botao_start==1 && x>=1){ // se o botao start acionado,motor estiver lig delay_ms(5); motor_para();//rotina - motor desliga } if (botao_start==1 && x>=0){ //se o botao start acionado,motor estiver deslig delay_ms(5); motor_gira(); // rotina - motor liga } if (botao_sobe==1){ // botão incrementa pwm if (a<245){ // incrementa até 245 a=a+1; delay_ms(100); if(x>=1){ // mesmo soltando botão pwm continua ligado set_pwm1_duty(a);// pwm assume valor variavel a } } } if (botao_desce==1){// botão decrementa pwm if (a>0){ a=a-1; delay_ms(100); if(x>=1){ set_pwm1_duty(a); } } } } }
  5. Aguem sabe uma rotina para ler um unico botão, de maneira que com um toque ele execute uma função, outro toque ela deixa de executar a mesma funcão.

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: Aprenda a Ler Resistores e Capacitores

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!