Botão e LED RGB

Este exemplo apresenta como usar o botão e LED RGB.

Vídeo explicativo

Dependência

-> Adafruit_NeoPixel

A biblioteca pode ser baixada dentro da própria Arduino IDE, através do gerenciador de bibliotecas.

Exemplo

/*
Autor: João Vitor Alvares
Versão: 1.0
Objetivo: Botão e LED RGB placa MIJ (Módulo IoT JVTECH)
*/

// Para ESP32
#include <Arduino.h> // Biblioteca nativa do ESP32
// Para o LED RGB
#include <Adafruit_NeoPixel.h>  // Biblioteca Adafruit_NeoPixel-master.zip na pasta ou versão: 1.9.0 por Adafruit

// Constantes
#define NUMPIXELS   1
#define RED   pixels.Color(255, 0, 0) // Vermelho
#define GREEN   pixels.Color(0, 255, 0) // Verde
#define BLUE   pixels.Color(0, 0, 255) // Azul
#define WHITE   pixels.Color(255, 255, 255) // Branco
#define OFF_COLORS   pixels.Color(0, 0, 0) // Desligado
#define MAXCOLORS   5

// Objeto LED RGB
Adafruit_NeoPixel pixels(NUMPIXELS, 2, NEO_GRB + NEO_KHZ800);

// Variaveis globais LED RGB
uint32_t cores[MAXCOLORS] = {RED, GREEN, BLUE, WHITE, OFF_COLORS};
bool flagBotao = false;
uint8_t contador = 0;

void setup(){
  
  // Iniciar serial
  Serial.begin(115200);
  
  // Iniciar botão
  pinMode(25,   INPUT);
  
  // Iniciar o LED RGB
  pixels.begin(); 
  
} 

void loop(){
  
  if(!digitalRead(25))  flagBotao = true;
  if(digitalRead(25) && flagBotao){
    
    flagBotao = false;
    contador++;
    if(contador > 5)  contador = 1;
    delay(555);
    
  }
  
  if(contador == 1){ // Vermelho
    
    pixels.clear();
    pixels.setPixelColor(0,cores[0]);
    pixels.show();
    
  }
  
  if(contador == 2){ // Verde
    
    pixels.clear();
    pixels.setPixelColor(0,cores[1]);
    pixels.show();
    
  }

  if(contador == 3){ // Azul
    
    pixels.clear();
    pixels.setPixelColor(0,cores[2]);
    pixels.show();
    
  }

  if(contador == 4){ // Branco
    
    pixels.clear();
    pixels.setPixelColor(0,cores[3]);
    pixels.show();
    
  }

  if(contador == 5){ // Desligado
    
    pixels.clear();
    pixels.setPixelColor(0,cores[4]);
    pixels.show();
    
  } 
  
}

Last updated