#include <LiquidCrystal_I2C.h>
#include <Wire.h>
LiquidCrystal_I2C LCD = LiquidCrystal_I2C(0x27, 16, 2);
#define LED_RED_PIN 27
#define LED_GREEN_PIN 26
#define LED_BLUE_PIN 25
#define BTN1 32
#define BTN2 33
#define BTN3 34
#define BTN4 35
void red() {
analogWrite(LED_RED_PIN, 255);
analogWrite(LED_GREEN_PIN, 0);
analogWrite(LED_BLUE_PIN, 0);
Serial.println("red");
}
void green() {
analogWrite(LED_RED_PIN, 0);
analogWrite(LED_GREEN_PIN, 255);
analogWrite(LED_BLUE_PIN, 0);
Serial.println("green");
}
void blue() {
analogWrite(LED_RED_PIN, 0);
analogWrite(LED_GREEN_PIN, 0);
analogWrite(LED_BLUE_PIN, 255);
Serial.println("blue");
}
void yellow() {
analogWrite(LED_RED_PIN, 255);
analogWrite(LED_GREEN_PIN,255);
analogWrite(LED_BLUE_PIN,0 );
Serial.println("yellow");
}
void apagaTudo() {
analogWrite(LED_RED_PIN, 0);
analogWrite(LED_GREEN_PIN,0);
analogWrite(LED_BLUE_PIN,0);
Serial.println("tudo apagado");
}
void lcd_apagarLinha(uint8_t linha) {
// Define a posição do cursor na linha especificada
LCD.setCursor(0, linha);
LCD.print(" ");
}
void setup() {
Wire.begin(22, 23);
LCD.init();
LCD.backlight();
LCD.setCursor(0, 0);
LCD.init();
LCD.backlight();
LCD.print("G.Led RGB Fimac");
pinMode(LED_RED_PIN, OUTPUT);
pinMode(LED_GREEN_PIN, OUTPUT);
pinMode(LED_BLUE_PIN, OUTPUT);
pinMode(BTN1, INPUT);
pinMode(BTN2, INPUT);
pinMode(BTN3, INPUT);
pinMode(BTN4, INPUT);
}
void loop() {
if (digitalRead(BTN1) == HIGH) {
red();
lcd_apagarLinha(1);
LCD.setCursor(4,1);
LCD.print("Red");
}
if (digitalRead(BTN2) == HIGH){
green();
lcd_apagarLinha(1);
LCD.setCursor(4,1);
LCD.print("green");
}
if (digitalRead(BTN3) == HIGH){
blue();
lcd_apagarLinha(1);
LCD.setCursor(4,1);
LCD.print("Blue");
}
if (digitalRead(BTN4) == HIGH){
yellow();
lcd_apagarLinha(1);
LCD.setCursor(4,1);
LCD.print("yellow");
}
}