Jump to content

Recommended Posts

hace 5 minutos, mcniac dijo:

man, tenes delays por todos lados, todo eso demora la ejecución del resto de las cosas, si queres evitar esas demoras tenes que implementar todo usando millis

Dale gracias, mañana lo leo y te cuento que onda

Share this post


Link to post
Share on other sites
En 28/7/2020 a las 0:05, mcniac dijo:

man, tenes delays por todos lados, todo eso demora la ejecución del resto de las cosas, si queres evitar esas demoras tenes que implementar todo usando millis

tenias razón con lo de los delays, para empezar me di cuenta que el primer comando midi a mi no me servia de nada, asi que lo saque, y despues al otro comando que tenia delay de 1000ms se lo baje a 100ms. no entendi bien como usar lo de los millis, pero de esta forma, con 2 pulsadores y 2 leds esta andando perfecto, todo el quilombo se hacia cuando intentaba mandar los comandos midi con esos delays

Share this post


Link to post
Share on other sites

la idea de usar los millis es que en lugar de esperar con un delay vas controlando con una variable y cuando halla pasado el tiempo requerido haces lo que tengas que hacer, es un poco más complejo de programar, pero bastante más robusto y responde siempre 😉

la idea es que guardas cuando ocurrio un evento y luego vas preguntando cuanto paso desde ese evento, una vez que se cumplió el tiempo haces lo que necesites.

aca un ejemplo sacado del manual de arduino 😉

void loop() {
  // here is where you'd put code that needs to be running all the time.

  // check to see if it's time to blink the LED; that is, if the difference
  // between the current time and last time you blinked the LED is bigger than
  // the interval at which you want to blink the LED.
  unsigned long currentMillis = millis();

  if (currentMillis - previousMillis >= interval) {
    // save the last time you blinked the LED
    previousMillis = currentMillis;

    // if the LED is off turn it on and vice-versa:
    if (ledState == LOW) {
      ledState = HIGH;
    } else {
      ledState = LOW;
    }

    // set the LED with the ledState of the variable:
    digitalWrite(ledPin, ledState);
  }
}

 

  • Like 1

Share this post


Link to post
Share on other sites
hace 4 horas, mcniac dijo:

la idea de usar los millis es que en lugar de esperar con un delay vas controlando con una variable y cuando halla pasado el tiempo requerido haces lo que tengas que hacer, es un poco más complejo de programar, pero bastante más robusto y responde siempre 😉

la idea es que guardas cuando ocurrio un evento y luego vas preguntando cuanto paso desde ese evento, una vez que se cumplió el tiempo haces lo que necesites.

aca un ejemplo sacado del manual de arduino 😉


void loop() {
  // here is where you'd put code that needs to be running all the time.

  // check to see if it's time to blink the LED; that is, if the difference
  // between the current time and last time you blinked the LED is bigger than
  // the interval at which you want to blink the LED.
  unsigned long currentMillis = millis();

  if (currentMillis - previousMillis >= interval) {
    // save the last time you blinked the LED
    previousMillis = currentMillis;

    // if the LED is off turn it on and vice-versa:
    if (ledState == LOW) {
      ledState = HIGH;
    } else {
      ledState = LOW;
    }

    // set the LED with the ledState of the variable:
    digitalWrite(ledPin, ledState);
  }
}

 

Dale lo voy a tener en cuenta para futuras mejoras, ahora voy a armarlo todo de esta manera ya que cumple bien su función y de a poco lo voy a ir optimizando, tené en cuenta que hace 2 semanas no sabía que era un Arduino... Mil gracias por hacerme dar cuenta donde tenía el error, para la semana que viene posiblemente la tenga toda lista

Share this post


Link to post
Share on other sites

Joya, buenisimo que le hallas agarrado la onda. espero ver como queda el controlador!

Share this post


Link to post
Share on other sites
En 29/7/2020 a las 17:17, mcniac dijo:

Joya, buenisimo que le hallas agarrado la onda. espero ver como queda el controlador!

Cómo andas? Quería compartirte un avance en el gabineteIMG-20200806-WA0047.thumb.jpeg.300ecd3ca646a91c02a87de13633ece9.jpeg

  • Like 3

Share this post


Link to post
Share on other sites

apa!! le vas a mandar unos cuantos pulsadores! bien ahi!

seguramente te convenga cambiar un poco el codigo para que sea mas facil de mantener/modificar.

por un lado encapsular la funcionalidad de checkear un pin y hacer lo que tiene que hacer a partir de eso en una funcion. asi no tenes el codigo copiado y pegado.

por otro tenes algunos delays, que con 2 o 3 botones no se notan, pero con 15 ya si, deberias reimplementar usando millis.

espero que no tomes a mal los consejos, pero supongo que puedo ahorrarte un dolor de cabeza que ya pasé 😄

Share this post


Link to post
Share on other sites
hace 5 minutos, mcniac dijo:

apa!! le vas a mandar unos cuantos pulsadores! bien ahi!

seguramente te convenga cambiar un poco el codigo para que sea mas facil de mantener/modificar.

por un lado encapsular la funcionalidad de checkear un pin y hacer lo que tiene que hacer a partir de eso en una funcion. asi no tenes el codigo copiado y pegado.

por otro tenes algunos delays, que con 2 o 3 botones no se notan, pero con 15 ya si, deberias reimplementar usando millis.

espero que no tomes a mal los consejos, pero supongo que puedo ahorrarte un dolor de cabeza que ya pasé 😄

Todo concejo es más que bienvenido! Estos días no estuve tocando nada en el código, estuve a full con lo que necesito para el gabinete. En una de esas mañana o pasado debería tener todo armado, las modificaciones del código seguro las haga ya con todo ensamblado para ir probando sobre la marcha. Gracias!

Share this post


Link to post
Share on other sites

si haces esos cambios en el codigo incluso se podría bancar que pulses varios a la vez

Share this post


Link to post
Share on other sites
hace 2 minutos, mcniac dijo:

si haces esos cambios en el codigo incluso se podría bancar que pulses varios a la vez

Claro, para futuro la idea es algo así, onda de prender y apagar efectos uno atrás de otro... Pero el procesador de efectos que tengo (Alesis midiverb 4) no permite eso, solo puedo hacer cambio de preset. Entonces por el momento cada pulsador va a ser un sonido específico (por eso también 15 pulsadores) por lo que no voy a andar pulsando varios seguidos, solo el sonido que use en ese momento de cada canción

Share this post


Link to post
Share on other sites
hace 48 minutos, mcniac dijo:

ah! ok, pense que era para controlar la compu 😄

Ah nono, tengo un Marshall jmp1 y el Alesis para los efectos

  • Like 1

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...