// IFMA - SISTEMAS EMBARCADOS
// HUGO FELIPE DOS SANTOS ROCHA
// UNIT04 - Cap. 05 a 08 - ATIVIDADE: TAREFA DE ENVIO - Clock e temporizador
/*TAREFA 1:
Reutilize o circuito no Wokwi criado na sala de aula e escreva o código.
*/
#include <stdio.h>
#include "pico/stdlib.h"
// Definição dos pinos GPIO para LEDs e botões
#define LED_PIN_VD 13 // Verde
#define LED_PIN_VM 12 // Vermelho
#define LED_PIN_AZ 11 // Azul
#define BUTTON_PIN_A 5
#define BUTTON_PIN_B 6
int main() {
stdio_init_all(); // Inicializa a saída padrão
gpio_init(LED_PIN_VM);
gpio_set_dir(LED_PIN_VM, GPIO_OUT);
gpio_init(LED_PIN_VD);
gpio_set_dir(LED_PIN_VD, GPIO_OUT);
gpio_init(LED_PIN_AZ);
gpio_set_dir(LED_PIN_AZ, GPIO_OUT);
// Inicializa botões como entrada com pull-down
gpio_init(BUTTON_PIN_A);
gpio_set_dir(BUTTON_PIN_A, GPIO_IN);
gpio_pull_down(BUTTON_PIN_A);
gpio_init(BUTTON_PIN_B);
gpio_set_dir(BUTTON_PIN_B, GPIO_IN);
gpio_pull_down(BUTTON_PIN_B);
while (true) {
// Verifica estado do botão A
if (gpio_get(BUTTON_PIN_A)) {
gpio_put(LED_PIN_AZ, 1); // Liga azul
gpio_put(LED_PIN_VM, 0); // Desliga vermelho
gpio_put(LED_PIN_VD, 0); // Desliga verde
sleep_ms(100);
}
// Verifica estado do botão B
else if (gpio_get(BUTTON_PIN_B)) {
gpio_put(LED_PIN_AZ, 0); // Desliga azul
gpio_put(LED_PIN_VM, 1); // Liga vermelho
gpio_put(LED_PIN_VD, 0); // Desliga verde
sleep_ms(100);
}
// Caso nenhum botão seja pressionado
else {
gpio_put(LED_PIN_AZ, 0);
gpio_put(LED_PIN_VM, 0);
gpio_put(LED_PIN_VD, 1); // Liga verde por padrão
}
}
}
Botão A
Botão B