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

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Luiz Henrique Moneche de A

Arduino Controle de cor de LED RGB via entrada PWM de arduino

Recommended Posts

Olá a todos... estou com o seguinte problema

 

Utilizando um LED RGB, faça um projeto em que o LED deve alternar para as
seguintes cores de acordo com a sequência em que um botão é pressionado:
1. Inicialmente o LED se encontra desligado
2. Ao pressionar o botão 1 vez, o LED deve ficar vermelho
3. Ao pressionar o botão pela segunda vez, o LED deve ficar verde
4. Ao pressionar o botão pela terceira vez, o LED deve ficar azul
5. Ao pressionar o botão pela quarta vez, o LED deve ficar roxo (vermelho + azul)
6. Ao pressionar o botão pela quinta vez, o LED deve ficar verde azulado (azul +
verde)
7. Ao pressionar o botão pela sexta vez, o LED deve ficar laranja (verde +
vermelho)
8. Ao pressionar o botão pela sétima vez, o LED deve ficar branco (verde + azul + vermelho)
9. Ao pressionar o botão pela oitava vez, o LED deve apagar.

 

Tentei fazer de várias formas, porém, não consegui, sempre da algum erro, o mais perto que consegui chegar foi com esse código... (tenho que usar o debouce como filtro)... Já não sei o que fazer... agradeço a todos pela ajuda... a ligação elétrica e igual ao do arquivo anexo, só que com um led RGB...

const int red=8;
const int green=10;
const int blue=12;

const int botao=2;

boolean estadoantbotao = LOW;
boolean estadoatualbotao = LOW;


int count=0;

void setup() {
  pinMode (red,OUTPUT);
  pinMode (green,OUTPUT);
  pinMode (blue,OUTPUT);
  pinMode (botao,INPUT);
}
                      boolean debounce (boolean anterior)
                       {
                          boolean atual = digitalRead (botao);
                               if (anterior != atual)
                                 {
                                    delay(5);
                                    atual = digitalRead(botao);
                                 }
                                    return atual;
                        }

void loop() {
  estadoatualbotao = debounce(estadoantbotao);
  
  count=(count==4) ? 0 : count+1;

  
  if (estadoantbotao == LOW && estadoatualbotao == HIGH && count==1){
      
      analogWrite (red, 255);
      analogWrite (green, 0);
      analogWrite (blue, 0);
      }
     
    if (estadoantbotao == LOW && estadoatualbotao == HIGH && count==2){
    
    analogWrite (red, 0);
    analogWrite (green, 255);
    analogWrite (blue, 0);
    
    
    
    } 
    
    if (estadoantbotao == LOW && estadoatualbotao == HIGH && count==3){
    
    analogWrite (red, 0);
    analogWrite (green, 0);
    analogWrite (blue, 255);
    
    }

    
    
    if (estadoantbotao == LOW && estadoatualbotao == HIGH && count==0){
   
    analogWrite (red, 0);
    analogWrite (green, 0);
    analogWrite (blue, 0);
    
    }

     estadoantbotao = estadoatualbotao;

    }
       

 

esquema.png

Editado por DiF

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

×