#include <stdio.h>
#include "pico/stdlib.h"
#define seg_a 10
#define seg_b 11
#define seg_c 13
#define seg_d 14
#define seg_e 15
#define seg_f 9
#define seg_g 8
#define ch 17
uint8_t display[7] = { seg_a, seg_b, seg_c, seg_d, seg_e, seg_f, seg_g };
bool display_valor[10][7] = {
{1,1,1,1,1,1,0},
{0,1,1,0,0,0,0},
{1,1,0,1,1,0,1},
{1,1,1,1,0,0,1},
{0,1,1,0,0,1,1},
{1,0,1,1,0,1,1},
{1,0,1,1,1,1,1},
{1,1,1,0,0,0,0},
{1,1,1,1,1,1,1},
{1,1,1,1,0,1,1}
};
int main() {
stdio_init_all();
gpio_init(ch);
gpio_set_dir(ch, GPIO_IN);
gpio_pull_up(ch);
bool valor_ch;
for (int i = 0; i < 7; i++) {
gpio_init(display[i]);
gpio_set_dir(display[i], GPIO_OUT);
}
while (true) {
valor_ch = gpio_get(ch); //comeca no 0
if (valor_ch) { // CRESCENTE (0 → 9)
for (int contador = 0; contador < 10; contador++) { // numero = quantidade d matrizes
for (int i = 0; i < 7; i++) {
gpio_put(display[i], display_valor[contador][i]);
}
sleep_ms(1000);
}
}
if (!valor_ch) { // DECRESCENTE (9 → 0)
for (int contador = 9; contador >= 0; contador--) { //numero = quantidade de matrizes - 1
for (int i = 0; i < 7; i++) {
gpio_put(display[i], display_valor[contador][i]);
}
sleep_ms(1000);
}
}
}
}