Ir ao conteúdo
  • Cadastre-se

Dimmer com pic


Posts recomendados

Ola  bom dia

Eu estou construindo um pequeno dimmer para controlar um ventilador de teto

Mais não estou tendo bons resultado

O meu projeto esta funcionado bem com uma lampada mais se eu ligar o ventilador ele oscilando não a atua a velocidade

Aqui algumas foto e o meu programa 

Eu não tenho muita experiencia neste tipo de projeto com dimmer

Obrigado

@ DEVICE pic16F628A
 @ DEVICE pic16F628A, WDT_OFF
 @ DEVICE pic16F628A, PWRT_OFF
 @ DEVICE pic16F628A, BOD_OFF
 @ DEVICE pic16F628A, PROTECT_OFF
 @ DEVICE pic16F628A, MCLR_ON
 @ DEVICE pic16F628A, HS_OSC 
 DEFINE OSC 12

TRISB=%00000001:PORTB=%00000000
TRISA=%11111111:PORTA=%00000000
CMCON=7

OPTION_REG = %10000000  

DEFINE LCD_DREG PORTB  
DEFINE LCD_DBIT  4 
DEFINE LCD_RSREG PORTB 
DEFINE LCD_RSBIT 2 
DEFINE LCD_EREG PORTB 
DEFINE LCD_EBIT  3  
DEFINE LCD_LINES 2       
DEFINE LCD_COMMANDUS 2000	
DEFINE LCD_DATAUS 50 

LA  VAR PORTB.1   
TLA VAR WORD      
T1  VAR WORD      

LCDOUT $fe,1,  "    By Cesar"
pause 1000
LCDOUT $fe,1

ON INTERRUPT GOTO ZERO_CROSS 
INTCON = %10010000               

TLA = 670 'VALOR INICIAL DE TLA 

INICIO:

    IF PORTA.2 = 0 THEN
    TLA = TLA + 10           
    FOR T1 = 0 TO 200  'PAUSA ENTRE CAMBIOS DE RETARDO DE TLA
    PAUSEUS 5 
    NEXT
    ENDIF
'''******************************************************************************
'''******************************************************************************
    IF PORTA.3 = 0 THEN
    TLA = TLA - 10         
    FOR T1 = 0 TO 200  'PAUSA ENTRE CAMBIOS DE RETARDO DE TLA 
    PAUSEUS 5
    NEXT
    ENDIF
    GOTO INICIO
    
    DISABLE
ZERO_CROSS :
     
    PAUSEUS TLA      'RETARDO ANTES DEO DISPARO
    LA = 1           'DISPARO DO TRIAC
    PAUSEUS 2
    LA = 0
    
    LcdOut $FE,192   
    LCDOUT DEC3 TLA 
    
    INTCON=%10010000  
    RESUME  
    ENABLE 

 

 

 

20160903_075902.jpg

20160903_075906.jpg

20160903_075945.jpg

20160903_080017.jpg

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

carga indutiva dá uma zoadinha básica mesmo. Hás de tentar um RC em paralelo com o motor. Não me pergunte valores pois eu chutaria 10nF 2K2 com V e W não pequenos

 

isso nada a ver com o tipo  de carga mas experimenta colocar um capacitor chute 1nF em série entre o sinal de disparo e o gate do triac.

 

Meu raio x tá com defeito. Não consigo ver direito o circuito

Link para o comentário
Compartilhar em outros sites

5 horas atrás, Morisco disse:

Ola  bom dia

Eu estou construindo um pequeno dimmer para controlar um ventilador de teto

Mais não estou tendo bons resultado

O meu projeto esta funcionado bem com uma lampada mais se eu ligar o ventilador ele oscilando não a atua a velocidade

Aqui algumas foto e o meu programa 

Eu não tenho muita experiencia neste tipo de projeto com dimmer

Obrigado

 

Obrigado pela resposta 

Este capacitor e o resisto em sere com a saída já esta no circuito

Obrigado

 

5 horas atrás, Morisco disse:

@ DEVICE pic16F628A
 @ DEVICE pic16F628A, WDT_OFF
 @ DEVICE pic16F628A, PWRT_OFF
 @ DEVICE pic16F628A, BOD_OFF
 @ DEVICE pic16F628A, PROTECT_OFF
 @ DEVICE pic16F628A, MCLR_ON
 @ DEVICE pic16F628A, HS_OSC 
 DEFINE OSC 12

TRISB=%00000001:PORTB=%00000000
TRISA=%11111111:PORTA=%00000000
CMCON=7

OPTION_REG = %10000000  

DEFINE LCD_DREG PORTB  
DEFINE LCD_DBIT  4 
DEFINE LCD_RSREG PORTB 
DEFINE LCD_RSBIT 2 
DEFINE LCD_EREG PORTB 
DEFINE LCD_EBIT  3  
DEFINE LCD_LINES 2       
DEFINE LCD_COMMANDUS 2000	
DEFINE LCD_DATAUS 50 

LA  VAR PORTB.1   
TLA VAR WORD      
T1  VAR WORD      

LCDOUT $fe,1,  "    By Cesar"
pause 1000
LCDOUT $fe,1

ON INTERRUPT GOTO ZERO_CROSS 
INTCON = %10010000               

TLA = 670 'VALOR INICIAL DE TLA 

INICIO:

    IF PORTA.2 = 0 THEN
    TLA = TLA + 10           
    FOR T1 = 0 TO 200  'PAUSA ENTRE CAMBIOS DE RETARDO DE TLA
    PAUSEUS 5 
    NEXT
    ENDIF
'''******************************************************************************
'''******************************************************************************
    IF PORTA.3 = 0 THEN
    TLA = TLA - 10         
    FOR T1 = 0 TO 200  'PAUSA ENTRE CAMBIOS DE RETARDO DE TLA 
    PAUSEUS 5
    NEXT
    ENDIF
    GOTO INICIO
    
    DISABLE
ZERO_CROSS :
     
    PAUSEUS TLA      'RETARDO ANTES DEO DISPARO
    LA = 1           'DISPARO DO TRIAC
    PAUSEUS 2
    LA = 0
    
    LcdOut $FE,192   
    LCDOUT DEC3 TLA 
    
    INTCON=%10010000  
    RESUME  
    ENABLE 

 

 

 

20160903_075902.jpg

20160903_075906.jpg

20160903_075945.jpg

20160903_080017.jpg

Ja  usei 

 

adicionado 4 minutos depois

Obrigado pela resposta 

Este capacitor e o resisto em sere com a saída já esta no circuito

E o meu primeiro projeto com este circuito usando triac e o moc

Tem diferença para controlar lampada ou motor AC

Obrigado

Link para o comentário
Compartilhar em outros sites

Mesmo picotando a senoide, os controladores de velocidade de ventiladores (e algumas exceções) fazem isso, não é por causa de harmônicas que eles deixam de funcionar.

 

No seu caso; PIC é vulnerável a ruídos, por isso é bom evita-los, mas influência desses ruídos em sua maioria geram resets aleatórios ou travamentos indesejados (não é regra). Não parece que isto esta acontecendo pelo que o sr. relata...

 

Você diz que com lampada esta funcionando simplesmente porque viu ela "variar o brilho"? Mediu de fato o que esta acontecendo? Pois me parece que você não esta acionando o tiristor da forma correta.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Seu retorno já é alguma coisa  mas não é tudo. Tem gente malagradecida que nunca volta. Pra tirar um 10 seria bom dizer melhor como resolveu efetivamente. Tenho dúvidas se só com as figuras alguém conseguiria analisar pra resolver problema semelhante. É o caso de (1.jpg>1k.txt)-1. (nem tente entender)

Este é o "preço" que foruns cobram. Alguém num futuro pode usar sua experiência pra resolver o próprio problema.

abç

Link para o comentário
Compartilhar em outros sites

Ola a todos

Como eu prometi aqui o vídeo e atualização  do programa e esquema

'****************************************************************
'*  Name    : UNTITLED.BAS                                      *
'*  Author  : [Cesar Morisco                                    *
'*  Notice  : Copyright (c) 2016 [Centraltek]                   *
'*          : All Rights Reserved                               *
'*  Date    : 22/08/2016                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
 @ DEVICE pic16F628A
 @ DEVICE pic16F628A, WDT_OFF
 @ DEVICE pic16F628A, PWRT_OFF
 @ DEVICE pic16F628A, BOD_OFF
 @ DEVICE pic16F628A, PROTECT_OFF
 @ DEVICE pic16F628A, MCLR_OFF
 @ DEVICE pic16F628A, HS_OSC 
 DEFINE OSC 12

TRISB=%00000001:PORTB=%00000000
TRISA=%11111111:PORTA=%00000000
CMCON=7

OPTION_REG = %1000000  

DEFINE LCD_DREG PORTB  
DEFINE LCD_DBIT  4 
DEFINE LCD_RSREG PORTB 
DEFINE LCD_RSBIT 2 
DEFINE LCD_EREG PORTB 
DEFINE LCD_EBIT  3  
DEFINE LCD_LINES 2       
DEFINE LCD_COMMANDUS 2000	
DEFINE LCD_DATAUS 50 

TRIAC   VAR PORTB.1   
TLA     VAR WORD      
T1      VAR WORD

A       VAR BYTE      
C       VAR BYTE
B       VAR BYTE

     for A=0 to 45    
     pause 150       
     lcdout $fe,1 
     for C=0 to 15  
     lookup C,["BY CESAR MORISCO"],B
     lcdout $fe,143+C-A,B 
     next C 
     C=0 
     next A 
     A=0 
    
 
    ON INTERRUPT GOTO ZERO_CROSS 
    INTCON = %10010000           'habilitar  interrupção PORTA B0
    OPTION_REG.6=0
 
    TLA=4200                     
    T1=ABS(TLA/42)'100             
    LOW TRIAC
     
INICIO:
    IF PORTA.2 = 0 THEN  gosub BAIXAR
    IF PORTA.3 = 0 THEN  GOSUB SUBIR
    GOTO INICIO
BAIXAR:
    IF TLA<=538 THEN GOSUB LIMITE1
    TLA=TLA-1
    T1=ABS(TLA/42)'12
    RETURN
SUBIR:
    IF TLA>=4200 THEN GOSUB LIMITE2
    TLA=TLA+1
    T1=ABS(TLA/42)'100
    RETURN

    LIMITE1: TLA=538:RETURN 
    LIMITE2: TLA=4200:RETURN

   DISABLE
ZERO_CROSS:         
    PAUSEUS 150      
    PAUSEUS TLA      'RETARDO ANTES DEO DISPARO
    HIGH TRIAC       'DISPARO DO TRIAC
    PAUSEUS 100      'PAUSE DE 100 MILE
    LOW TRIAC 
    
    INTCON = %10010000
    RESUME
    ENABLE
    END

 

Link para o comentário
Compartilhar em outros sites

Em 05/09/2016 às 22:07, Morisco disse:

Ola a todos

Como eu prometi aqui o vídeo e atualização  do programa e esquema

Aqui o video


'****************************************************************
'*  Name    : UNTITLED.BAS                                      *
'*  Author  : [Cesar Morisco                                    *
'*  Notice  : Copyright (c) 2016 [Centraltek]                   *
'*          : All Rights Reserved                               *
'*  Date    : 22/08/2016                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
 @ DEVICE pic16F628A
 @ DEVICE pic16F628A, WDT_OFF
 @ DEVICE pic16F628A, PWRT_OFF
 @ DEVICE pic16F628A, BOD_OFF
 @ DEVICE pic16F628A, PROTECT_OFF
 @ DEVICE pic16F628A, MCLR_OFF
 @ DEVICE pic16F628A, HS_OSC 
 DEFINE OSC 12

TRISB=%00000001:PORTB=%00000000
TRISA=%11111111:PORTA=%00000000
CMCON=7

OPTION_REG = %1000000  

DEFINE LCD_DREG PORTB  
DEFINE LCD_DBIT  4 
DEFINE LCD_RSREG PORTB 
DEFINE LCD_RSBIT 2 
DEFINE LCD_EREG PORTB 
DEFINE LCD_EBIT  3  
DEFINE LCD_LINES 2       
DEFINE LCD_COMMANDUS 2000	
DEFINE LCD_DATAUS 50 

TRIAC   VAR PORTB.1   
TLA     VAR WORD      
T1      VAR WORD

A       VAR BYTE      
C       VAR BYTE
B       VAR BYTE

     for A=0 to 45    
     pause 150       
     lcdout $fe,1 
     for C=0 to 15  
     lookup C,["BY CESAR MORISCO"],B
     lcdout $fe,143+C-A,B 
     next C 
     C=0 
     next A 
     A=0 
    
 
    ON INTERRUPT GOTO ZERO_CROSS 
    INTCON = %10010000           'habilitar  interrupção PORTA B0
    OPTION_REG.6=0
 
    TLA=4200                     
    T1=ABS(TLA/42)'100             
    LOW TRIAC
     
INICIO:
    IF PORTA.2 = 0 THEN  gosub BAIXAR
    IF PORTA.3 = 0 THEN  GOSUB SUBIR
    GOTO INICIO
BAIXAR:
    IF TLA<=538 THEN GOSUB LIMITE1
    TLA=TLA-1
    T1=ABS(TLA/42)'12
    RETURN
SUBIR:
    IF TLA>=4200 THEN GOSUB LIMITE2
    TLA=TLA+1
    T1=ABS(TLA/42)'100
    RETURN

    LIMITE1: TLA=538:RETURN 
    LIMITE2: TLA=4200:RETURN

   DISABLE
ZERO_CROSS:         
    PAUSEUS 150      
    PAUSEUS TLA      'RETARDO ANTES DEO DISPARO
    HIGH TRIAC       'DISPARO DO TRIAC
    PAUSEUS 100      'PAUSE DE 100 MILE
    LOW TRIAC 
    
    INTCON = %10010000
    RESUME
    ENABLE
    END

 

 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber 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...