#include "pico/stdlib.h"
#define LED_R_PIN 12
#define LED_G_PIN 13
#define LED_B_PIN 11
#define BTN_A_PIN 5
#define BTN_B_PIN 6
#define BTN_C_PIN 7
#define BTN_D_PIN 9
#define LED_OFF 8
void set_leds(bool blue, bool green, bool red){
gpio_put(LED_R_PIN, red);
gpio_put(LED_G_PIN, green);
gpio_put(LED_B_PIN, blue);
}
void init_pin(){
gpio_init(LED_R_PIN);
gpio_set_dir(LED_R_PIN, GPIO_OUT);
gpio_init(LED_G_PIN);
gpio_set_dir(LED_G_PIN, GPIO_OUT);
gpio_init(LED_B_PIN);
gpio_set_dir(LED_B_PIN, GPIO_OUT);
gpio_init(BTN_A_PIN);
gpio_set_dir(BTN_A_PIN, GPIO_IN);
gpio_pull_down(BTN_A_PIN);
gpio_init(BTN_B_PIN);
gpio_set_dir(BTN_B_PIN, GPIO_IN);
gpio_pull_down(BTN_B_PIN);
gpio_init(BTN_C_PIN);
gpio_set_dir(BTN_C_PIN, GPIO_IN);
gpio_pull_down(BTN_C_PIN);
gpio_init(BTN_D_PIN);
gpio_set_dir(BTN_D_PIN, GPIO_IN);
gpio_pull_down(BTN_D_PIN);
gpio_init(LED_OFF);
gpio_set_dir(LED_OFF, GPIO_IN);
gpio_pull_down(LED_OFF);
}
int main(){
uint CONT=0;
init_pin();
while(true){
if(gpio_get(BTN_A_PIN)){
set_leds(0,1,0);//todos leds acesos
}else if (gpio_get(BTN_B_PIN)){
set_leds(1,0,0);//led verde aceso
}else if (gpio_get(BTN_C_PIN)){
set_leds(1,1,1);//led azul aceso
}
if (gpio_get(LED_OFF)){
set_leds(0,0,0);
sleep_ms(100);
}
if(gpio_get(BTN_D_PIN)){
switch(CONT){
case 0:
set_leds(0,0,0);
CONT++;
sleep_ms(300);
break;
case 1:
set_leds(0,0,1);
CONT++;
sleep_ms(300);
break;
case 2:
set_leds(0,1,0);
CONT++;
sleep_ms(300);
break;
case 3:
set_leds(0,1,1);
CONT++;
sleep_ms(300);
break;
case 4:
set_leds(1,0,0);
CONT++;
sleep_ms(300);
break;
case 5:
set_leds(1,0,1);
CONT++;
sleep_ms(300);
break;
case 6:
set_leds(1,1,0);
CONT++;
sleep_ms(300);
break;
case 7:
set_leds(1,1,1);
CONT=0;
sleep_ms(300);
break;
default:
}
}
sleep_ms(100);
}
return 0;
}