@thiagosilva.ste e @aphawk
Agradeço pela ajuda, mas está resolvido o problema.
A quem interessar, o código ficou assim...
const int red=8; // LED VERMELHO PINO 8
const int green=10; // LED VERDE PINO 10
const int blue=12; // LED AZUL PINO 12
const int botao=2; // BOTÃO PINO 2
int estadoantbotao = 0; // VARIÁVEL CONTENDO ESTADO ANTERIOR DO BOTÃO
int estadoatualbotao = 0; // VARIÁVEL CONTENDO ESTADO ANTUAL DO BOTÃO
int count=0; // VARIÁVEL RESPONSÁVEL PELA CPNTAGEM DE APERTOS DO BOTÃO
void setup() {
pinMode (red,OUTPUT); // LED DEFINIDO COMO SAÍDA
pinMode (green,OUTPUT); // LED DEFINIDO COMO SAÍDA
pinMode (blue,OUTPUT); // LED DEFINIDO COMO SAÍDA
pinMode (botao,INPUT); // BOTAO DEFINIDO COMO ENTRADA
}
// FUNÇÃO DEBOUNCE, TRATADA COMO INTEIRO POIS DEVE RETORNAR "0" OU "1"
int debounce (int anterior)
{
int atual = digitalRead (botao);
if (anterior != atual)
{
delay(5);
atual = digitalRead(botao);
}
return atual;
}
void loop() {
estadoatualbotao = debounce(estadoantbotao); // LE O ESTADO DEPOIS DO DEBOUNCE
if (estadoatualbotao != estadoantbotao){ // LE O BOTÃO APERTADO
if (count==8){ // ZERA O CONTADOR QUANDO CHEGA A 8
count=0;
}
if (estadoatualbotao==0) // RESOLVE PROBLEMA REFERENTE A CONTAGEM DUPLA QUANDO O BOTÃO ESTÁ APERTADO
{
count--;
}
{
count++; //AUMENTA CONTAGEM
estadoantbotao = estadoatualbotao; // REDEFINE VALOR DO BOTÃO
}
if (count==1){ // ACENDE LED VERMELHO
analogWrite (red, 255);
analogWrite (green, 0);
analogWrite (blue, 0);
}
if (count==2){ // ACENDE LED VERDE
analogWrite (red, 0);
analogWrite (green, 255);
analogWrite (blue, 0);
}
if (count==3){ // ACENDE LED AZUL
analogWrite (red, 0);
analogWrite (green, 0);
analogWrite (blue, 255);
}
if (count==0){ // DESLIGA TODOS OS LEDS
analogWrite (red, 0);
analogWrite (green, 0);
analogWrite (blue, 0);
}
if (count==4){ // ACENDE LED ROXO
analogWrite (red, 127);
analogWrite (green, 0);
analogWrite (blue, 127);
}
if (count==5){ // ACENDE LED VERDE AZULADO
analogWrite (red, 112);
analogWrite (green, 219);
analogWrite (blue, 219);
}
if (count==6){ // ACENDE LED LARANJA
analogWrite (red, 255);
analogWrite (green, 50);
analogWrite (blue, 0);
}
if (count==7){ // ACENDE LED BRANCO
analogWrite (red, 255);
analogWrite (green, 255);
analogWrite (blue, 255);
}
}
}