Ir ao conteúdo
  • Cadastre-se

Dimer microcontrolado e configuração de botões + e -


Posts recomendados

Bom dia grandes mestres do fórum.

Bom sou iniciante na arte de microcontroladores, assistindo algumas videos aulas me interessei por um projeto, ele é um DIMER microcontrolado porém sua variação se dá através de um potenciômetro e o desafio foi de implementar botões de mais e menos, olha tentei fazer de várias formas mas não obtive exito no desbravamento do código fonte e por isso peço a ajuda dos mestres.  

Segue código e esquema montado no Proteus para simulação,esse esquema é bem simples tendo em vista a visualização e simulação onde não é necessário o esquema completo.

Diante mão agradeço a atenção de todos !!!!!!!!!!!!

 

 

#define B1 RB1_bit
#define B2 RB2_bit
#define triac_control RB4_bit


int dimmer = 150;

unsigned short time_L = 0x00,
               time_H = 0x00;

unsigned       time  = 0x00;


void interrupt()
{


    if(INTF_bit)
    {  

       INTF_bit = 0x00;
       TMR1ON_bit = 0x01;
   

    }

    if(TMR1IF_bit)
    {
       TMR1IF_bit = 0x00;

       TMR1H         = time_H;
       TMR1L         = time_L;

       triac_control = 0x01;
       delay_us(200);
       triac_control = 0x00;
       TMR1ON_bit    = 0x00;

    }
}


void main()
{

   CMCON         = 0x07;
   TRISB         = 0xEF;
   PORTB         = 0xEF;
   OPTION_REG    = 0x40;
   INTCON        = 0xD0;
   TMR1IE_bit    = 0x01;
   T1CON         = 0x00;
   TMR1H         = 0xDF;
   TMR1L         = 0x73;
   triac_control = 0x00;

   while(1)
      {
      
       if (!B1)
         {
           delay_ms(40);
           dimmer ++ ;
         }
         
       else if (!B2)
         {
           delay_ms(40);
           dimmer --;
         }      
        
      time = time*4;
      time = 65536 - time;
      time_H = (time>>8) - 1;
      time_L = time - (time_H<<8);
      }

   }

 

 

 

O que vocês acham, estou no caminho ?

 

circuito teste photo.jpg

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

100% original, minimalismo ao extremo...

 

//programa dimmer com pic10f200
//16/04/08
//V0.0 - simulação no MPLAB OK
//V0.1 - simulação no Proteus
 
#include <pic.h>
 
#define sobe GP0
#define desce GP1
#define triac GP2
#define zeroc GP3
 
#define ligado 1
#define desligado 0
 
__CONFIG(PROTECT & WDTDIS & MCLRDIS);
 
void delay(unsigned char dl)
{
while(dl--); //alguns uSegs
}
 
//******************************************************
 
void main (void)
{
unsigned char a=120; //valor de teste ~ metade da potência
OPTION=0b00000100; ///pullup, prescaler timer0=1:32
TRIS=0b1011; //só GP2=saída=dispara triac
GPIO=0xff;
 
for (;;)
{
while(!zeroc); //aguarda passagem por zero
 
TMR0=a-20; //de neg. p pos. alguns triacs disparam antes (ou depois!)
while(TMR0);//aguarda por alguns mSeg
 
triac=ligado; //pulso...
delay(30);  
triac=desligado; //...no gate
 
while(zeroc); //aguarda passagem por zero
    
TMR0=a;
while(TMR0); //aguarda por alguns mSeg
 
triac=ligado;
delay(30);
triac=desligado;
 
if (!sobe) a++; //ângulo de disparo
if (!desce) a--;
 
if (a<25) a=25; //limite mínimo
if (a>240) a=240; //máximo
    
}
 
}

dimmer10_F.png

... mas funcionou com sucesso. .. na simulação...

enjoy...

Link para o comentário
Compartilhar em outros sites

Ok! No caso estou usando o mikro C e me parece que tem uma biblioteca diferente dessa, acho até que esse é uma biblioteca do arduino, pelo que vejo existe uma rotina para poder chamar o incremento e decremento, más como posso ajustar esse exemplo para o código que postei ?

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Aquilo é hitech - c. Quase um C puro exceto pelo #include que define os nomes dos registros. Depois de compreendê-los só um pouco, fica fácil d+ portar pro mikroc. Aliás perceba similaridades nas descrições

 

 

43 minutos atrás, Morfeu Morfeu disse:

como posso ajustar esse exemplo para o código que postei ?

Colabora um pouco aí mano. Conto com você pra isso. Por gentileza, dê uma olhadela no datasheet do seu mc. Simples d+, os pic's são a quase a lesmíssima lerda. Não nos decepcione. Mesmo assim se precisar, publique as dúvidas. Tamos aqui pra isso... gerar mais dúvidas kk

 

E .. de nada...

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...