Ir para conteúdo
  • Cadastre-se

Vinicius-MAfonso

Membros
  • Posts Por Dia

    0
  • Posts

    1
  • Registrado em

  • Última visita

  • Créditos EBR

    0 [ Doar ]

Últimos Visitantes

352 visualizações

Conquistas de Vinicius-MAfonso

Novato

Novato (1/14)

  • Iniciador de conversa Rare

Escudos Recentes

1

Joinhas

  1. Olá colegas, tudo bem?! Comecei um projeto no arduino para a matéria de estrutura de dados da faculdade, é sobre um gerenciamento de filas usando C, ele cria a senha normal e preferencial, mas quando é para chamar ele não consegue chamar nenhuma fila, já fiz o mesmo código no computador usando o console e funcionou, mas no arduino não, podem me ajudar?, segue abaixo o vídeo e o código. #include <U8glib.h> #include <Adafruit_SSD1306.h> #include <Adafruit_GFX.h> #include <Adafruit_SPITFT.h> #include <Adafruit_SPITFT_Macros.h> #include <gfxfont.h> #include <Wire.h> //INCLUSÃO DE BIBLIOTECA #define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64 Adafruit_SSD1306 display = Adafruit_SSD1306(); #define limit 10 char buff[40]; char buff1[25]; char buff2[25]; struct fila_struct { int position[limit]; int initial_position; int end_position; }; struct fila_struct fila; int num_atendimento = 0; int num = 0; int senha = 0; int senhaP = 0; bool sair = true; void setup(){ pinMode(12, INPUT); pinMode(4, OUTPUT); pinMode(13, INPUT); pinMode(2, OUTPUT); Wire.begin(); //INICIALIZA A BIBLIOTECA WIRE display.begin(SSD1306_SWITCHCAPVCC, 0x3C); //INICIALIZA O DISPLAY COM ENDEREÇO I2C 0x3C display.setTextColor(WHITE); //DEFINE A COR DO TEXTO display.setTextSize(1); //DEFINE O TAMANHO DA FONTE DO TEXTO display.clearDisplay(); //LIMPA AS INFORMAÇÕES DO DISPLAY } void loop() { fila.initial_position = 0; fila.end_position = 0; if(digitalRead(12) == 1){ display.setCursor(0,0); //POSIÇÃO EM QUE O CURSOR IRÁ FAZER A ESCRITA retirar_senha(); display.print(buff); //ESCREVE O TEXTO NO DISPLAY display.display(); //EFETIVA A ESCRITA NO DISPLAY delay(150); display.clearDisplay(); //LIMPA AS INFORMAÇÕES DO DISPLAY } if(digitalRead(13) == 1){ display.setCursor(0,0); //POSIÇÃO EM QUE O CURSOR IRÁ FAZER A ESCRITA retirar_senhaP(); display.print(buff); //ESCREVE O TEXTO NO DISPLAY display.display(); //EFETIVA A ESCRITA NO DISPLAY delay(1500); display.clearDisplay(); //LIMPA AS INFORMAÇÕES DO DISPLAY } if(digitalRead(2) == 1){ display.setCursor(0,0); //POSIÇÃO EM QUE O CURSOR IRÁ FAZER A ESCRITA fila_decrement(); display.print(buff1); //ESCREVE O TEXTO NO DISPLAY display.display(); //EFETIVA A ESCRITA NO DISPLAY delay(1500); display.clearDisplay(); //LIMPA AS INFORMAÇÕES DO DISPLAY } } void fila_increment(int senha){ if (fila.end_position == limit) { } else { fila.position[fila.end_position] = senha; fila.end_position++; } } void fila_decrement(){ if (fila.initial_position == fila.end_position) { sprintf(buff1,"Fila vazia"); } else { sprintf(buff1," "); for (int i=0; i < limit -1; i++){ fila.position[i] = fila.position[i+1]; } fila.position[fila.end_position] = 0; fila.end_position--; num_atendimento++; } ver_fila(); } void ver_fila() { sprintf(buff1,"Fila: "); for (int i=0; i<limit; i++){ sprintf(buff1,"%d, ", fila.position[i]); } sprintf(buff1,"Senha chamada: %d", num_atendimento); limpar_msg(0); } void retirar_senha(){ int sua_senha; if (validar() == 1) { sua_senha = senha + 1; sprintf(buff,"Sua senha: %d \nNormal", sua_senha); senha++; fila_increment(sua_senha); } } void retirar_senhaP(){ int sua_senha; if (validar() == 1) { sua_senha = senhaP + 1; sprintf(buff,"Sua senha: %d \nTipo: Prioritaria", sua_senha); senhaP++; fila_increment(sua_senha); } } int validar(){ if (senha == limit || senhaP == limit ) { return -1; } else if(senha <= limit || senhaP <= limit) { return 1; } } Desde já agradeço qualquer resposta, Att. Viniciu M. Afonso arduino.mp4

SOBRE O ELETRÔNICABR

EletrônicaBR é o melhor fórum técnico online, temos o maior e mais atualizado acervo de Esquemas, Bios e Firmwares da internet. Através de nosso sistema de créditos, usuários participativos têm acesso totalmente gratuito. Os melhores técnicos do mundo estão aqui!
Técnico sem o EletrônicaBR não é um técnico completo! Leia Mais...
×
×
  • Criar Novo...