#include <stdio.h>
#include "pico/stdlib.h"
#include <string.h>
#include "hardware/uart.h"
#include "hardware/gpio.h"
#define led_verde 11
#define led_azul 12
#define led_vermelho 13
#define buzzer 21
void tocar_buzzer()
{
int tempo = 2;
while (tempo > 0)
{
gpio_put(buzzer, true); // Liga o buzzer
sleep_ms(0.5); // Mantém ligado por 0,5ms
tempo--;
gpio_put(buzzer, false); // Desliga o buzzer
sleep_ms(1); // Aguarda 1ms antes de repetir
tempo -= 3;
}
}
int main()
{
stdio_init_all();
// Inicializar pinos dos LEDs como saída
gpio_init(led_verde);
gpio_set_dir(led_verde, GPIO_OUT);
gpio_put(led_verde, false);
gpio_init(led_azul);
gpio_set_dir(led_azul, GPIO_OUT);
gpio_put(led_verde, false);
gpio_init(led_vermelho);
gpio_set_dir(led_vermelho, GPIO_OUT);
gpio_put(led_verde, false);
printf("Digite uma das opções (verde, azul, vermelho, branco, buzzer ou off):\n");
while (true)
{
char opcao[10]; // Vetor para armazenar os caracteres, 1 string é nula em C, portanto cabe 9 letras
scanf("%9s", opcao);
if (strcmp(opcao, "verde") == 0)
{
gpio_put(led_azul, false);
gpio_put(led_verde, true);
gpio_put(led_vermelho, false);
}
else if (strcmp(opcao, "azul") == 0) //
{
gpio_put(led_azul, true);
gpio_put(led_verde, false);
gpio_put(led_vermelho, false);
}
else if (strcmp(opcao, "vermelho") == 0)
{
gpio_put(led_azul, false);
gpio_put(led_verde, false);
gpio_put(led_vermelho, true);
}
else if (strcmp(opcao, "branco") == 0)
{
gpio_put(led_azul, true);
gpio_put(led_vermelho, true);
gpio_put(led_verde, true);
}
else if (strcmp(opcao, "buzzer") == 0)
{
tocar_buzzer();
}
else if (strcmp(opcao, "off") == 0)
{
gpio_put(led_vermelho, false);
gpio_put(led_verde, false);
gpio_put(led_azul, false);
gpio_put(buzzer, false);
}
else
{
printf("NÃO PODE");
}
}
}