Ir ao conteúdo
  • Cadastre-se
Guilherme De Lima

Arduino Um único PushBotton para controlar um RGB

Posts recomendados

Sei que pode ser algo bem bobo, mas sou iniciante em Arduíno.

Queria uma ajuda para fazer um código que um único botão controlasse um Led RGB exemplo:

1º click, acende a cor vermelha

2º click, acende o azul

.

.

.

4º click, acende vermelho e azul formando roxo

ai depois de uma certo nº de clicks o contador volta pra 0 para recomeçar

eu já tentei declarar uma variável com valor 0 e a cada click ir somando 1 a ela. porém algo da errado e já na segunda cor não funciona, 🙄 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Guilherme De Lima ,

 

Bem-vindo ao Fórum.

 

Não posso te ajudar no código, mas posso te ajudar em alguns conceitos....

 

É muito importante que você trate da maneira correta o botão, pois existem ruídos quando ele começa a fechar o contato, e esses ruídos chamam-se bounces ; isso faz com que o botão simule centenas e até milhares de fechamentos. Para evitar isto, usa-se uma técnica chamada Debounce , que nada mais é do que garantir que o botão tenha apenas um único acionamento em um tempo predeterminado, geralmente de 20 ou 30 milisegundos.

 

A ideia é justamente ir incrementando essa variável e conforme o valor dela ir acionando as saídas RGB. Pode ter um total de 8 combinações, indo de totalmente apagado até totalmente aceso na cor branca.

 

Poste o seu programa para que possa ser ajudado ok ?

 

Paulo

Compartilhar este post


Link para o post
Compartilhar em outros sites
14 horas atrás, aphawk disse:

Não posso te ajudar no código

tmj

 

Em 11/05/2019 às 22:34, Guilherme De Lima disse:

tentei declarar uma variável com valor 0 e a cada click ir somando 1 a ela. porém algo da errado e já na segunda cor não funciona

ok..está no caminho certo. Esta variável pode ser uma indexadora pra uma tabela onde nesta você define 'manualmente' o que que acionar

p.ex.

unsigned char const tabela[]={0b00000001,0b00000101,0b01010101,0b10101010}
unsigned char i=0;
for(;;)
{
PORTB=tabela[i];
while(botao);//use aqui as dicas do Paulão @aphawk
i++;
}

E receba um tradicional cóqui virtual preventivo pro caso de achar que ctrl-c ctrl-v vai resolver sua vida

 

14 horas atrás, aphawk disse:

Poste o seu programa

... e esquema

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

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

×
×
  • Criar novo...

GRÁTIS: minicurso “Como ganhar dinheiro montando computadores”

Gabriel TorresGabriel Torres, fundador e editor executivo do Clube do Hardware, acaba de lançar um minicurso totalmente gratuito: "Como ganhar dinheiro montando computadores".

Você aprenderá sobre o quanto pode ganhar, como cobrar, como lidar com a concorrência, como se tornar um profissional altamente qualificado e muito mais!

Inscreva-se agora!