Ir ao conteúdo
  • Cadastre-se

Felipe Electronic

Membro Pleno
  • Posts

    3.312
  • Cadastrado em

  • Última visita

Tudo que Felipe Electronic postou

  1. Projetos de amps digital como esses usam os conhecidos PGAs da texas estou errado? Eu mesmo montei um prezinho desses usando um PGA e controle e seleção de canais com um MCU PIC dafamilia 18F. A unica coisa que fiz de diferente nesse projeto foi condicionar o sinail digitalmente (fazer o PIC trabalhar como DSP) apliquei um filtro FIR passa - faixa para eliminar interferencias e dar uma certa pureza ao sinal ao contrario do que muitos audiofilos pensam esse projeto apesar de digital ficou com uma excelente qualidade de audio consegui até enganar dois audiofilos hehehe. Quero ir mais longe com audio, pretendo fazer um amplificador classe -D de baixissima distorção e de potência elevada para um modulo de som que quero por em meu carro, o projeto esta meio parado até por eu estar me dedicando aos AVR. Enfim acho que terei com quem compartilhar experiencias, contem comigo e se alguem tiver interesse na implementação do filtro digtal FIR é so falar. abs.
  2. Mestre paulo, não é so você que foi se meter ao lado negro da força (to falando dos AVR gente kkkkk) eu entrei na dança também, estou abrindo mais o AVR Studio do que o MPLab, mas claro né em assembly,mas estou usando a valiosa ferramenta o ASI que é o mesmo PSI so que para AVR. No que eu puder ajudar, sendo em basic, C, asm estamos ai contem comigo. abs.
  3. gerar um PWM por software é tão fácil quanto andar para trás, Vamos ao algoritmo: - Usando o timer2, você pode determinar o periodo e a frequencia fixa do teu PWM; - Usando uma variavel de controle você estabelece o tempo em que teu sinal fica em nível alto. - Va comparando o valor corrente do timer com a variável de controle, enquanto o timer for menor que o valor da varavel de controle a saida mantem se em nível caso maior ou igual voce leva a saida a nivel alto; - Para mudar o tempo em que a saida fica em nivel alto altere a variavel de controle de modo que 0=< variavel =< valor de estouro do timer. Essa é uma das milhares de forma de se gerar um PWM, a resolução esta em torno de 7bits dependendo da frequencia, essa é a forma que considero mais simples, fiz esse codigo aqui em assembly mas ta comentado para gerar um PWM por esta técnica para construção de um inversor de tensão senoidal: ;FIRMWARE DE TESTE PARA INVERSOR ;VERSÃO 1 ;DATA: 30/12/2009 ;AUTOR:FELIPE NEVES list p= pic16f88 #INCLUDE <P16F88.INC> __CONFIG _CONFIG1, _CP_OFF & _WDT_OFF & _MCLR_OFF & _LVP_OFF & _BODEN_ON & _PWRTE_ON & _INTRC_IO ;======================================================= CBLOCK 0X20 C1 C2 OFFSET FLAG COMP CICLE ENDC ;======================================================= #DEFINE Q1 PORTB,0 ;TRANSISTOR DE SAIDA #DEFINE Q2 PORTB,2 ;TRANSISTOR DE SAIDA #DEFINE Q1_FLAG FLAG,0 ;FLAG DE INVERSÃO #DEFINE Q2_FLAG FLAG,2 ;FLAG DE INVESÃO ;======================================================= ORG 0X00 GOTO START ORG 0X04 BTFSC PIR1,TMR2IF GOTO PULSE_INT BTFSC INTCON,TMR0IF GOTO INVERT_DRIVE SAI_INT: RETFIE PULSE_INT CLRF PORTB ;DESABILITA TRANSISTOR INCF OFFSET ;INCREMENTA INDICE DA TABELA CALL SINE_TABLE ;CHAMA TABELA MOVWF CICLE ;POE EM CICLE BCF PIR1,TMR2IF ;DESABILITA FLAG DE INTERRUPÇÃO CLRF TMR2 ;RESETA TIMER2 GOTO SAI_INT ;SAI DA INTERRUPÇÃO INVERT_DRIVE: CLRF PORTB ;LIMPA PORTB CALL MILISEC ;ENTRA EM DEAD TIME CLRF OFFSET ;RESETA OFFSET COMF FLAG,F ;INVERTE O TRANSISTOR ATIVO MOVF FLAG,W ANDLW B'00000101' ;APAGA DEMAIS BITS MOVWF FLAG BCF INTCON,TMR0IF ;RESETA FLAG DE TIMER0 CLRF TMR0 ;ZERA TIMER0 GOTO SAI_INT ;SAI DA INTERRUPÇÃO ;====================================================== DELAYMS MOVWF C2 CALL MILISEC DECFSZ C2,F GOTO $-2 RETURN MILISEC ;DELAY DE DEAD TIME MOVLW .10 ;CARREGA C1 COM 10d MOVWF C1 NOP ;1uS DECFSZ C1,F ;1uS GOTO $-2 ;2uS RETURN ;x10 + 2uS = 42uS ;==================================================================== LOOP: MOVF CICLE,W SUBWF TMR2,W ; FAZ (TMR2 - W) E VERIFICA QUEM É MAIOR BTFSC STATUS,C ; QUEM É MAIOR? GOTO LIGA ;TMR2, ENTÃO HORA DE CHAVEAR O DRIVE BCF STATUS,C ;LIMPA CARRY E REPETE A OPERAÇÃO GOTO LOOP LIGA MOVF FLAG,W ;MOVE QUAL TRANSISTOR DEVE SER O ATIVO IORWF PORTB,F ;FAZ LÓGICA OR COM PORTB E GUARDA O RESULTADO LA MESMO GOTO LOOP ;TERMINADA A OPERAÇÃO, RETORNA ;==================================================================== START: BANKSEL OSCCON MOVLW 065H ;OSCILADOR RODANDO A 4MHZ MOVWF OSCCON BANKSEL PORTA CLRF PORTA ;LIMPA IO DO PORTA CLRF PORTB ;LIMPA IO DO PORTB BANKSEL CMCON MOVLW 0X07 ;DESABILITA COMPARADOR MOVWF CMCON BANKSEL ANSEL CLRF ANSEL ;SETA TODOS OS IOs PARA DIGITAIS BANKSEL TRISA MOVLW 0XFF ;PORTA SOMENTE ENTRADA MOVWF TRISA CLRF TRISB ;PORTB SOMENTE SAIDA BANKSEL OPTION_REG MOVLW B'10000100' ;CONFIGURA TIMER0 COM PREESCALER 1:32 MOVWF OPTION_REG BANKSEL PR2 MOVLW .125 ;TIMER2 IRA INTERROMPER A CADA 2KHz MOVWF PR2 BANKSEL T2CON MOVLW B'00000101' ;CONFIGURA TIMER2 COM PRESCALER 1:4 MOVWF T2CON BANKSEL PIE1 BSF PIE1,TMR2IE ;ATIVAR INTERRUPÇÃO PELO ESTOURO DO TIMER2 BANKSEL INTCON MOVLW B'01100000' ;ATIVA INTERRUPÇÃO PELO TIMER0 E PERIFERICOS MOVWF INTCON BSF INTCON,GIE ;ATIVA TODAS AS INTERRUPÇÕES HABILITADAS BCF STATUS,RP0 BCF Q1 ;DESATIVA Q1 BCF Q2 ;DESATIVA Q2 BSF Q1_FLAG ;INCIA FLAG DE INVERSÃO EM 1 MOVLW .113 ;INICIA COM CICLO ATIVO MINIMO MOVWF CICLE CLRF COMP ;LIMPA COMP CLRF OFFSET ;ZERA OFFSET CLRF TMR0 ;ZERA TMR0 CLRF TMR2 ;ZERA TMR2 BCF STATUS,C ;LIMPA CARRY GOTO LOOP ;================================================================================================= SINE_TABLE ;TABELA SENOIDE MOVF OFFSET,W ;DEFINE O PONTO DO CICLO ATIVO CORRESPONDENTE ADDWF PCL,F RETLW .113 RETLW .100 RETLW .88 RETLW .75 RETLW .63 RETLW .50 RETLW .37 RETLW .25 RETLW .12 RETLW .25 RETLW .37 RETLW .50 RETLW .63 RETLW .75 RETLW .88 RETLW .100 RETLW .113 ;================================================================================================= END ;FIM DO FIRMWARE Mestre Paulo me desculpe invadir o tópico com assembly, mas creio que va ajudar o amigo. abs.
  4. Ok, agora como assim não acende o tubo? não estão aparecendo as linhas? abs.
  5. Bom, o que queres fazer é um contador certo? Bom, quanto ao Proteus acredito que você ja saiba usa - lo Vamos ao que interessa, o algoritmo é generico a qualquer mmicrocontrolador: voce pode: - ficar monitorando o botão e a cada pressionamento, você ira incrementar uma variavel tipo int em uma unidade; - em seguida poderia imprimir no LCD um numero correspondente a essa variavel através de um switch case, é a forma mais primitiva, mas como teu contador vai de 0 a 10 você pelo menor ira entender o que se passa. veja: int cont; void main () { if (botão == 1) { cont ++; } switch (cont) { case = 0 : lcd_out ("0"); break; . . e assim por diante até 10. } } este é so um exemplo bem básico, como so programo em C para DSPs então não estou muito interado em C com PIC nem como funciona o mikroC, pois PIC programo em assembly, mas se o codigo interessar eu posto aqui. abs
  6. O capacitor de filtro é mais empirico mesmo, depende do tipo de ruido que você quer captar, se for mais grave aumente o capacitor, se quer algo mais agudo diminua o capacitor. abs.
  7. Os resistores de polarização do preamp estão com valores muito elevados, o ganho esse circuito está muito baixo também. Seria interessante colocar um 'wave shaper' ou seja um circuito para dixar a saida mais 'quadrada' para então aplicar a linha de clock do flip-flop, no caso pode ser um MONOestavel com um 555. Mais, aumente o capacitor de saida do microfone para uns 220nF, pois esse valor ai so vai deixar passar ruidos muitos intensos o que vai porvocar baixa sensibilidade. Se quiser fazer com operacional, use um lm324 com fonte simples, porém na entrada adicione um componente continua via divisor de tensão. abs.
  8. O amigo Binho esta certo, a ainda ha mais modos se voce demandar pouca corrente, pode usar diodo zener. para demandas maiores até 1A pode usar um LM317 e obter um ajuste preciso da tensão. e para correntes ainda maiores voce poder recorrer ao velho regulador serie com transistor, ou mesmo algo mais sofisticado como um conversor CC-CC tipo buck. especifique melhor para que precisa dele! abs.
  9. Angelo, estude sobre o principio de eletromagnetismo e transformadores e entenderas porque ele não funciona em DC. abs.
  10. Sim, o tópico é bom, vale até mesmo para construção de transformadores para fontes chaveadas ou indutores para tanques ressonantes, ja que o principio de construção é quase o mesmo! abs.
  11. Sos seria aquela placa verde no video um arduino? abs.
  12. Até tem para 8051 via USB na controller, porém prepare se pra gastar e muito! quais familias AVR esse gravador suporta? Pois ainda não conheci as limitações da minha gambiarra com o arduino, mas porque não ter um gravador próprio para AVR não é mesmo/ abs.
  13. Bom dia amigo, a alimentação da plaquinha vem da rede e o rele em série com a fase, depois da alimentação, essa placa usa uma fonte do tipo transformless ja que seua corrente de consumo é baixissima. Alterando a relação do TC você deve mudar os valores do divisor resistivo, de modo que sua tensão fique em torno de 0,8V quando passar pelo TC a corrente de corte. a instrução sublw .98 na verdade é uma constante que utilizo de base para saber se houve sobre corrente na saida, veja a rotina inteira que iras entender. Amigo esse codigo vale pra qualquer PIC, pois todos os dotados de PWM possuem os mesmo registradores e formas de configuração, é só dar uma lida no datasheet, o pessoal aqui esta postando pra qual PIC é basta que voce veja o cabeçalho de configuração que diz pra qual máquina é. duvidas perguntem! abs.
  14. Está utilizando um transdutor ultrasonico de 40KHz? (o piezo do esquema) provavelmente é isso! abs.
  15. Angelo, sugiro que de uma estudada em circuitos biestáveis e flip - flops, assim entederas a finalidade do circuito. podes substituir o 4013 por um 7474! abs.
  16. Ja ouviu falar em provador de continuidade? Se não primeiro veja como ela funciona no multimetro. e aqui veja como é um motor de passo por dentro: http://images.google.com.br/imgres?imgurl=http://www.rogercom.com/pparalela/CircuitoULN.gif&imgrefurl=http://www.rogercom.com/pparalela/IntroMotorPasso.htm&usg=__UcrwFAzHpM0yeCgFCNC-n0V5z5U=&h=256&w=616&sz=16&hl=pt-BR&start=20&um=1&tbnid=nh-8fK5bROjJ0M:&tbnh=57&tbnw=136&prev=/images%3Fq%3DMotor%2Bde%2BPasso%26hl%3Dpt-BR%26client%3Dfirefox-a%26rls%3Dorg.mozilla:pt-BR:official%26hs%3DI5y%26sa%3DN%26um%3D1 abs.
  17. Gabriela, voce fez o que disse em topico anteriores? coloccou o diodo ou um capacitor em antiparalelo com o motor! se continuares usando sem essas precauções ira queimar varios HIP até achar o problema! agora responda me uma pergunta que ja fiz a um temppo nesse topico, qual a capacidade de corrente que essa bateria esta fornecendo? abs.
  18. Amigo Ricardo, IGBTs sao recomendados para chaveamento em alta velocidade, ja que reune as caracteristicaas dos MOSFETs com os TJBs , mas em fonte linear ele nao ia apresentar uma melhoria significativa ja que como nome da fonte diz o transistor se for o elemento de controle funciona na regiao ativa, dissipando energia o que explica a baixa eficiencia nesse tipo de fontes. agora se for fazer uma fonte chaveada ai sim recomendo ou MOSFETs e IGBTs, dependendo somente da frequencia de chaveamento e quanto podes perder na conduçao deles. Quanto a capacitancia, porque nao calcula pelo valor do ripple desejado, na internet voce vai encontrar a formula e ela te dara um valor proximo. Quanto aos diodos sugiro fortemente que use os em ponte, isso iria diminuir o tamanho do diodo do secundario, uma vez que teriammos dois diodos conduzindo e nao um. abs.
  19. Se o PWM que estiver usando for de frequencia elevada, esqueça, so diodos schottky para resolver, mas acho que nao é o caso, pois para acionar um motor nao é necessario um pwm de elevada frequencia, algo em torno de 600hz geralmente e o bastante, deve se verificar seo HIP esta respondendo aos comandos do PIC, veja a frequencia maxima de chaveamento deste! abs.
  20. Faz tempo que nao programo em Basic, mas estou pensando em voltar pra ajudar o pessoal com a linguagem, ja que esta crescendo bastante aqui no forum =D. quanto ao problema : Define LCD_RSBIT = 5 Define LCD_EBIT = 4 voce deve definir em qual port estarao esses bits, pois o que esta fazendo ai em cima nada mais e do que atribuir uma constante a LCD_RSBIT e LCD_EBIT, tente em vez disso , isso: Define LCD_RSBIT = PORTB.5 Define LCD_EBIT = PORTB.4 abs.
  21. Os PIC32 sao encontraveis no brasil ate mesmo em forma de starter kits, sao bem poderosos, e robustos! Quanto ao barramento creio que seja o I2C certo? sim, pode se pendurar varios disposistivos pois eles sao endereçaveis e cada CI possui seu byte de controle que e unico pra cada tipo de IC e tambem tres pinos para enderecamento externo, so tome cuidado quando for trabalhar com frequencias mais elevadas de modo que o numero de dispositivos nao gere uma capacitancia parasita maior que 400pF abs.
  22. Hehe, meus CIs da maxim, chegaram rapidamente, pedi em uma semana na outra eles ja me mandaram, tem max232, ds1621, meus amp de classe D e mais uns outros, acho que nao precisareis de CIs deles por um bom tempo! Off: amigo divino junior, obrigado pela ajuda, porém coloque seu post em um topico para esse assunto, para nao confundir o pessoal! abs.

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!