Curso Arduino Nivel 2 - Clase 13: Pausa sin usar "delay()"

Поділитися
Вставка
  • Опубліковано 19 лис 2024

КОМЕНТАРІ • 63

  •  3 роки тому +4

    cupón válido para halloween 2021 con 25% descuento
    CUPÓN: "halloween25"
    Usa este cupón en la cesta de compra para una rebaja de 25% tanto para el Nivel 1 como el Nivel 2

  • @electrimatica
    @electrimatica 3 роки тому +22

    Compi un consejo, millis() es unsigned long, no tiene sentido ponerla en un unsigned int por que es mas pequeño int que long (65,535 vs 4,294,967,295 en *unsigned* ) y te acabará desbordando la variable, dejará de funcionar y no entenderás por qué, a mi me paso hace años y me volví loco hasta que lo entendí. Igualmente cuando millis() llega a 4,294,967,295 (el valor máximo de unsigned long) arduino se reinicia como si pulsaras el botón de reset y empieza de 0. Un saludo y buen vídeo.

    •  3 роки тому +5

      Muchas gracias por la ayuda :))) Tiene sentido!

    • @emperadordelconocimiento9200
      @emperadordelconocimiento9200 Рік тому

      Saludos, ¿como se podría hacer un intervalo en la programación de Arduino?
      Por ejemplo que un led prenda cada 2 horas cuando el sensor sea menor a la variable establecida pero que después de que el led encienda no vuelva a encender después de 2 horas.

    • @gilbertodeleon3507
      @gilbertodeleon3507 7 місяців тому

      Interesante 😮

  • @elyeti1
    @elyeti1 3 роки тому +2

    Está muy bien! Un problema que surge es que estar calculando variables de 32bits en cada ciclo relentiza el loop y si buscas mucha precisión puede llegar a ser un problema

  • @alfonsocasanova4254
    @alfonsocasanova4254 Рік тому

    Muchas gracias por la explicacion ! fue muy apropiado para un proyecto en el cual necesito activar un bucle a partir de la lectura de un sensor. adaptado al proyecto funciono a la perfeccion! GRACIAS nuevamente.

  • @proyectosaescala523
    @proyectosaescala523 3 роки тому +1

    Me parece que es el mejor video explicando esta función. Muchas gracias

  • @DanielPerez-on8kw
    @DanielPerez-on8kw 3 роки тому

    Gracias por esta gran explicación y ejemplo.
    Justo estoy desarrollando una práctica del control de un motor a pasos "sin usar delay" en la materia "Dispositivos digitales programables" y este video me ayudó a entender cómo funciona el TIMER
    Saludos!!!

  • @brayanbastidas8460
    @brayanbastidas8460 Місяць тому

    Muchas gracias de verdad ahora tengo más motivos para usar el arduino 👍👍

  • @GIMMICKARTAS
    @GIMMICKARTAS Рік тому

    Ante todo gracias por compartir tus conocimientos.
    He observado que los retardos son un gran problema en estos microcontroladores.
    Podrías explicar cómo hacer una función con 'millis()' donde poder llamarla cuando nos haga falta y pasarle como parámetro el tiempo que nos haga falta?
    Si nos hace falta más funciones, se podría crear una 'clase temporizador' e instanciar objetos para cada temporizador que utilicemos.
    Gracias por tu atención.
    Saludos

  • @DanielRodriguez-cm6mh
    @DanielRodriguez-cm6mh 3 роки тому +2

    Super bien explicado, eres un genio, muchas gracias, ahora si quedo claro

  •  3 роки тому +4

    14:15 Fijaros que hay una pausa de casi 2 segundos desde que se pulsa el botón de encendido (14:16) hasta que enciende (14:18). Eso es debido a que la lógica de cambio de estado está funcionando en todo momento, por lo que ha coincidido que restaban esos 2 segundos del periodo de 5 que acabábamos de poner. Es mucho mejor meter la lógica de cambio de estado dentro de la condición de bucle_activado, y así el LED lucirá inmediatamente al principio de cada pulsación del botón de encendido.

    • @brayhantrejo7115
      @brayhantrejo7115 Рік тому

      hola, podrias explicarlo mas detalladamente?

    •  Рік тому +2

      @@brayhantrejo7115 En el momento 13:55 el autor cambia la activación del if(), desde 1000 ms a 5000 ms. Es decir: lo que se ejecuta DENTRO del if() sólo se ejecutará cada 5 segundos. Entonces, en el momento 14:15 se pulsa el botón que activa el bucle (asignamos true a bucle_activado), PERO no sabemos en qué momento del intervalo de los 5 segundos están los valores de actual y anterior. En el vídeo pasan 2 segundos hasta que el LED enciende. Eso quiere decir que cuando se pulsó el botón la diferencia actual-anterior era de 3000 ms (faltaban otros 2000 para entrar en el cuerpo del if(). Lo que yo propongo como solución es evitar tener un bloque if() que se ejecute cada 5 segundos. Lo que queremos es que luzca inmediatamente. Los cambios propuestos son:
      if (bucle_activado) { actual = millis(); if (actual-anterior > 5000) { anterior = actual; estado_led = !estado_led; digitalWrite(...); } }

  • @heval_88
    @heval_88 3 роки тому

    Que magnífico y súper pero super interesante clase o vídeo. Gracias 🥇💯

  • @cncad9752
    @cncad9752 3 роки тому

    Saludes desde Colombia, que gran ayuda es tu canal bro

  • @jonathauwick5790
    @jonathauwick5790 3 роки тому +1

    Saludos desde México

  • @jesusgonzalez-yb1zt
    @jesusgonzalez-yb1zt 3 роки тому

    estupendo video, me pregunto si no sería más idóneo el designar los botones con bool en vez de int, un saludo.

  • @jorgeLH
    @jorgeLH 2 роки тому +1

    Hola! Una duda, esto que explicas sería valido (y aconsejable) para regular la velocidad de un servo? Actualmente para mover un servo a la velocidad q quiero hago un bucle entre 0 y 90 (por ejemplo) pongo un delay enmedio, así se mueve de grado en grado y no a su maxima velocidad. Pero tengo un minirobot con 12 servos, usar el delay significa que me mueve un servo, luego otro, luego otro… etc. esto serviria para moverlos mas “lentamente” pero todos a la vez??
    Saludos y gracias!

  • @parismichaelmantafelix7143
    @parismichaelmantafelix7143 3 роки тому

    Genial el vídeo 👍 sigue con más tutoriales compañero

  • @yoytuenlainmensidad
    @yoytuenlainmensidad 2 роки тому

    buen video bro, desde Cd de Mexico, y disculpando la ignorancia; en 12:25 en la condicional if
    se entiende que debe tener dos argumentos de comparacion, y solo escribes la variable bucle activado como unico argumento, saludos

  • @ArnaldoGarcia865
    @ArnaldoGarcia865 3 роки тому +2

    Hay tambien una libreria que se anexa llamada protothread y funciona perfecto para funciones en paralelo

    • @PapasFritasConMerluzo
      @PapasFritasConMerluzo 2 роки тому

      amigo tienes un link o como coloco esa libreria

    • @ArnaldoGarcia865
      @ArnaldoGarcia865 2 роки тому +2

      @@PapasFritasConMerluzo ahi puedes ver el tutorial y la libreria, funciona muy bien ua-cam.com/video/c3Kl4pCJzeQ/v-deo.html

    • @PapasFritasConMerluzo
      @PapasFritasConMerluzo 2 роки тому

      De momento solo use un multimetro para comprobar los 5v de salida de los pines, y sus tiempos pero aun no le conecto los leds a dichos pines para tener una vision mas panoramica del asunto.saludos

    • @ArnaldoGarcia865
      @ArnaldoGarcia865 2 роки тому

      @@PapasFritasConMerluzo Ok sigue el video y la explicacion para que entiendas como usar la libreria, yo lo hice y lo he montado en algunas aplicaciones y funciona muy bien.

  • @ProfSandroViana
    @ProfSandroViana 2 роки тому

    Perfeito, você é muito bom 👏🏾👏🏾👏🏾

  • @inventorkr1
    @inventorkr1 3 роки тому

    Goood job 👉❤️

  • @microcol
    @microcol Рік тому

    🙇‍♂ Maestro !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

  • @jostaur
    @jostaur 2 роки тому

    Hola. Saludos desde Colombia. Excelente video, me gustaría saber donde le puedo escribir para que me ayude con un código para un robot. De ante mano muchas gracias

  • @lenintivireycastillo7807
    @lenintivireycastillo7807 3 роки тому

    Al pasar por el área de comentarios, hacer un gran favor y escribirle algo, ya que esto ayuda mucho al canal....

  • @GustavoGalarza
    @GustavoGalarza 3 роки тому +2

    Tengo una duda: cómo usaria la función Millis si quiero hacer que un led encienda 500ms y esté apagado 1000ms. En los ejemplos del vídeo siempre tienen el mismo tiempo de apagado y encendido. Geniales los videos...!!!

    •  3 роки тому +2

      En el video hay un ejemplo de dos contadores, uno de 500 y otro de 2000 si recuerdo bien. Simplemente pones en HIGH el led en un contador y en LOW en el otro y así tienes tiempos diferentes.

    • @PapasFritasConMerluzo
      @PapasFritasConMerluzo 2 роки тому

      @ eso es lo que necesito hacer pero no lo comprendo aun xd :(, necesito que el LED1 este encendido 1 segundo y ese mismo LED1 apagado otros 2 segundos

  • @aloyoramirezcesardavid276
    @aloyoramirezcesardavid276 Рік тому

    Hola tengo una duda si no quiero que me parpadeen los leds un ejemplo tengo 3 leds(Rojo, Verde y Azul ) en un estado tengo tengo solo el rojo activado y cuando presiono el botón1 apaga el rojo y prende los otros 2 y que los mantenga por un tiempo prendido pero si presiono el boton 2 se apaguen y vuelva a prender el rojo, que clase de modificación tendría que hacer

  • @ortega22
    @ortega22 2 роки тому

    Hola!, sabes cómo se puede enviar datos a una base de datos en servidor externo fuera del loop, utilizando arduino MKR 1010 o ESP8236?

  • @alejandrojulian804
    @alejandrojulian804 3 роки тому

    Ese problema de delays, se resolvería fácil mente utilizando interrupciones en los dos pines de entrada

  • @manuelcuadra4096
    @manuelcuadra4096 Рік тому

    Hola bien dia espero me leas meti un goto dentro y me marca un erro de corchetse el codigo son como 18 lineas y no ay error de corcheter pero no se por que me manda ese erro saludos

  • @isaacvazquez6192
    @isaacvazquez6192 Рік тому

    Cómo estás amigo me gustaría que enseñarás como conectar RS485 pero no con un Arduino si no con otro componente ya sea un variador un wattimetro o un plc y dar instrucciones gracias

  • @alainenricomariabattaglia298
    @alainenricomariabattaglia298 10 місяців тому

    Jajaja me encanta el nombre del canal jaja

  • @ferldy
    @ferldy 3 роки тому

    Saludos

  • @gabrielruniski791
    @gabrielruniski791 Рік тому

    Ejemplo de millis en digispark

  • @danton5020
    @danton5020 3 роки тому

    Una pregunta no se saltu del 2 al 13

  • @maicolqj1
    @maicolqj1 3 роки тому

    Hola, una pregunta, yo quisiera mostrar unos datos en una lcd 20x4 que me devuelve un modulo, ejemplo que en la lcd me muestre el estado del modulo y el nivel de la batería, si hago la petición con el monitor serie funciona pero no sé como hacer que esos datos se vean en la lcd, como podria hacer? agradezco tu ayuda

    •  3 роки тому

      Este tutorial te debería ayudar: electronoobs.com/eng_arduino_tut51.php

  • @jonathauwick5790
    @jonathauwick5790 3 роки тому +1

    TA bueno

  • @str0y
    @str0y 2 роки тому

    muchas gracias me fui

  • @erickmalataxi239
    @erickmalataxi239 3 роки тому

    interesante

  • @ronnyalexisrodriguez
    @ronnyalexisrodriguez 2 роки тому

    buen dia amigo esta es la clase 13 no existe la clase 4,5,6,7,8,9,..... o va de la 3 a la 13 es que no encuentro las demas

    •  2 роки тому +1

      Hola. Las clases están en el curso. Esta es una clase gratis que compartí en UA-cam tanbien. Saludos :)

  • @juancarlossolorzano1
    @juancarlossolorzano1 3 роки тому

    Hola saludos, el curso 2 lo pondrá en udemy

    •  3 роки тому

      Si, está en proceso pero no se cuadno lo tendreé acabado!

  • @Jdecode
    @Jdecode 3 роки тому

    vay vya xD genial

  • @Elias-jz3lf
    @Elias-jz3lf 9 місяців тому

    😮❤

  • @ernestorivero9909
    @ernestorivero9909 Рік тому

    Pero usted le había dado a la variable "anterior" un valor igual a millis también, no entiendo eso millis-millis es 0 porque actual igual a millis y anterior igual a millis no entiendo eso

  • @jonathauwick5790
    @jonathauwick5790 3 роки тому +1

    A pero a qui no existe el halloween

  • @DC-BELLION
    @DC-BELLION 11 місяців тому

    Y las demas clases
    Me quede esperando 😢

    • @DC-BELLION
      @DC-BELLION 11 місяців тому

      De la clase 1 a la 13😂

  • @ivanpili1190
    @ivanpili1190 3 роки тому

    ¿Por qué usas una variable para invertir el estado del led antes de setearla en el pin?

    •  3 роки тому +1

      es más fácil invertir una variable que hacer dos lineas diferentes de digital HIGH y luego un digital LOW. Además esa variable uan vez la tengfas, la puedes usar en varios sitios dentro del código...

  • @gilbertodeleon3507
    @gilbertodeleon3507 7 місяців тому

    😢 tengo miedo