#include "pico/stdlib.h"
#include "hardware/i2c.h" // Para comunicação com o display OLED
#include "ssd1306.h"
// Configurar os pinos para o joystick (ajuste conforme sua conexão)
#define JOYSTICK_X 26
#define JOYSTICK_Y 27
#define JOYSTICK_BUTTON 22
// Inicializar o display OLED
ssd1306_t disp;
// Função para desenhar o menu
void draw_menu() {
// ... Código para desenhar o menu no display
// Limpar a tela
ssd1306_clear_display(&disp, 0);
// Definir o tamanho da fonte e o alinhamento
ssd1306_set_font(&disp, ArialMT_Bold_10);
// Desenhar as opções do menu
ssd1306_printf(&disp, 0, 10, "Opção 1");
ssd1306_printf(&disp, 0, 20, "Opção 2");
ssd1306_printf(&disp, 0, 30, "Opção 3");
// Desenhar um cursor ou indicador para a opção selecionada
// ... (implementar a lógica para desenhar o cursor)
// Atualizar a tela
ssd1306_display(&disp);
}
// Função para ler as entradas do joystick
int read_joystick() {
// ... Código para ler as entradas do joystick e retornar a direção
}
int main() {
stdio_init_all();
i2c_init(i2c0, 400000);
sleep_ms(100);
// Inicializar o display OLED
ssd1306_init(&disp, i2c0, 128, 64);
// Variável para controlar a opção selecionada
int selected_option = 0;
while (true) {
int direction = read_joystick();
// Atualizar a opção selecionada de acordo com a direção
// ...
// Desenhar o menu
draw_menu();
sleep_ms(100);
}
}