/*
* Unidades 5 a 8
* Tarefa 1:
* Reutilize o circuito no Wokwi criado na sala de aula e
* escreva o código. Abaixo está o lembrete das GPIOs do
* kit bitDogLab.
*
* Aluno: ALESSANDRA KIMIE HIRO
*
* Exemplo 2: Controle de Leds RGB e leiturade dois botões
*/
#include <stdio.h>
#include <pico/stdlib.h>
// Define GPIO pins for the LED RGB (Vm, Az, Vd)
#define LED_PIN_VM 13
#define LED_PIN_AZ 12
#define LED_PIN_VD 11
// Define GPIO pins for the buttons
#define BUTTON_PIN_A 5
#define BUTTON_PIN_B 6
// Initialize the GPIO pins and components
void setup() {
// Initialize LED RGB pins as output
gpio_init(LED_PIN_VM);
gpio_set_dir(LED_PIN_VM, GPIO_OUT);
gpio_init(LED_PIN_AZ);
gpio_set_dir(LED_PIN_AZ, GPIO_OUT);
gpio_init(LED_PIN_VD);
gpio_set_dir(LED_PIN_VD, GPIO_OUT);
// Initialize button pins as input with pull-down resistors
gpio_init(BUTTON_PIN_A);
gpio_set_dir(BUTTON_PIN_A, GPIO_IN);
gpio_pull_down(BUTTON_PIN_A); // Activate pull-down resistor
gpio_init(BUTTON_PIN_B);
gpio_set_dir(BUTTON_PIN_B, GPIO_IN);
gpio_pull_down(BUTTON_PIN_B); // Activate pull-down resistor
}
int main() {
setup();
while (true) {
// Check button A (GPIO5) and control LEDs accordingly
if (gpio_get(BUTTON_PIN_A)) {
// Button A pressed, set LED to blue (Az)
gpio_put(LED_PIN_AZ, 1);
gpio_put(LED_PIN_VM, 0);
gpio_put(LED_PIN_VD, 0);
sleep_ms(100); // Small delay to debounce button
}
// Check button B (GPIO6) and control LEDs accordingly
else if (gpio_get(BUTTON_PIN_B)) {
// Button B pressed, set LED to green (Vm)
gpio_put(LED_PIN_AZ, 0);
gpio_put(LED_PIN_VM, 1);
gpio_put(LED_PIN_VD, 0);
sleep_ms(100); // Small delay to debounce button
}
else {
// No button pressed, turn off all LEDs
gpio_put(LED_PIN_AZ, 0);
gpio_put(LED_PIN_VM, 0);
gpio_put(LED_PIN_VD, 0);
}
}
}