// Definir os componentes a serem utilizados
//Buzzer passivo porta PWM
int buzzer = 9;
//LED RGB Portas analógicas
int led_vr = A2; // LED vermelho
int led_ve = A1; // LED verde
int led_az = A0; // LED azul
//Não se faz conexão, por é acoplado Joystick com Arduino
int pot_y = A3; // Eixo Y do joystick
int pot_x = A4; // Eixo X do joystick
//Defini-se todos os botões do Joystick que irá ser utilizado
int Botao_A = 2;
int Botao_B = 3;
int Botao_C = 4;
int Botao_K = 5;
void setup() {
// Configurar os botões como entradas com pull-up interno (Resistência interna)
pinMode(2, INPUT_PULLUP);
pinMode(3, INPUT_PULLUP);
pinMode(4, INPUT_PULLUP);
pinMode(5, INPUT_PULLUP);
// Configurar os LEDs e o buzzer como saídas
pinMode(led_vr, OUTPUT);
pinMode(led_ve, OUTPUT);
pinMode(led_az, OUTPUT);
pinMode(buzzer, OUTPUT);
}
void loop() {
// Mapeamento dos potenciômetros para controlar a intensidade das cores do LED RGB
analogWrite(led_vr, map(analogRead(pot_x), 0, 1023, 0, 255)); // Vermelho controlado pelo eixo X
analogWrite(led_ve, map(analogRead(pot_y), 0, 1023, 0, 255)); // Verde controlado pelo eixo Y
analogWrite(led_az, map(analogRead(pot_x), 0, 1023, 0, 255)); // Azul controlado pelo eixo X também
// Verifica se o botão A está pressionado e acende o LED vermelho
if (!digitalRead(Botao_A)) {
digitalWrite(led_vr, HIGH);
} else {
digitalWrite(led_vr, LOW);
}
// Verifica se o botão B está pressionado e acende o LED verde
if (!digitalRead(Botao_B)) {
digitalWrite(led_ve, HIGH);
} else {
digitalWrite(led_ve, LOW);
}
// Verifica se o botão C está pressionado e acende o LED azul
if (!digitalRead(Botao_C)) {
digitalWrite(led_az, HIGH);
} else {
digitalWrite(led_az, LOW);
}
// Verifica se o botão K está pressionado e emite som no buzzer
if (!digitalRead(Botao_K)) {
tone(buzzer, 800); // Frequência de 800 Hz
} else {
noTone(buzzer); // Para o som quando o botão não está pressionado
}
// Função para apagar todos os LEDs quando nenhum botão é pressionado
Off_LEDs();
}
void Off_LEDs() {
// Apaga todos os LEDs RGB
digitalWrite(led_vr, LOW);
digitalWrite(led_ve, LOW);
digitalWrite(led_az, LOW);
}