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

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

Recommended Posts

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que já publiquei neste (ou em outro) forum algo como exatamente o que queres...

Fique na página e vá apertando F5... a qualquer momento eu acho e republico...

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok ! Agradeço imensamente a sua ajuda Isadora Ferraz.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Postado (editado)

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

Editado por Isadora Ferraz
ajustes...

Compartilhar este post


Link para o post
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 ?

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

kkkkkkkkkkkkkkkkk beleza vou pesquisar e ver se consigo ajustar o código.!

valeu

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






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

×