Deseo agradecerte por los videos sobre las funciones de control de tiempo que acabo de ver y felicitarte por la claridad de tus exposiciones, lo mismo por los programas fuente que facilitaste. Es la primera vez que comprendo la función millis() y su utilización, después de haber deambulado sin éxito en varios tutoriales. Un fraternal abrazo desde Argentina.
Gracias por el video. He revisado y he probado muchas formas pero sin lugar a duda este es el ejemplo claro de trabajar un mismo elemento con tiempos dispares. Llevaba días tratando de resolverlo y nunca me percaté de que era cuestión verificar el estado del led. Excelente trabajo, espero que su canal gane más suscriptores, pues se los merece. Saludos des Venezuela
Hola muy didactico y claro el video de como usar millis(), muchisimas gracias y continúe con sus videos que son una gran fuente de aprendizaje. Saludos
Hola buenas tardes muy bueno tu video y la explicación una pegunta si quiero prende 8 led seria colocar digitalWrite(pinX,estadoLed) , otra pregunta si quiero realizar el efecto del centro a extremos y viceversa
Te agradezco por haber hecho este video. TODOS ponen un solo ejemplo de uso de milis: una acción y listo. GRACIAS A TÍ DESCUBRÍ EN QUE LE HE ERRADO EN LAS VERSIONES FALLIDAS DE MIS PROGRAMAS, TENIENDO QUE LIMITARME A DAR UN INICIO Y FIN DE LAS ACCIONES EJECUTADAS. no encerraba una sentencia entre paréntesis. En mi caso hago lo siguiente: //VARIABLES DE QUE MIDEN TIEMPO unsigned long tiempo; //DONDE IRÁ "MILLIS()". unsigned long tiempo_anterior=0; //TIEMPO ANTERIOR. int resultado; //resultado de la resta entre tiempo y tiempo anterior. este número ejecuta cada segmento del programa. void setup{ no interesa para la explicación } void loop{ //Uso en el primer renglon : tiempo=millis();//INICIA CONTADOR pongo el contador en la variable, para luego: //luego resultado=(tiempo - tiempo_anterior);// ejecuta comparacion para saber que hará primero //INICIO EL PROGRAMA EN SI MISMO (fase de pruebas: para evaluar el tiempo que demora cada dispositivo) if (resultado>=500 and resultado =1500 and resultado =2500 and resultado =500 && ejecucion_1==true) =500) && ejecucion_1==true)
El doble ampersand && es un Y logico, se usa para evaluar dos condiciones, y se lee asi; si condicion uno es verdadera Y condicion dos es verdadera entonces ambas son verdaderas. Es decir, el Y logico evalua si ambas expresiones son verdaderas, si lo son se realiza algo y sino no hace nada. Revisa el tema de operadores logicos.
Muy bien explicado el programa sin embargo no entiendo para que utilizas dos variables "tiempo anterior encendido"/"tiempo anterior apagado" si una única variable es suficiente.
Hola! Muy buenos los tutoriales. A mi me gustaría saber, cómo tratar el desbordamiento de millis(). Me pasa que quiero por ejemplo controlar 30 minutos de un proceso, pero cuando el inicio está cercano al final del tiempo máximo soportado por millis(), se vuelve a cero... empieza a contar nuevamente y ahí me salen mal los cálculos... Saludos!!!
Hola Sabrina, te sugiero mires el video donde explico como usar millis correctamente ruclips.net/video/XWXWT5DMMiA/видео.html "Como usar la funcion millis en Arduino", quizas se te escapa algun detalle. Saludos,
¿Como sería este mismo ejemplo (parpadear el led en intervalos diferentes de tiempo), pero que comience un carácter recibido por el monitor serial? Por ejemplo, si recibe la letra A, comience el paparpadeo intermitente del led a intervalos distintos. Le he dado muchas vueltas y no logro encontrar la solución (sin uso de delay o algo que bloquee el programa) . Muchísimas gracias por tus videos, ojalá puedas resolver mi duda.
Hola Manuel, gracias por tu comentario. Te invito a que mires mi blog fidiasrodriguez.com/como-usar-las-funciones-millis-y-delay-en-arduino/, en el ejemplo 6 veras como se hace el parpadeo del led con tiempo diferentes y en el ejemplo 5 como usar una bandera para activar un contador de tiempo, que es lo que nesecitas. Saludos
Buenas tardes soy nuevo en esto, pero me he dado cuenta de que el codigo del ejemplo 6 de su enlace o de este video, hace lo opuesto en un esp8266, en un nano me corre bien como usted dice pero en un Esp8266 en vez de encender se apaga y en vez de apagar se enciende.
Hola amigo, quisiera poner esta idea en un carro RC para las luces intermitentes controladas por Bluetooth, me podrías ayudar :) Ya tengo las luces delanteras y las luces de stop, solo me falta las intermitentes, pero ya intente de todo y no logro hacerlo por eso pido de tu ayuda :)
Hola, en mi pagina fidiasrodriguez.com/como-usar-las-funciones-millis-y-delay-en-arduino/ puedes encontrar varios ejemplos que te podrian ayudar, usa el ejemplo 3 y coloca en la condicion del "if" una funcion "and" donde consultes el tiempo y una variable que te encendera y apagara las luces intermitentes, prueba y escribes como te fue.
Hola Sebastian, te recomiendo que veas el video donde explico como programar un semaforo (ruclips.net/video/OQslmlLO_2c/видео.html) una vez que lo entiendas el tema del pulsador ya lo veras mas facil. Saludos,
Deseo agradecerte por los videos sobre las funciones de control de tiempo que acabo de ver y felicitarte por la claridad de tus exposiciones, lo mismo por los programas fuente que facilitaste. Es la primera vez que comprendo la función millis() y su utilización, después de haber deambulado sin éxito en varios tutoriales. Un fraternal abrazo desde Argentina.
Gracias por el video. He revisado y he probado muchas formas pero sin lugar a duda este es el ejemplo claro de trabajar un mismo elemento con tiempos dispares. Llevaba días tratando de resolverlo y nunca me percaté de que era cuestión verificar el estado del led. Excelente trabajo, espero que su canal gane más suscriptores, pues se los merece. Saludos des Venezuela
Hola muy didactico y claro el video de como usar millis(), muchisimas gracias y continúe con sus videos que son una gran fuente de aprendizaje. Saludos
Hola buenas tardes muy bueno tu video y la explicación una pegunta si quiero prende 8 led seria colocar digitalWrite(pinX,estadoLed) , otra pregunta si quiero realizar el efecto del centro a extremos y viceversa
Me sirvio a la perfeccion totalmente agradecido. Gracias, me suscribo.
Te agradezco por haber hecho este video. TODOS ponen un solo ejemplo de uso de milis: una acción y listo.
GRACIAS A TÍ DESCUBRÍ EN QUE LE HE ERRADO EN LAS VERSIONES FALLIDAS DE MIS PROGRAMAS, TENIENDO QUE LIMITARME A DAR UN INICIO Y FIN DE LAS ACCIONES EJECUTADAS. no encerraba una sentencia entre paréntesis.
En mi caso hago lo siguiente:
//VARIABLES DE QUE MIDEN TIEMPO
unsigned long tiempo; //DONDE IRÁ "MILLIS()".
unsigned long tiempo_anterior=0; //TIEMPO ANTERIOR.
int resultado; //resultado de la resta entre tiempo y tiempo anterior. este número ejecuta cada segmento del programa.
void setup{ no interesa para la explicación }
void loop{
//Uso en el primer renglon :
tiempo=millis();//INICIA CONTADOR pongo el contador en la variable, para luego:
//luego
resultado=(tiempo - tiempo_anterior);// ejecuta comparacion para saber que hará primero
//INICIO EL PROGRAMA EN SI MISMO (fase de pruebas: para evaluar el tiempo que demora cada dispositivo)
if (resultado>=500 and resultado =1500 and resultado =2500 and resultado =500 && ejecucion_1==true) =500) && ejecucion_1==true)
Gracias por el comentario Leo. Me alegra haber podido ayudar.
Hola, un pregunta, ¿cuál es la función en general o para que nos sirve en el programa el símbolo de &&?
El doble ampersand && es un Y logico, se usa para evaluar dos condiciones, y se lee asi; si condicion uno es verdadera Y condicion dos es verdadera entonces ambas son verdaderas. Es decir, el Y logico evalua si ambas expresiones son verdaderas, si lo son se realiza algo y sino no hace nada. Revisa el tema de operadores logicos.
Aplausos, excelente.
Muy bien explicado el programa sin embargo no entiendo para que utilizas dos variables "tiempo anterior encendido"/"tiempo anterior apagado" si una única variable es suficiente.
Hola Jose, asi es. Solo lo hice asi para hacerlo mas facil de entender para los principiantes. Gracias por el comentario.
Hola! Muy buenos los tutoriales. A mi me gustaría saber, cómo tratar el desbordamiento de millis(). Me pasa que quiero por ejemplo controlar 30 minutos de un proceso, pero cuando el inicio está cercano al final del tiempo máximo soportado por millis(), se vuelve a cero... empieza a contar nuevamente y ahí me salen mal los cálculos... Saludos!!!
Hola Sabrina, te sugiero mires el video donde explico como usar millis correctamente ruclips.net/video/XWXWT5DMMiA/видео.html "Como usar la funcion millis en Arduino", quizas se te escapa algun detalle. Saludos,
¿Como sería este mismo ejemplo (parpadear el led en intervalos diferentes de tiempo), pero que comience un carácter recibido por el monitor serial? Por ejemplo, si recibe la letra A, comience el paparpadeo intermitente del led a intervalos distintos. Le he dado muchas vueltas y no logro encontrar la solución (sin uso de delay o algo que bloquee el programa) . Muchísimas gracias por tus videos, ojalá puedas resolver mi duda.
Hola Manuel, gracias por tu comentario. Te invito a que mires mi blog fidiasrodriguez.com/como-usar-las-funciones-millis-y-delay-en-arduino/, en el ejemplo 6 veras como se hace el parpadeo del led con tiempo diferentes y en el ejemplo 5 como usar una bandera para activar un contador de tiempo, que es lo que nesecitas. Saludos
@@FRelectronicayprogramacion Muchas gracias, me alegro que hayas decidido enseñar por este medio.
Buenas tardes soy nuevo en esto, pero me he dado cuenta de que el codigo del ejemplo 6 de su enlace o de este video, hace lo opuesto en un esp8266, en un nano me corre bien como usted dice pero en un Esp8266 en vez de encender se apaga y en vez de apagar se enciende.
El esp8266 viene configurado de esa manera, para encender con un pulso bajo.
Hola amigo, quisiera poner esta idea en un carro RC para las luces intermitentes controladas por Bluetooth, me podrías ayudar :)
Ya tengo las luces delanteras y las luces de stop, solo me falta las intermitentes, pero ya intente de todo y no logro hacerlo por eso pido de tu ayuda :)
Hola, en mi pagina fidiasrodriguez.com/como-usar-las-funciones-millis-y-delay-en-arduino/ puedes encontrar varios ejemplos que te podrian ayudar, usa el ejemplo 3 y coloca en la condicion del "if" una funcion "and" donde consultes el tiempo y una variable que te encendera y apagara las luces intermitentes, prueba y escribes como te fue.
Si necesito encender un led al presionar un botón, necesito que ese led quede encendido 10 segundos como sería?
Hola Sebastian, te recomiendo que veas el video donde explico como programar un semaforo (ruclips.net/video/OQslmlLO_2c/видео.html) una vez que lo entiendas el tema del pulsador ya lo veras mas facil. Saludos,