Ir ao conteúdo
  • Cadastre-se

Controlo linear de tensão com PIC


LEOPUENA

Posts recomendados

Oi pessoal.

Quero saber como fazer um controlador de tensão na saida de um PIC, cujo controle fosse linear. Seria algo como um PWM se usado com um LED, mas em vez de pulsos controlaria directamente o nivel de tensão de saida.

Não sei é possivel, nunca trabalhei com saidas analogicas do PIC. E não é para um projecto especifico.

Agradeço a ajuda.

Link para o comentário
Compartilhar em outros sites

Não entendo bem a linguagem C, mas parece que o programa é bem simples, tenho o CCS, vou testar depois digo algo.

edit.__

cadê o post do codigo fonte?????

Mais uma duvida. o proteus é capaz de simular do duty cilce do PWM?

sei que não é possivel testar matrizes (pelo menos eu nunca consegui).

Link para o comentário
Compartilhar em outros sites

;LEOPUENA ver se esse te ajuda ta bem

#INCLUDE <P16F628A.INC> ;ARQUIVO PADRÃO PARA PIC16F628A

__CONFIG _CP_OFF & _INTRC_OSC_NOCLKOUT & _PWRTE_ON & _MCLRE_ON & _LVP_OFF & _WDT_OFF & _BODEN_OFF & _DATA_CP_OFF

#DEFINE BANK0 BCF STATUS,RP0 ; ESCOLHE BANCO DE MEMÓRIA 0

#DEFINE BANK1 BSF STATUS,RP0 ; ESCOLHE BANCO DE MEMÓRIA 1

CBLOCK 0x20

FILTRO

ENDC

#DEFINE T_FILTRO .255

#DEFINE BOTAO1 PORTB,0

#DEFINE BOTAO2 PORTB,7

#DEFINE LED PORTB,3

ORG 0x0000

GOTO CONFIG_

ORG 0x0004

RETFIE

CONFIG_

CLRF PORTA

CLRF PORTB

BANK1

MOVLW B'00000000'

MOVWF TRISA

MOVLW B'10000001'

MOVWF TRISB

MOVLW B'10000000'

MOVWF OPTION_REG

MOVLW B'00000000'

MOVWF INTCON

MOVLW .249

MOVWF PR2

BANK0

MOVLW B'00000101'

MOVWF T2CON

MOVLW B'00001111'

MOVWF CCP1CON

CLRF CCPR1L

MOVLW B'00000111'

MOVWF CMCON

LOOP

MOVLW T_FILTRO

MOVWF FILTRO

TESTA_BOTAO1

BTFSC BOTAO1

GOTO TESTA_BOTAO2

DECFSZ FILTRO,F

GOTO TESTA_BOTAO1

MOVLW .255

XORWF CCPR1L,W

BTFSC STATUS,Z

GOTO AGUARDA_BOTAO1

INCF CCPR1L,F

AGUARDA_BOTAO1

MOVLW T_FILTRO

MOVWF FILTRO

BTFSS BOTAO1

GOTO $-3

DECFSZ FILTRO,F

GOTO $-3

TESTA_BOTAO2

MOVLW T_FILTRO

MOVWF FILTRO

TESTA_BT2

BTFSC BOTAO2

GOTO LOOP

DECFSZ FILTRO,F

GOTO TESTA_BT2

MOVF CCPR1L,F

BTFSC STATUS,Z

GOTO AGUARDA_BOTAO2

DECF CCPR1L,F

AGUARDA_BOTAO2

MOVLW T_FILTRO

MOVWF FILTRO

BTFSS BOTAO2

GOTO $-3

DECFSZ FILTRO,F

GOTO $-3

GOTO LOOP

END ;aqui esta LEOPUENA FIM DO PROGRAMA

Link para o comentário
Compartilhar em outros sites

  • 3 meses depois...

Oi Caroline!

Que linguagem é essa???

Estou procurando um comando assim, só que na liguagem BASIC do PSI.

Dá p/ transformar esse código aí para o BASIC?

Eu não consigo encontrar o "elo" de ligação entre os botões µP e down e a saída PWM no BASIC. No manual do PSI só explica o funcionamento com potenciometros.

Obrigado

Agricio

Link para o comentário
Compartilhar em outros sites

Quero saber como fazer um controlador de tensão na saida de um PIC, cujo controle fosse linear. Seria algo como um PWM se usado com um LED, mas em vez de pulsos controlaria directamente o nivel de tensão de saida.

Opções não faltam:

- Modulação PWM aplicada a um filtro - passa baixas para retirada dos harmonicos restando somente o sinal analógico original, é mais chato de implementar em compensação é ometodo mais barato e so demanda um pino do MCU;

- Rede R2R com amplificador reforcador na saida para não sobrecarregar a rede, demanda mais pinos mas é ridicularmente simples de impplementar;

- Usar um conversor D/A externo, melhor confiabilidade uma vez que o conversor ja está pronto é só colocar os dados, DAC0804, MCP4921.

Agora escolha a que mais lhe agrada e lhe atende.

Abs.

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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!