Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
Entre para seguir isso  
Savant_rj

PIC Simulator IDE com saida analógica

Recommended Posts

Pessoal,

Como posso fazer uma saída variar de 0-5V, de forma que ao ligar um LED nele, varie o brilho?

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • Oi Felipe... Desculpe, mas nunca mexi com CCP!!! Seria esse o caminho??

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Ok,ok vejo que és iniciante, primeiro, a unica forma de se gerar um sinal analógico em um microcontrolador PIC usando uma saida é com um sinal em PWM, se não souber o que é sugiro primeiro que procures por modulação por largura de pulsos,

    Mas se ja souber do que se trata, então o sinal de PWM pode ser gerado usando um modulo dedicado do PIC chamado de CCP, com ele voce pode gerar um sinal onde mudando o valor do registrador CCP1RL e os bits 5 e 4 do registrador CCP1CON voce tera um valor de tensão média variavel na saida.

    mais duvidas va perguntando.

    abs.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • certo, comecei a ler sobre isso... achei no próprio site do fabricante um exemplo(http://www.oshonsoft.com/picbasiccompilerexamples.html - exemplo 6)... mas lá ví que usou apenas a porta CCP... então, só posso ter UMA saida com esse recurso(variar a intensidade do LED)?

    Fiz um projeto que apresenta 7 led's. Eles acendem com 5 sequencias definidas. e o que quero incluir é isso, fazer com que ele não acenda do nada(on/off)... quero que numa das sequencias, ele vá acendendo aos pouco até chegar ao brilho máximo(5V na saida do pino)... e depois vá apagando.

    Segue abaixo cópia do código usado.

    =================================

    Define CONF_WORD = 0x3ff1

    TRISA = 0xff 'todos os pinos como entrada

    TRISB = 00000001b

    INTCON.INTE = 1 'enable RB0/INT interrupts

    INTCON.GIE = 1 'enable all un-masked interrupts

    Dim digito As Byte 'os números que vamos mostrar, de 0 a 9

    Dim chave As Byte

    Dim ct As Byte

    Dim saida As Byte 'padrão de segmentos dos números 0 a 9

    chave = 0

    sempre:

    Select Case chave

    Case 0

    PORTB = 0xfe

    Case 1

    ct = chave

    PORTB = 0x00

    For digito = 0 To 6

    saida = LookUp(0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80), digito

    If ct <> chave Then digito = 7

    PORTB = saida

    'WaitMs 250

    Next digito

    Case 2

    ct = chave

    PORTB = 0x00

    For digito = 0 To 6

    saida = LookUp(0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02), digito

    PORTB = saida

    If ct <> chave Then digito = 7

    'WaitMs 250

    Next digito

    Case 3

    ct = chave

    PORTB = 0x00

    For digito = 0 To 6

    saida = LookUp(0xfc, 0xfa, 0xf6, 0xee, 0xde, 0xbe, 0x7e), digito

    PORTB = saida

    If ct <> chave Then digito = 7

    'WaitMs 250

    Next digito

    Case 4

    ct = chave

    PORTB = 0x00

    For digito = 0 To 6

    saida = LookUp(0x7e, 0xbe, 0xde, 0xee, 0xf6, 0xfa, 0xfc), digito

    PORTB = saida

    If ct <> chave Then digito = 7

    'WaitMs 250

    Next digito

    EndSelect

    Goto sempre

    End

    On Interrupt 'interrupt routine

    chave = chave + 1 'decrement the value on PORTA

    If chave > 4 Then chave = 0

    'WaitMs 400

    INTCON.INTF = 0 'enable new RB0/INT interrupts

    Resume

    Editado por Bcpetronzio
    Unir Post seguidos em menos de 24 horas, use a opção Editar

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Crie uma conta ou entre para comentar

    Você precisar ser um membro para fazer um comentário

    Entre para seguir isso  





    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

    ×