(En primer lugar: Lo siento por el título. Realmente no sé cómo describir mi problema en una oración)
Soy un principiante arduino. Construyo un control de dos botones para un motor electrónico.
Escribí un código para configurar la velocidad con los dos botones (SW4 y SW3) y para mostrar la velocidad en el monitor serie de mi computadora portátil.
Está funcionando perfectamente con este código:
void setSpeedButton()
{
while(1){
buttonLeftState = digitalRead(buttonLeft);
buttonRightState = digitalRead(buttonRight);
if(buttonLeftState == HIGH)
{
speed = speed - vChange;
delay(200);
if(speed < 0){
speed = 0;
}
}
if(buttonRightState == HIGH)
{
speed = speed + vChange;
delay(200);
if(speed > 255){
speed = 255;
}
}
analogWrite(motor, speed);
vDisplay();
}
}
vChange es un entero con el valor 9, el resto debe ser claro.
vDisplay () es un vacío con este código:
void vDisplay()
{
Serial.print("Speed: ");
Serial.println(speed);
}
Bien ... Hasta ahora, bien ... Pero ahora:
si cambio el código (primer bloque) y pongo vDisplay () en ambas consultas if (para mostrar la velocidad solo si se cambió) es como si mi tablero se estuviera volviendo loco y cambiara al azar la velocidad cada pocos milisegundos y mostrarla en el monitor serie ...
Realmente no encuentro ninguna solución para este problema. ¿que esta causando este problema?
Si olvidé agregar alguna información, hágamelo saber en los comentarios a continuación. ¡Gracias a todos por ayudar o comentar sobre esto!