//ROTOMOLDER //VERSION 1.0 //LIBRARIES #include #include #include #include = std::size(speedValues) ) { menuIndex = 0; } } else if (!inDecisionMenu) { if (menuIndex >= std::size(timeValues) ) { menuIndex = 0; } } else { if (menuIndex > 1) { // Solo hay dos opciones en el menú de decisión menuIndex = 0; } } delay(200); // Debouncing } if (digitalRead(BUTTON_SELECT)) { if (inSpeedMenu) { selectedSpeed = speedValues[menuIndex]; inSpeedMenu = false; menuIndex = 0; } else if (!inDecisionMenu) { selectedTime = timeValues[menuIndex]; inDecisionMenu = true; // Cambia al menú de decisión menuIndex = 0; } else { if (menuIndex % 2 == 0) { //MOTOR 2 START digitalWrite(DIR_2,HIGH); for (int i = 0; i < NSTEPS_2; ++i) { digitalWrite(STEP_2,HIGH); delayMicroseconds(DELAYHIGH_2); digitalWrite(STEP_2,LOW); delayMicroseconds(DELAYLOW_2); } //MOTOR 1 START int stepper_delay=6000-selectedSpeed*50; unsigned long startTime = millis(); unsigned long duration = selectedTime*60*1000; while ((millis() - startTime) < duration) { digitalWrite(DIR,HIGH); //for (int i = 0; i < NSTEPS; ++i) { digitalWrite(STEP,HIGH); delayMicroseconds(DELAYHIGH); digitalWrite(STEP,LOW); delayMicroseconds(stepper_delay); //} } //MOTOR 2 START digitalWrite(DIR_2,LOW); for (int i = 0; i < NSTEPS_2; ++i) { digitalWrite(STEP_2,HIGH); delayMicroseconds(DELAYHIGH_2); digitalWrite(STEP_2,LOW); delayMicroseconds(DELAYLOW_2); } inSpeedMenu = true; inDecisionMenu = false; menuIndex = 0; } else { inSpeedMenu = true; inDecisionMenu = false; menuIndex = 0; } } delay(200); } // Actualizar el menú en la pantalla display.clearDisplay(); display.setCursor(0,0); if (inSpeedMenu) { display.setTextSize(1); display.setCursor(0, 0); display.print("Select Speed:"); display.setTextSize(2); display.setCursor(0, 28); display.print("> "); display.print(speedValues[menuIndex]); } else if (!inDecisionMenu) { display.setTextSize(1); display.setCursor(0, 0); display.print("Select Time:"); display.setTextSize(2); display.setCursor(0, 28); display.print("> "); display.print(timeValues[menuIndex]); display.print(" mins"); } else { display.setTextSize(1); display.setCursor(0, 0); display.println("Confirm:"); display.setTextSize(2); display.setCursor(0, 28); display.print("> "); display.println(options[menuIndex % 2]); } display.display(); }