#include <stdio.h>
#include "pico/stdlib.h"
#include "pico/bootrom.h"
#include "hardware/clocks.h"
#include "hardware/pwm.h"
// Definição dos pinos
#define red 13
#define green 11
#define blue 12
// Função para inicializar os GPIOs
void setup_gpio() {
gpio_init(red);
gpio_init(green);
gpio_init(blue);
gpio_set_dir(red, GPIO_OUT);
gpio_set_dir(green, GPIO_OUT);
gpio_set_dir(blue, GPIO_OUT);
}
//ligar os leds
void ligar(int B, int G, int R){
gpio_put(blue, B);
gpio_put(green,G);
gpio_put(red, R);
}
void alternando() {
int t = 400;
ligar(0,0,0);
sleep_ms(t);
ligar(1,0,0);
sleep_ms(t);
ligar(0,1,0);
sleep_ms(t);
ligar(0,0,1);
sleep_ms(t);
ligar(1,1,0);
sleep_ms(t);
ligar(1,0,1);
sleep_ms(t);
ligar(0,1,1);
sleep_ms(t);
ligar(1,1,1);
sleep_ms(t);
ligar(0,0,0);
}
// Função principal
int main() {
//stdio_init_all();
stdio_uart_init();
setup_gpio();
char command = 'B';
printf("Sistema iniciado. Aguardando comandos via UART...\n");
while (1) {
// Aguarda um comando do usuário
if (scanf("%c", &command) == 1) {
switch (command) {
//delisga tudo
case '0':
printf("desligando todos os leds\n");
ligar(0,0,0);
break;
//cor azul
case '1':
printf("led azul\n");
ligar(1,0,0);
break;
//cor verde
case '2':
printf("verde\n");
ligar(0,1,0);
break;
//cor vermelha
case '3':
printf("vermelho\n");
ligar(0,0,1);
break;
//cor ciano
case '4':
printf("ciano\n");
ligar(1,1,0);
break;
//lilás
case '5':
printf("lilás\n");
ligar(1,0,1);
break;
//amarelo
case '6':
printf("amarelo\n");
ligar(0,1,1);
break;
//branco
case '7':
printf("branco\n");
ligar(1,1,1);
break;
//alternando leds
case '8':
printf("alternando leds\n");
alternando();
//
break;
//nenhum caso:
default:
printf("Comando inválido!\n");
break;
}
}
}
sleep_ms(100);
// }
return 0;
}