//---------------------------- IMH ------------------------- void selecao() // Seleciona parametros e menus { if (menu == 0) // Janela 0 - ajuste da guia { // // b1 menu 1; b2 5 steps; b3 50 steps; b4 -5 steps; b5 -50 steps lcd.clear(); // LCD clear lcd.setCursor(0, 0); // Cursor LCD em 0,0 lcd.print("Ajuste a guia de fio"); // Print lcd.setCursor(0, 1); // Cursor LCD em 0,1 lcd.print("e aperte ENTER para"); // Print lcd.setCursor(0, 2); // Cursor LCD em 0,2 lcd.print(" continuar"); // Print lcd.setCursor(0, 2); // Cursor LCD em 0,2 while (menu == 0) // AJUSTA POSICAO DA GUIA LINEAR { if (digitalRead(BT1) == LOW) // Se muda de menu { menu = 1; // Muda para o menu 1 delay(600); // Delay } else if (digitalRead(BT2) == LOW) // Se avança step em 5 steps { stepper.step(5); // 5 steps delay(20); // Delay lcd.setCursor(0, 1); // Cursor LCD em 0,1 } else if (digitalRead(BT3) == LOW) // Se avança step em 50 steps { stepper.step(50); // 50 steps delay(20); // Delay lcd.setCursor(0, 1); // Cursor LCD em 0,1 } else if (digitalRead(BT4) == LOW) // Se avança step em -5 steps { stepper.step(-5); // -5 steps delay(20); // Delay lcd.setCursor(0, 1); // Cursor LCD em 0,1 } else if (digitalRead(BT5) == LOW) // Se avança step em -50 steps { stepper.step(-50); // -50 steps delay(20); // Delay lcd.setCursor(0, 1); // Cursor LCD em 0,1 } } } if (menu == 1) // Memu 1 - seleciona funcao { // // b1; b2 menu 8; b3; b4 Configurar menu 2 ; b5 lcd.clear(); // LCD clear lcd.setCursor(0, 0); // Cursor LCD em 0,0 lcd.print("ESCOLHA UMA OPCAO"); // Print lcd.setCursor(0, 1); // Cursor LCD em 0,1 lcd.print("ESQ.: configurar "); // Print lcd.setCursor(0, 2); // Cursor LCD em 0,2 lcd.print("DIR.: iniciar "); // Print while (menu == 1) // Enquanto menu = 1 { if (digitalRead(BT2) == LOW) // Se Inicia processo { lcd.clear(); // LCD clear lcd.setCursor(0, 1); // Cursor LCD em 0,1 lcd.print("****************************"); // Print lcd.clear(); // LCD clear lcd.setCursor(3, 1); // Cursor LCD em 3,1 lcd.print("INICIA PROCESSO "); // Print delay(500); // Delay menu = 8; // Muda para o menu 8 } else if (digitalRead(BT4) == LOW) // Se selecionou configuracoes { lcd.clear(); // LCD clear lcd.setCursor(4, 0); // Cursor LCD em 4,0 lcd.print("CONFIGURACOES"); // Print delay(1000); // Delay lcd.clear(); // LCD clear menu = 2; // Muda para o menu 2 } } } if (menu == 2) // Menu 2 - Numero de espiras { // // b1 menu 3; b2 Incrementa * 10; b3 Decrementa; b4 Incrementa / 10 ; b5 Incrementa incrementa = 1; // Define incremento inicial lcd.setCursor(0, 0); // Cursor LCD em 0,0 lcd.print("Num. de espiras:"); // Numero de espiras lcd.setCursor(0, 1); // Cursor LCD em 0,1 lcd.print(" "); // Print lcd.setCursor(0, 1); // Cursor LCD em 0,1 lcd.print(nunEsp); // Print lcd.setCursor(8, 1); // Cursor LCD em 8,1 lcd.print(incrementa); // Print while (menu == 2) // Enquanto menu = 2 { // // Num. de espiras if (digitalRead(BT1) == LOW) { menu = 3; // Muda para o menu incio = 3 delay(600); // Delay } else if (digitalRead(BT2) == LOW) // Aumenta fator do incremento { incrementa = incrementa * 10; // Aumenta fator do incremento lcd.setCursor(0, 1); // Cursor LCD em 0,1 lcd.print(" "); // Print lcd.setCursor(0, 1); // Cursor LCD em 0,1 lcd.print(nunEsp); // Print lcd.setCursor(8, 1); // Cursor LCD em 8,1 lcd.print(incrementa); // Print delay(500); // Delay } else if (digitalRead(BT4) == LOW) // Diminui fator do incremento { incrementa = incrementa / 10; // Diminui fator do incremento lcd.setCursor(0, 1); // Cursor LCD em 0,1 lcd.print(" "); // Print lcd.setCursor(0, 1); // Cursor LCD em 0,1 lcd.print(nunEsp); // Print lcd.setCursor(8, 1); // Cursor LCD em 8,1 lcd.print(incrementa); // Print delay(500); // Delay } else if (digitalRead(BT3) == LOW) // Atualiza decremento { nunEsp = nunEsp - incrementa; // Atualiza decremento numero de espiras if (nunEsp < 0) // Se numero de espiras negativo nunEsp = 0; // Numero de espiras igual a zero lcd.setCursor(0, 1); // Cursor LCD em 0,1 lcd.print(" "); // Print lcd.setCursor(0, 1); // Cursor LCD em 0,1 lcd.print(nunEsp); // Print lcd.setCursor(8, 1); // Cursor LCD em 8,1 lcd.print(incrementa); // Print delay(500); // Delay } else if (digitalRead(BT5) == LOW) { nunEsp = nunEsp + incrementa; lcd.setCursor(0, 1); // Cursor LCD em 0,1 lcd.print(" "); // Print lcd.setCursor(0, 1); // Cursor LCD em 0,1 lcd.print(nunEsp); // Print lcd.setCursor(8, 1); // Cursor LCD em 8,1 lcd.print(incrementa); // Print delay(500); // Delay } } } if (menu == 3) // Janela 3 - Bitola do fio { // // b1 menu 4; b2 Incrementa * 10; b3 Decrementa; b4 Incrementa / 10 ; b5 Incrementa incrementa = 1; // Fator incrementa = 1 lcd.clear(); // LCD clear lcd.setCursor(0, 0); // Cursor LCD em 0,0 lcd.print("Bitola do fio (mm):"); // Print lcd.setCursor(0, 1); // Cursor LCD em 0,1 lcd.print(" "); // Print lcd.setCursor(0, 1); // Cursor LCD em 0,1 lcd.print(bitFio); // Print lcd.setCursor(8, 1); // Cursor LCD em 8,1 lcd.print(incrementa); // Print while (menu == 3) // Enquanto menu = 3 { // // Bitola do fio if (digitalRead(BT1) == LOW) // Mudar para menu 4 { menu = 4; // Muda para o menu 4 delay(600); // Delay } else if (digitalRead(BT2) == LOW) // Aumenta fator do incremento { incrementa = incrementa * 10; // Aumenta fator do incremento lcd.setCursor(0, 1); // Cursor LCD em 0,1 lcd.print(" "); // Print lcd.setCursor(0, 1); // Cursor LCD em 0,1 lcd.print(bitFio); // Print lcd.setCursor(8, 1); // Cursor LCD em 8,1 lcd.print(incrementa); // Print delay(500); // Delay } else if (digitalRead(BT4) == LOW) // Diminui fator do incremento { incrementa = incrementa / 10; // Diminui fator do incremento lcd.setCursor(0, 1); // Cursor LCD em 0,1 lcd.print(" "); // Print lcd.setCursor(0, 1); // Cursor LCD em 0,1 lcd.print(bitFio); // Print lcd.setCursor(8, 1); // Cursor LCD em 8,1 lcd.print(incrementa); // Print delay(500); // Delay } else if (digitalRead(BT3) == LOW) // Atualiza decremento { bitFio = bitFio - incrementa; // Atualiza decremento bitola do fio if (bitFio < 0) // Se bitola do fio negativa bitFio = 0; // Bitola do fio igual a 0 lcd.setCursor(0, 1); // Cursor LCD em 0,1 lcd.print(" "); // Print lcd.setCursor(0, 1); // Cursor LCD em 0,1 lcd.print(bitFio); // Print lcd.setCursor(8, 1); // Cursor LCD em 8,1 lcd.print(incrementa); // Print delay(500); // Delay } else if (digitalRead(BT5) == LOW) // Atualiza inecremento bitola do fio { bitFio = bitFio + incrementa; // Atualiza incremento lcd.setCursor(0, 1); // Cursor LCD em 0,1 lcd.print(" "); // Print lcd.setCursor(0, 1); // Cursor LCD em 0,1 lcd.print(bitFio); // Print lcd.setCursor(8, 1); // Cursor LCD em 8,1 lcd.print(incrementa); // Print delay(500); // Delay } } } if (menu == 4) // Janela 4 - Conprimento do carretel { // // b1 menu 5; b2 Incrementa * 10; b3 Incrementa; b4 Incrementa / 10 ; b5 Decrementa incrementa = 1; // Fator incrementa = 1 lcd.clear(); // LCD clear lcd.setCursor(0, 0); // Cursor LCD em 0,0 lcd.print("Largura do carretel"); // Print lcd.setCursor(0, 1); // Cursor LCD em 0,1 lcd.print(" em milimetro:"); // Print lcd.setCursor(0, 2); // Cursor LCD em 0,2 lcd.print(" "); // Print lcd.setCursor(0, 2); // Cursor LCD em 0,2 lcd.print(carrLeng); // Print lcd.setCursor(8, 2); // Cursor LCD em 8,2 lcd.print(incrementa); // Print while (menu == 4) // Enquanto menu = 4 { // // Largura do carretel if (digitalRead(BT1) == LOW) // Mudar para menu 5 { menu = 5; // Muda para o menu 5 delay(500); // Delay } else if (digitalRead(BT2) == LOW) // Aumenta fator do incremento { incrementa = incrementa * 10; // Aumenta fator do incremento lcd.setCursor(0, 2); // Cursor LCD em 0,2 lcd.print(" "); // Print lcd.setCursor(0, 2); // Cursor LCD em 0,2 lcd.print(carrLeng); // Print lcd.setCursor(8, 2); // Cursor LCD em 8,2 lcd.print(incrementa); // Print delay(500); // Delay } else if (digitalRead(BT4) == LOW) // Diminui fator do incremento { incrementa = incrementa / 10; // Diminui fator do incremento lcd.setCursor(0, 2); // Cursor LCD em 0,2 lcd.print(" "); // Print lcd.setCursor(0, 2); // Cursor LCD em 0,2 lcd.print(carrLeng); // Print lcd.setCursor(8, 2); // Cursor LCD em 8,2 lcd.print(incrementa); // Print delay(500); // Delay } else if (digitalRead(BT3) == LOW) // Atualiza decremento { carrLeng = carrLeng - incrementa; // Atualiza decremento largura carretel if (carrLeng < 0) // Se largura negativa carrLeng = 0; // Largura igual a 0 lcd.setCursor(0, 2); // Cursor LCD em 0,2 lcd.print(" "); // Print lcd.setCursor(0, 2); // Cursor LCD em 0,2 lcd.print(carrLeng); // Print lcd.setCursor(8, 2); // Cursor LCD em 8,2 lcd.print(incrementa); // Print delay(500); // Delay } else if ( digitalRead(BT5) == LOW) // Atualiza incremento { carrLeng = carrLeng + incrementa; // Atualiza incremento lcd.setCursor(0, 2); // Cursor LCD em 0,2 lcd.print(" "); // Print lcd.setCursor(0, 2); // Cursor LCD em 0,2 lcd.print(carrLeng); // Print lcd.setCursor(8, 2); // Cursor LCD em 8,2 lcd.print(incrementa); // Print delay(500); // Delay } } } if (menu == 5) // Janela 5 - Seleciona funcao { // // b1; b2 menu 8; b3; b4 inicio = 6; b5 lcd.clear(); // LCD clear lcd.setCursor(0, 0); // Cursor LCD em 0,0 lcd.print("ESCOLHA UMA OPCAO"); // Print lcd.setCursor(0, 1); // Cursor LCD em 0,1 lcd.print("ESQ.: + configuracao"); // Print lcd.setCursor(0, 2); // Cursor LCD em 0,2 lcd.print("DIR.: para iniciar "); // Print while (menu == 5) // Enquanto menu = 5 { if (digitalRead(BT2) == LOW) // Mudar para menu 9 { lcd.clear(); // LCD clear lcd.setCursor(0, 1); // Cursor LCD em 0,1 lcd.print("****************************"); // Print lcd.setCursor(0, 1); // Cursor LCD em 0,1 lcd.print("INICIA PROCESSO "); // Print delay(500); // Delay menu = 8; // Muda para o menu incio = 8 } else if (digitalRead(BT4) == LOW) // Mudar para menu 6 { lcd.setCursor(0, 0); // Cursor LCD em 0,0 delay(500); // Delay lcd.clear(); // LCD clear menu = 6; // Muda para o menu 6 } } } if (menu == 6) // Janela 6 - define se tem isolação entre camadas { // // b1 menu 7; b2; b3 NAO; b4; b5 SIM lcd.setCursor(0, 0); // Cursor LCD em 0,0 lcd.print("ISOLACAO? + -"); // Print lcd.setCursor(0, 1); // Cursor LCD em 0,1 lcd.setCursor(5, 1); // Cursor LCD em 5,1 lcd.print(" Sim Nao"); // Print lcd.print(" "); // Print lcd.setCursor(0, 1); // Cursor LCD em 0,1 while (menu == 6) // Enquanto menu = 6 { if (digitalRead(BT1) == LOW) // Muda de menu { menu = 7; // Muda para o menu 7 delay(500); // Delay } else if (digitalRead(BT3) == LOW) // Definir isolacao NAO { lcd.setCursor(0, 1); // Cursor LCD em 0,1 lcd.print(" "); // Print lcd.setCursor(0, 1); // Cursor LCD em 0,1 lcd.print("NAO =="); // Print delay(500); // Delay } else if (digitalRead(BT5) == LOW) // Definir isolacao SIM { audio = true; // Define audio ligado lcd.setCursor(0, 1); // Cursor LCD em 0,1 lcd.print(" "); // Print lcd.setCursor(0, 1); // Cursor LCD em 0,1 lcd.print("SIM =="); // Print delay(500); // Delay } } } if (menu == 7) // Janela 7 - Fator de correcao de passo { // // b1 menu 8; b2; b3 decrementa dciclos; b4; b5 Incrementa dciclos lcd.clear(); // LCD clear lcd.setCursor(0, 0); // Cursor LCD em 0,0 lcd.print("Fcorrecao Avan % "); // Print lcd.setCursor(0, 1); // Cursor LCD em 0,1 lcd.print(" "); // Print lcd.setCursor(0, 1); // Cursor LCD em 0,1 lcd.print(dciclos); // Print while (menu == 7) // Enquanto menu = 7 { // // Fcorrecao Avan % if (digitalRead(BT1) == LOW) // Muda de menu { menu = 8; // Muda para o menu 8 delay(500); // Delay } else if (digitalRead(BT3) == LOW) // Decrementa fator de passo { dciclos = dciclos - 1; // Decrementa fator de passo if (dciclos < 0) // Se fator de passo negativo dciclos = 0; // fator de passo igual a 0 lcd.setCursor(0, 1); // Cursor LCD em 0,1 lcd.print(" "); // Print lcd.setCursor(0, 1); // Cursor LCD em 0,1 lcd.print(dciclos); // Print delay(500); // Delay } else if (digitalRead(BT5) == LOW ) // Incrementa fator de passo { dciclos = dciclos + 1; // Incrementa fator de passo lcd.setCursor(0, 1); // Cursor LCD em 0,1 lcd.print(" "); // Print lcd.setCursor(0, 1); // Cursor LCD em 0,1 lcd.print(dciclos); // Print delay(500); // Delay } } } if (menu == 8) // Janela 8 - Inicia processo / calculos { // // b1; b2 direto = 0, menu 9; b3; b4 direto = 1, menu 9; b5 espCam = (carrLeng * 1 / bitFio) / (1 + dln / 100); // numero de espiras por camada lcd.clear(); // LCD clear lcd.setCursor(0, 0); // Cursor LCD em 0,0 lcd.print(" SENTIDO"); // Print lcd.setCursor(0, 2); // Cursor LCD em 0,2 lcd.print(" ESQ <-- OU --> DIR"); // Print while (menu == 8) // Enquanto menu = 8 { // // SENTIDO if (digitalRead(BT2) == LOW) // Define sentido CW { direct = 0; // Sentido CW menu = 9; // janela de IHM nao existe - processo esta inciado } else if (digitalRead(BT4) == LOW) // Define sentido CCW { direct = 1; // Sentido CCW menu = 9; // janela de IHM nao existe - processo esta inciado } } lcd.clear(); // LCD clear lcd.setCursor(0, 0); // Cursor LCD em 0,0 lcd.print("PROCESSO ON "); // Print lcd.setCursor(3, 1); // Cursor LCD em 3,1 lcd.print(" "); // Print lcd.setCursor(2, 1); // Cursor LCD em 2,1 lcd.setCursor(8, 1); // Cursor LCD em 08,1 delay(1000); // Delay lcd.clear(); // LCD clear lcd.setCursor(3, 1); // Cursor LCD em 3,1 lcd.print(" "); // Print lcd.setCursor(2, 0); // Cursor LCD em 2,0 lcd.print("ESPIRAS CAMADAS"); // Print delay(500); // Delay } } //---------------------------- FIM DE PROCESSO -------------------------------- void endProcess() { digitalWrite(motor_carretel, LOW ); // Desliga motor do crretel lcd.clear(); // LCD clear lcd.print("Processo concluido"); // Print lcd.setCursor(0, 1); // Cursor LCD em 0,1 lcd.print("com sucesso:"); // Print lcd.setCursor(0, 2); // Cursor LCD em 0,2 lcd.print("Enrolamento com"); // Print lcd.setCursor(0, 3); // Cursor LCD em 0,3 lcd.print(nunEsp); // Print lcd.setCursor(8, 3); // Cursor LCD em 8,3 lcd.print("Espiras"); // Print delay(300); // Delay while (menu == 9) // Enquanto menu = 9 { if (digitalRead(BT3) == LOW) // b1; b2; b3 menu 0; b4; b5 { menu = 0; // janela de IHM menu 0 } } } //------------------------------- CCW --------------------------- // funcoes de acionamento do motor de passo void counterclockwise () // Avanca step CCW { stepper.step(1); // Avanca um step CCW } //-------------------------------- CW ------------------------------ void clockwise() // Avanca step CW { stepper.step(-1); // Avanca um step CW } // -------------------------------- FIM -------------------------------- // funcao de desligamento do motor de passo void fim() // Funcao fim { lcd.clear(); // LCD clear lcd.print(" FIM"); // Print }