#include <stdio.h>
#include "pico/stdlib.h"
#include "hardware/gpio.h"
//lista de los GPIO de los LEDs y Botones
const uint PINES[]= {0,1,2,3,4,5,6,7,26,12};
//const uint B0 = 2;
//const uint B1 = 12;
#define BOTON_CAMBIO 26
#define BOTON_PAUSA 12
int CONTADOR = 0;
int SECUENCIA_ACTUAL = 0;
void SECUENCIA(){
gpio_put(PINES[0], 0);
gpio_put(PINES[1], 1);
gpio_put(PINES[2], 0);
gpio_put(PINES[3], 1);
gpio_put(PINES[4], 0);
gpio_put(PINES[5], 1);
gpio_put(PINES[6], 0);
gpio_put(PINES[7], 1);
sleep_ms(500);
if (!gpio_get(BOTON_PAUSA) == 1)
{
while (true) {
gpio_put(PINES[0], 0);
gpio_put(PINES[1], 1);
gpio_put(PINES[2], 0);
gpio_put(PINES[3], 1);
gpio_put(PINES[4], 0);
gpio_put(PINES[5], 1);
gpio_put(PINES[6], 0);
gpio_put(PINES[7], 1);
if (!gpio_get(BOTON_PAUSA) == 0 ){
break;
}
}
}
gpio_put(PINES[0], 1);
gpio_put(PINES[1], 0);
gpio_put(PINES[2], 1);
gpio_put(PINES[3], 0);
gpio_put(PINES[4], 1);
gpio_put(PINES[5], 0);
gpio_put(PINES[6], 1);
gpio_put(PINES[7], 0);
sleep_ms(500);
if (!gpio_get(BOTON_PAUSA) == 1) {
while (true) {
gpio_put(PINES[0], 1);
gpio_put(PINES[1], 0);
gpio_put(PINES[2], 1);
gpio_put(PINES[3], 0);
gpio_put(PINES[4], 1);
gpio_put(PINES[5], 0);
gpio_put(PINES[6], 1);
gpio_put(PINES[7], 0);
if (!gpio_get(BOTON_PAUSA) == 0 ){
break;
}
}
}
}
void SECUENCIA1(){
gpio_put(PINES[0], 1);
gpio_put(PINES[1], 0);
gpio_put(PINES[2], 0);
gpio_put(PINES[3], 0);
gpio_put(PINES[4], 0);
gpio_put(PINES[5], 0);
gpio_put(PINES[6], 0);
gpio_put(PINES[7], 0);
sleep_ms(300);
if (!gpio_get(BOTON_PAUSA) == 1) {
while (true) {
gpio_put(PINES[0], 1);
gpio_put(PINES[1], 0);
gpio_put(PINES[2], 0);
gpio_put(PINES[3], 0);
gpio_put(PINES[4], 0);
gpio_put(PINES[5], 0);
gpio_put(PINES[6], 0);
gpio_put(PINES[7], 0);
if (!gpio_get(BOTON_PAUSA) == 0 ){
break;
}
}
}
gpio_put(PINES[0], 0);
gpio_put(PINES[1], 1);
gpio_put(PINES[2], 0);
gpio_put(PINES[3], 0);
gpio_put(PINES[4], 0);
gpio_put(PINES[5], 0);
gpio_put(PINES[6], 0);
gpio_put(PINES[7], 0);
sleep_ms(300);
if (!gpio_get(BOTON_PAUSA) == 1) {
while (true) {
gpio_put(PINES[0], 0);
gpio_put(PINES[1], 1);
gpio_put(PINES[2], 0);
gpio_put(PINES[3], 0);
gpio_put(PINES[4], 0);
gpio_put(PINES[5], 0);
gpio_put(PINES[6], 0);
gpio_put(PINES[7], 0);
if (!gpio_get(BOTON_PAUSA) == 0 ){
break;
}
}
}
gpio_put(PINES[0], 0);
gpio_put(PINES[1], 0);
gpio_put(PINES[2], 1);
gpio_put(PINES[3], 0);
gpio_put(PINES[4], 0);
gpio_put(PINES[5], 0);
gpio_put(PINES[6], 0);
gpio_put(PINES[7], 0);
sleep_ms(300);
if (!gpio_get(BOTON_PAUSA) == 1) {
while (true) {
gpio_put(PINES[0], 0);
gpio_put(PINES[1], 0);
gpio_put(PINES[2], 1);
gpio_put(PINES[3], 0);
gpio_put(PINES[4], 0);
gpio_put(PINES[5], 0);
gpio_put(PINES[6], 0);
gpio_put(PINES[7], 0);
if (!gpio_get(BOTON_PAUSA) == 0 ){
break;
}
}
}
gpio_put(PINES[0], 0);
gpio_put(PINES[1], 0);
gpio_put(PINES[2], 0);
gpio_put(PINES[3], 1);
gpio_put(PINES[4], 0);
gpio_put(PINES[5], 0);
gpio_put(PINES[6], 0);
gpio_put(PINES[7], 0);
sleep_ms(300);
if (!gpio_get(BOTON_PAUSA) == 1) {
while (true) {
gpio_put(PINES[0], 0);
gpio_put(PINES[1], 0);
gpio_put(PINES[2], 0);
gpio_put(PINES[3], 1);
gpio_put(PINES[4], 0);
gpio_put(PINES[5], 0);
gpio_put(PINES[6], 0);
gpio_put(PINES[7], 0);
if (!gpio_get(BOTON_PAUSA) == 0 ){
break;
}
}
}
gpio_put(PINES[0], 0);
gpio_put(PINES[1], 0);
gpio_put(PINES[2], 0);
gpio_put(PINES[3], 0);
gpio_put(PINES[4], 1);
gpio_put(PINES[5], 0);
gpio_put(PINES[6], 0);
gpio_put(PINES[7], 0);
sleep_ms(300);
if (!gpio_get(BOTON_PAUSA) == 1) {
while (true) {
gpio_put(PINES[0], 0);
gpio_put(PINES[1], 0);
gpio_put(PINES[2], 0);
gpio_put(PINES[3], 0);
gpio_put(PINES[4], 1);
gpio_put(PINES[5], 0);
gpio_put(PINES[6], 0);
gpio_put(PINES[7], 0);
if (!gpio_get(BOTON_PAUSA) == 0 ){
break;
}
}
}
gpio_put(PINES[0], 0);
gpio_put(PINES[1], 0);
gpio_put(PINES[2], 0);
gpio_put(PINES[3], 0);
gpio_put(PINES[4], 0);
gpio_put(PINES[5], 1);
gpio_put(PINES[6], 0);
gpio_put(PINES[7], 0);
sleep_ms(300);
if (!gpio_get(BOTON_PAUSA) == 1) {
while (true) {
gpio_put(PINES[0], 0);
gpio_put(PINES[1], 0);
gpio_put(PINES[2], 0);
gpio_put(PINES[3], 0);
gpio_put(PINES[4], 0);
gpio_put(PINES[5], 1);
gpio_put(PINES[6], 0);
gpio_put(PINES[7], 0);
if (!gpio_get(BOTON_PAUSA) == 0 ){
break;
}
}
}
gpio_put(PINES[0], 0);
gpio_put(PINES[1], 0);
gpio_put(PINES[2], 0);
gpio_put(PINES[3], 0);
gpio_put(PINES[4], 0);
gpio_put(PINES[5], 0);
gpio_put(PINES[6], 1);
gpio_put(PINES[7], 0);
sleep_ms(300);
if (!gpio_get(BOTON_PAUSA) == 1) {
while (true) {
gpio_put(PINES[0], 0);
gpio_put(PINES[1], 0);
gpio_put(PINES[2], 0);
gpio_put(PINES[3], 0);
gpio_put(PINES[4], 0);
gpio_put(PINES[5], 0);
gpio_put(PINES[6], 1);
gpio_put(PINES[7], 0);
if (!gpio_get(BOTON_PAUSA) == 0 ){
break;
}
}
}
gpio_put(PINES[0], 0);
gpio_put(PINES[1], 0);
gpio_put(PINES[2], 0);
gpio_put(PINES[3], 0);
gpio_put(PINES[4], 0);
gpio_put(PINES[5], 0);
gpio_put(PINES[6], 0);
gpio_put(PINES[7], 1);
sleep_ms(300);
if (!gpio_get(BOTON_PAUSA) == 1) {
while (true) {
gpio_put(PINES[0], 0);
gpio_put(PINES[1], 0);
gpio_put(PINES[2], 0);
gpio_put(PINES[3], 0);
gpio_put(PINES[4], 0);
gpio_put(PINES[5], 0);
gpio_put(PINES[6], 0);
gpio_put(PINES[7], 1);
if (!gpio_get(BOTON_PAUSA) == 0 ){
break;
}
}
}
}
void SECUENCIA2(){
gpio_put(PINES[0], 1);
gpio_put(PINES[1], 0);
gpio_put(PINES[2], 0);
gpio_put(PINES[3], 0);
gpio_put(PINES[4], 0);
gpio_put(PINES[5], 0);
gpio_put(PINES[6], 0);
gpio_put(PINES[7], 1);
sleep_ms(200);
if (!gpio_get(BOTON_PAUSA) == 01) {
while (true) {
gpio_put(PINES[0], 1);
gpio_put(PINES[1], 0);
gpio_put(PINES[2], 0);
gpio_put(PINES[3], 0);
gpio_put(PINES[4], 0);
gpio_put(PINES[5], 0);
gpio_put(PINES[6], 0);
gpio_put(PINES[7], 1);
if (!gpio_get(BOTON_PAUSA) == 0 ){
break;
}
}
}
gpio_put(PINES[0], 0);
gpio_put(PINES[1], 1);
gpio_put(PINES[2], 0);
gpio_put(PINES[3], 0);
gpio_put(PINES[4], 0);
gpio_put(PINES[5], 0);
gpio_put(PINES[6], 1);
gpio_put(PINES[7], 0);
sleep_ms(200);
if (!gpio_get(BOTON_PAUSA) == 01) {
while (true) {
gpio_put(PINES[0], 0);
gpio_put(PINES[1], 1);
gpio_put(PINES[2], 0);
gpio_put(PINES[3], 0);
gpio_put(PINES[4], 0);
gpio_put(PINES[5], 0);
gpio_put(PINES[6], 1);
gpio_put(PINES[7], 0);
if (!gpio_get(BOTON_PAUSA) == 0 ){
break;
}
}
}
gpio_put(PINES[0], 0);
gpio_put(PINES[1], 0);
gpio_put(PINES[2], 1);
gpio_put(PINES[3], 0);
gpio_put(PINES[4], 0);
gpio_put(PINES[5], 1);
gpio_put(PINES[6], 0);
gpio_put(PINES[7], 0);
sleep_ms(200);
if (!gpio_get(BOTON_PAUSA) == 01) {
while (true) {
gpio_put(PINES[0], 0);
gpio_put(PINES[1], 0);
gpio_put(PINES[2], 1);
gpio_put(PINES[3], 0);
gpio_put(PINES[4], 0);
gpio_put(PINES[5], 1);
gpio_put(PINES[6], 0);
gpio_put(PINES[7], 0);
if (!gpio_get(BOTON_PAUSA) == 0 ){
break;
}
}
}
gpio_put(PINES[0], 0);
gpio_put(PINES[1], 0);
gpio_put(PINES[2], 0);
gpio_put(PINES[3], 1);
gpio_put(PINES[4], 1);
gpio_put(PINES[5], 0);
gpio_put(PINES[6], 0);
gpio_put(PINES[7], 0);
sleep_ms(200);
if (!gpio_get(BOTON_PAUSA) == 01) {
while (true) {
gpio_put(PINES[0], 0);
gpio_put(PINES[1], 0);
gpio_put(PINES[2], 0);
gpio_put(PINES[3], 1);
gpio_put(PINES[4], 1);
gpio_put(PINES[5], 0);
gpio_put(PINES[6], 0);
gpio_put(PINES[7], 0);
if (!gpio_get(BOTON_PAUSA) == 0 ){
break;
}
}
}
gpio_put(PINES[0], 0);
gpio_put(PINES[1], 0);
gpio_put(PINES[2], 0);
gpio_put(PINES[3], 1);
gpio_put(PINES[4], 1);
gpio_put(PINES[5], 0);
gpio_put(PINES[6], 0);
gpio_put(PINES[7], 0);
sleep_ms(200);
if (!gpio_get(BOTON_PAUSA) == 01) {
while (true) {
gpio_put(PINES[0], 0);
gpio_put(PINES[1], 0);
gpio_put(PINES[2], 0);
gpio_put(PINES[3], 1);
gpio_put(PINES[4], 1);
gpio_put(PINES[5], 0);
gpio_put(PINES[6], 0);
gpio_put(PINES[7], 0);
if (!gpio_get(BOTON_PAUSA) == 0){
break;
}
}
}
gpio_put(PINES[0], 0);
gpio_put(PINES[1], 0);
gpio_put(PINES[2], 1);
gpio_put(PINES[3], 0);
gpio_put(PINES[4], 0);
gpio_put(PINES[5], 1);
gpio_put(PINES[6], 0);
gpio_put(PINES[7], 0);
sleep_ms(200);
if (!gpio_get(BOTON_PAUSA) == 01) {
while (true) {
gpio_put(PINES[0], 0);
gpio_put(PINES[1], 0);
gpio_put(PINES[2], 1);
gpio_put(PINES[3], 0);
gpio_put(PINES[4], 0);
gpio_put(PINES[5], 1);
gpio_put(PINES[6], 0);
gpio_put(PINES[7], 0);
if (!gpio_get(BOTON_PAUSA) == 0 ){
break;
}
}
}
gpio_put(PINES[0], 0);
gpio_put(PINES[1], 1);
gpio_put(PINES[2], 0);
gpio_put(PINES[3], 0);
gpio_put(PINES[4], 0);
gpio_put(PINES[5], 0);
gpio_put(PINES[6], 1);
gpio_put(PINES[7], 0);
sleep_ms(200);
if (!gpio_get(BOTON_PAUSA) == 01) {
while (true) {
gpio_put(PINES[0], 0);
gpio_put(PINES[1], 1);
gpio_put(PINES[2], 0);
gpio_put(PINES[3], 0);
gpio_put(PINES[4], 0);
gpio_put(PINES[5], 0);
gpio_put(PINES[6], 1);
gpio_put(PINES[7], 0);
if (!gpio_get(BOTON_PAUSA) == 0 ){
break;
}
}
}
gpio_put(PINES[0], 1);
gpio_put(PINES[1], 0);
gpio_put(PINES[2], 0);
gpio_put(PINES[3], 0);
gpio_put(PINES[4], 0);
gpio_put(PINES[5], 0);
gpio_put(PINES[6], 0);
gpio_put(PINES[7], 1);
sleep_ms(200);
if (!gpio_get(BOTON_PAUSA) == 01) {
while (true) {
gpio_put(PINES[0], 1);
gpio_put(PINES[1], 0);
gpio_put(PINES[2], 0);
gpio_put(PINES[3], 0);
gpio_put(PINES[4], 0);
gpio_put(PINES[5], 0);
gpio_put(PINES[6], 0);
gpio_put(PINES[7], 1);
if (!gpio_get(BOTON_PAUSA) == 0 ){
break;
}
}
}
}
int main() {
stdio_init_all();
//Inicilizar los pines de los LEDs como Salida
for (int i = 0;i < 8;i++){
gpio_init(PINES[i]);
gpio_set_dir(PINES[i],GPIO_OUT);
}
gpio_init(BOTON_CAMBIO);
gpio_set_dir(BOTON_CAMBIO, GPIO_IN);
gpio_pull_up(BOTON_CAMBIO);
gpio_init(BOTON_PAUSA);
gpio_set_dir(BOTON_PAUSA, GPIO_IN);
gpio_pull_up(BOTON_PAUSA);
while (true) {
if (gpio_get(BOTON_CAMBIO) == 0) {
SECUENCIA_ACTUAL = (SECUENCIA_ACTUAL + 1) % 3; // Cambia entre 0, 1 y 2
printf("Cambiando a Secuencia%d\n", SECUENCIA_ACTUAL);
sleep_ms(200);
}
if (SECUENCIA_ACTUAL == 0) {
SECUENCIA();
} else if (SECUENCIA_ACTUAL == 1) {
SECUENCIA1();
} else {
SECUENCIA2();
}
}
}