Тёмный

Multitasking usando delay() - Arduino 

Cefuve
Подписаться 17 тыс.
Просмотров 22 тыс.
50% 1

Llegó el momento que tanto esperaban ¿Cómo hacer múltiples tareas en arduino? pero en este primer video, les explicaré un método para hacerlo usando la función delay(), SI! esa función que nos bloquea la ejecución del código, la usaremos a nuestro favor.
El código final lo encuentras en el siguiente link:
github.com/cefuve/For-RU-vid...
#########
¿Dónde encontrarme en internet?
Webpage: www.cefuve.com
RU-vid: / cefuve
Instagram: / cefuve_electronics
Facebook: / cefuve.electronics
Donaciones:
www.paypal.com/paypalme/cefuve
#########
Thank for music to Joakim Karud, you can find him on:
- Spotify: open.spotify.com/artist/0iAOX...
- iTunes: / joakim-karud
- Bandcamp: joakimkarud.bandcamp.com/​
- Soundcloud: / joakimkarud

Опубликовано:

 

1 мар 2021

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 164   
@jpsupervideos
@jpsupervideos Год назад
(Jose Palacio)Por primera vez entro a tu pagina ...... me sorprendio y me gusto bastante. Eres un REAL profesor , que tiene en cuenta que la persona que quiere aprender requiere esplicacion clara. Y sabes colocarte en la posicion de el estudiante y anticiparse a sus dudas. Gracias "teacher"...no pares de enseñar.....felicidades
@cefuve
@cefuve Год назад
Muchas gracias Jose, saludos!
@tarikazizi8597
@tarikazizi8597 2 года назад
Gracias...explication de profesionales....creo que eres muy qualificadio a hacer inventions.
@jhonlucero3122
@jhonlucero3122 2 года назад
Eres dios!!!!!! Te quieroo
@javiergguinarte
@javiergguinarte 3 года назад
Gracias por enseñar tan clarito.
@carlosangellotti5710
@carlosangellotti5710 3 года назад
Excelente, muy muy bueno !!!
@batpin7641
@batpin7641 3 года назад
Muchas gracias César, como siempre muy bien explicado.
@aramirezmx
@aramirezmx 3 года назад
Fabulosa idea! Muchas gracias.
@javiguitarracerezo3566
@javiguitarracerezo3566 3 года назад
Una explicación magistral !!! Muchas gracias.
@prudenciopinzonl8042
@prudenciopinzonl8042 3 года назад
Gracias por compartir su conocimiento.
@luisfernandoalvarez5500
@luisfernandoalvarez5500 2 года назад
Te capté y aprendí el detalle. Mil gracias
@sirtordo
@sirtordo 8 месяцев назад
excelente, muy claro.
@hermesgarcia789
@hermesgarcia789 2 года назад
Excelente!!!!
@fabianrojas5061
@fabianrojas5061 2 года назад
Muchas gracias por tus videos me ayudan mucho
@fgelectrico
@fgelectrico 3 года назад
Perfecto me abrió un panorama interesante Gracias
@rafaelpereyra2110
@rafaelpereyra2110 2 года назад
muy lindas tus explicaciones, aprendo mucho
@fernandorodelo8480
@fernandorodelo8480 5 месяцев назад
Muy bien amigo!👍
@OlafAlbrecht
@OlafAlbrecht 2 года назад
Muy Bueno este tema me ha resultado muy util olaf de villa generla belgrano cordoba argentina
@pablomontanari5999
@pablomontanari5999 3 года назад
Felicitaciones. Muy ameno y facil de comprender. Gracias por compartir su conocimiento.
@carlosenergy
@carlosenergy 4 месяца назад
Maravillosa explicacion, mil gracias por compartir el conocimiento.
@cefuve
@cefuve 4 месяца назад
Con mucho gusto
@hellsingalucard4637
@hellsingalucard4637 Год назад
gracias bro, muy bueno
@ricardomonsalvegaitan4650
@ricardomonsalvegaitan4650 3 года назад
Excelente esplicacion, muy clara. Gracias máster. Saludos desde Colombia.
@rojoseluis3100
@rojoseluis3100 2 года назад
Excelente trabajo...se agradece...!!!!
@Tooni98_
@Tooni98_ 3 года назад
No tenía ni idea. Espectacular 😍😍😍😍😍😍
@mariobodanof6730
@mariobodanof6730 2 года назад
Excelente!💪...agradecido por los tutoriales que desarrollas...sirven bastante para los que estamos iniciando en Arduino.👌
@alfaalfa1530
@alfaalfa1530 2 года назад
excente amigo justo cuando lo necesitaba tengo una tarjeta de cotrol que hice, para abrir y cerrar un porton todo funciona bien pero tenia problemas si necesitaba poner un tiempo asi me quedo perfecto muchas gracias
@cefuve
@cefuve 2 года назад
Excelente! Saludos.
@edwardtro1
@edwardtro1 2 года назад
De vuelta por aquí y como siempre sus clases son magistrales gracias.
@cefuve
@cefuve 2 года назад
Gracias Ed, saludos.
@robertocasenaves
@robertocasenaves 6 месяцев назад
Muchas gracias por tu tiempo y forma de enseñar. Un abrazo
@retrieval-oi6kj
@retrieval-oi6kj 11 месяцев назад
eres un mago, genial 😄
@cefuve
@cefuve 11 месяцев назад
Muchas gracias! saludos.
@ayurrln
@ayurrln 3 года назад
gracias por la explicacion, abrazo
@robertodominguez9554
@robertodominguez9554 3 года назад
Eres lo máximo explicando profe, saludos
@cefuve
@cefuve 3 года назад
Gracias Roberto, saludos!
@eduardosanchez4732
@eduardosanchez4732 3 года назад
Muchas gracias por dedicar tu tiempo para la educación y temas geniales como este.
@cefuve
@cefuve 3 года назад
Gracias por tu comentario Eduardo, Saludos!
@cesarleon3856
@cesarleon3856 3 года назад
Genial!! Muy bien explicado. Pensé que iba a ser una chapa pero se me pasó volando. Muy ameno, gracias
@fmazariegosgt
@fmazariegosgt Год назад
Estoy muy agradecido por tan buenas clases, he resuelto un problema con mi programa, gracias a esta clase magistral. Soy novato en Arduino, pero he aprendido mucho con estos videos de usted, querido amigo.
@cefuve
@cefuve Год назад
Gracias por tu comentario Luis, saludos!
@joseccorihuamantica5930
@joseccorihuamantica5930 3 года назад
Bien ms eres un capo gracias por las enseñanzas
@guillermoestebantorresrenn3173
@guillermoestebantorresrenn3173 3 года назад
Maravilloso!!!!!!!!!!!!!! muchas gracias por tu dedicación y este fabuloso truco!
@cefuve
@cefuve 3 года назад
No hay de que Guillermo, gracias por comentar. Saludos!
@gilbertovidal3647
@gilbertovidal3647 3 года назад
Hola Cefuve, intersante la tecnica, y recreativo, no obstante aclaro, comentas que ESTA ES LA BASE DE LA MULTITAREA, lo cual no es asi. Aclaro para que otros entiendan mejor, que la multitarea es la ejecucion de diversos procesos en PARALELO, donde pueden compartir registros de memoria. Para esto se usan las Hilaturas los Threads. Cada hilo es independiente y ejecu un proceso independiente SIMULTANEAMENTE a otro hilo. Saludos excelente dia.
@cefuve
@cefuve 3 года назад
Gracias por tu aclaración Gilberto. Como bien dices, en los procesadores modernos con múltiples núcleos, es posible tener un multitasking real (siempre y cuando los recursos externos a la CPU sean suficientes). Quizás debí haber especificado que hablaba pensando en los arduinos más básicos, con microcontroladores de 1 núcleo, creí que se entendería con el contexto del video. Que tengas un buen día, saludos!
@diegohuaman5579
@diegohuaman5579 3 года назад
Muy buena explicación asi cualquiera entiende !! Sigue subiendo vídeos de ese tipo!
@thepower5134
@thepower5134 2 года назад
la esta negando compa // !!
@GiuseppeDeLilla
@GiuseppeDeLilla 9 месяцев назад
Interesante, genial y sin utilizar el millis Felicitaciones. No se me habia ocurrido
@AlexisGonzalez-rd3gu
@AlexisGonzalez-rd3gu 3 года назад
Muchas gracias por sus vídeos, son los mejores que he visto y muy bien explicados. Debería tomar en cuenta publicar más seguido y para hacer más grande su canal. Saludos.
@cefuve
@cefuve 3 года назад
Gracias Alex, el tiempo, el bendito tiempo... Saludos!
@siku3350
@siku3350 3 года назад
Excelente tuto y explicación, claro y conciso. Sigo, poco a poco, ampliando conocimientos en este estupendo canal. Muchas gracias y un saludo!!
@cefuve
@cefuve 3 года назад
Genial, un gran saludo!
@arduindustial2838
@arduindustial2838 3 года назад
Excelente video cesar!!!! aprendí más de la lógica de programación , realmente es muy gratificante tenerte como profesor !!!!, las alternativas a millis, están buenas , abrazo grande 😊 y esperamos el de millis !!
@kevinvq968
@kevinvq968 2 года назад
acabo de hacer el progra inicial de un proyecto de balanza dinamica con esto, genial me sirvio de maravilla, ni el millis hahaha
@cefuve
@cefuve 2 года назад
Buenísimo! a veces no hay que complicarse tanto, con cosas sencillas basta 👌
@carlosliriano435
@carlosliriano435 3 года назад
Muy buen video, y la explicación a un nivel superior, mil gracias por compartir tantos conocimientos con los demás , saludos desde Republica. Dominicana.
@cefuve
@cefuve 3 года назад
Gracias por comentar Carlos, saludos!
@tamayoguillermo
@tamayoguillermo 3 года назад
Empecé a ver un par de tus videos, son muy buenos, muy prácticos para los que estamos comenzando, gracias. Un abrazo, desde Cali, Colombia, eres excelente docente. Feliz día Guillermo Tamayo Vargas
@cefuve
@cefuve 3 года назад
Muchas gracias Guillermo, saludos!
@jorgeluiss4096
@jorgeluiss4096 2 года назад
Muuuuy Bueeeeno! Excelente idea lo del contador y achicar el tiempo del delay! Nunca lo había visto! Es una idea tan simple como genial! Me gusta mucho tu forma de explicar . Estoy viendo todos tus videos, y refrescando cosas de técnicas digitales que vi en el colegio (mapas de Karnaugh) en 1989. Te mando un abrazo gigante desde Buenos Aires. LIKE y SUSCRIPCIÓN! PD: me gustó el semáforo con compuertas....ya había olvidado el poder del álgebra de Boole. Es genial para comprender lo que vino después.
@cefuve
@cefuve 2 года назад
Muchas gracias Jorge, es un mundo increíble y apasionante, gracias por ver mis videos. Saludos!
@gerleydavid8910
@gerleydavid8910 2 года назад
ufffff un nuevo seguidor , por que siempre tengo ese problema que el delay no me deja controlar el resto dle codigo, excelente logica , espero poder implementar ese multitask con delay en algo mas grande
@Juan-ym6lu
@Juan-ym6lu 2 года назад
Me voy a volver majara,jajaja,saludos desde España
@cefuve
@cefuve 2 года назад
Esa es la idea jaja
@salvadorhanccorivera6254
@salvadorhanccorivera6254 3 года назад
GRACIAS!!!!!!!!
@jorgegomez6814
@jorgegomez6814 3 года назад
Hola Cesar tengo ya elaborados algunos proyectos en arduino y he usado millis para tareas simultaneas pero, esta idea es genial y mucho mas sencilla creo que voy a ponerla en uso muy pronto gracias por tu tiempo .
@cefuve
@cefuve 3 года назад
Genial Jorge, todo va a depender de la complejidad del proyecto, a veces no es necesario calentarse tanto la cabeza y con código super sencillo se pueden llevar a cabo los proyectos. Cuéntanos cómo te va con esta técnica, saludos!
@alvaroggarcia
@alvaroggarcia 3 года назад
saludos profe!! GRACIAS!
@cefuve
@cefuve 3 года назад
Saludos Alvaro!
@Valhalla_Code
@Valhalla_Code 3 года назад
No era lo que me esperaba pero me ayudo a mejorar la lectura del bendito botón en mi código. Muchas gracias.
@cefuve
@cefuve 3 года назад
No hay de que ¿Qué esperabas? Saludos!
@Valhalla_Code
@Valhalla_Code 3 года назад
@@cefuve algo así como sustituir un delay de 5 min. y que me permita salir de ese delay en cualquier momento. Aunque yo aplique un contador y un delay de 1 seg por vuelta pero su idea es mejor.
@cefuve
@cefuve 3 года назад
Algo así como un delay que no bloquee pero cumpla su función... No suena tan descabellado (como yo), le voy a dar unas vueltas. Gracias por responder, saludos!
@raulangelmerigo3476
@raulangelmerigo3476 3 года назад
hHola maestro muy buenas noches, desde San Nicolás, Argentina te saludo!! es extremadamente didáctico tu sistema de enseñanza, MUY bueno!! llevo varios meses incursionando en esto y he visto de tooodooo jaja!! estoy haciendo un trabajo para introducir Arduino a la empresa para la cual trabajo, si bien mi hijo me pone en alerta debido a la fragilidad de los componentes y el ambiente agresivo donde lo pretendo instalar sigo adelante. Tengo una máquina a la que quiero controlar varios puntos de temperatura y presentarlos, mediante instrumentos, a cada uno de ellos , pero TAMBIÉN marcaré con led de 3 colores, distintos rangos, esto es, =21 y =25 pero < 28 ese mismo led amarillo debe comenzar a parpadear y a su vez sonar buzer ( contador1 para ambos), luego si excede >=28º debe encender led rojo y actuar otro tipo de alarma también intermitente. hasta aquí.. todo bien!! pregunta: debo generar para cada punto de medición otros dos contadores o hay alguna técnica .. truco que se pueda hacer?
@cefuve
@cefuve 3 года назад
Hola Raul, muchas gracias por tu comentario. Respecto a tu duda, podría decirte que hay un sin fin de formas de programarlo. Según lo que tu me dices, sería: - Un contador para cada led intermitente y un if común, para la luz verde. Por otro lado, si ambos led (amarillo y rojo) parpadean al mismo tiempo, podría usar un contador para los dos, y a parte una variable auxiliar para cada led, que habilite o deshabilite el parpadeo, algo como: bool en_Yellow = false; bool en_Red = false; if(count >= 100){ if(en_Yellow == true){ //parpadear led amarillo } if(en_Red == true){ //parpadear led rojo } } Espero se haya entendido y sea de utilidad para ti. Saludos!
@raulangelmerigo3476
@raulangelmerigo3476 3 года назад
@@cefuve hola muy buenas noches, q interesante se ha convertido al ver q me hayas respondido en forma inmediata!!! así da gusto estudiar!!! al ser varios puntos diferentes de toma de temperatura y a cada punto se lo condiciona en 3 niveles lo q creo es q debería tener tantos contadores como puntos de muestreo para poder considerarlos (y actúen) independientes. puedo apagar el amarillo al pasar al último nivel de riesgo (rojo) y asì utilizar 1 sólo contador para cada punto. ahora, mi duda està en la puesta a CERO del contador, si la falla se da en un determinado momento en varios puntos a la vez el contador global se mantiene separado de cada contador utilizado en cada tramo del programa dado como Temp1, Temp2, Temp3, Temp4 ? seguirè estudiando para ver alguna diferencia y mañana posteo nuevamente. y busco la forma de pegar una parte del programa para que sea corregido en linea si lo apruebas!!
@cefuve
@cefuve 3 года назад
Hola Raúl, siempre intento ir respondiendo de inmediato, para que no se me junten los comentarios :) Sería ideal ver el código que tienes para ver más o menos las intenciones, aunque con esta última explicación creo que ya entendí mejor de que se trata... Puedes publicar tu código en mi página paste.cefuve.com y compartir el link resultante para revisar tu código. Saludos!
@DavidFlores-uu6dy
@DavidFlores-uu6dy 3 года назад
Excente
@venturajaramillov.9183
@venturajaramillov.9183 3 года назад
copie el código y tenia varios errores. Y fue magnifico porque al resolverlos fue de beneficio la experiencia Gracias por tu dedicación
@cefuve
@cefuve 3 года назад
Enhorabuena! saludos.
@jmch1369
@jmch1369 2 года назад
Gracias ,,,
@chavarj8
@chavarj8 Год назад
Bien explicado. Buen truco. También se podría usar interrupciones por hardware, interrupciones por tiempo y millis. Gracias
@cefuve
@cefuve Год назад
Así es Julian, gracias por comentarlo. Tengo un video haciéndolo con millis() y me faltaría el video haciéndolo con interrupciones. Saludos!
@luisfernandoalvarez5500
@luisfernandoalvarez5500 2 года назад
A mí me funciona excelente. Uso el MPC2515.
@cefuve
@cefuve 2 года назад
Gracias por la acotación, podrías decirnos para que lo usas? o si lo has usado en algún proyecto?
@aaronzarate8108
@aaronzarate8108 3 года назад
En serio deberias crear cursos para vender, tus enseñanzas son super faciles de entender, primer tutorial de muktitasking que logro entender jajajaja
@cefuve
@cefuve 3 года назад
Genial!! gracias por comentarlo, saludos.
@albertogallego1711
@albertogallego1711 3 года назад
Cesar muchas gracias por tus tutoriales amigo nesecito crear el codigo para multi relé e buscado por varias paginas y no me da siempre me sale en error me podrias ayudar con eso estoy apenas aprendiendo con tus tutoriales pero apenas voy con la lecion 7.2 Muchas gracias
@cefuve
@cefuve 3 года назад
Hola @@albertogallego1711, como te puedo ayudar?
2 года назад
👋👋
@renejorgealonso4681
@renejorgealonso4681 3 года назад
Excelente explicación como siempre, podrias realizar un ejemplo de como usar una pantalla TFT ST7789 PARA ESCRIBIR UN MENSAJE Y DARLE OTRA APLICACION Muchas gracias.
@cefuve
@cefuve 3 года назад
Hola Rene, lo agregaré a la "lista de deseos". Saludos!
@todopic
@todopic 2 года назад
Excelente video amigo, felicitaciones!!! Ahora una pregunta, existe alguna forma para poder ver cuando una esta escribiendo una instruccion la sintaxis de esta? , es decir, si escribo por ejemplo pin me aparezca todas la instrucciones que comiencen con pin? Gracias Mi version del arduino es la 1.8.19, corriendo en win 7.
@cefuve
@cefuve 2 года назад
Hola, en programación esa función se llama intellisense, en las versiones 1.x de Arduino no lo he visto. Creo que en las versiones 2.x si incorporan esta función que se puede habilitar o deshabilitar desde las preferencias (Quick Suggestion). En visual studio code desconozco si la tendrá.
@GeraMF
@GeraMF 3 года назад
por máquinas de estados, y transición de estados parecido al diagrama Grafcet
@jonathansoriano4962
@jonathansoriano4962 3 года назад
Lo máximo tus videos, esto me ayudó mucho, unas consultas, como seria si cada. Vez que presiono el pulsador me aumente en 1 seg. El tiempo de oscilaciones del led? En otro video vi también la salida binaria, también podría ver el tiempo en el que está parpadeando en binario?. Buen aporte👍
@cefuve
@cefuve 3 года назад
Hola Jonathan, para ir aumentando de a 1 segundo tendrías que hacer una variable extra que almacene la temporización, ejemplo: int midelay = 100; if(lectura == 0){ midelay = midelay + 100; } if(count == midelay){ //parpadear el led } Lo del binario no entendí a que te refieres. Saludos!
@jonathansoriano4962
@jonathansoriano4962 3 года назад
@@cefuve voy a probarlo y te cuento. Gracias por la respuesta, lo del binario mediante un decodificador era para mostrar en un display el tiempo que se le esta dando al temporizador.
@cefuve
@cefuve 3 года назад
Ah, claro, con un 7447 puedes mostrar el tiempo, en este caso sería midelay/100 para que te lo muestre en segundos... Saludos!
@YouAreHereX
@YouAreHereX 3 года назад
Muchas gracias por su video. Yo he usado protothread en Arduino para hacer las “multitarea” y, me resulta mucho más atractiva salvo que no le entiendo del todo a ese tema. Me pudieras ayudar con algunos ejemplos en ese tema del protothread? Te agradezco de antemano. Saludos cordiales
@cefuve
@cefuve 3 года назад
Hola Gustavo, primero gracias por comentar. No conocía esa librería, le estuve "echando un ojo" y no es tan sencilla, ya que está hecha puramente en lenguaje C y usa una programación poco común... Se me hace que debe ser muy eficiente y ordenada. Aquí hay algunos ejemplos: roboticsbackend.com/arduino-protothreads-tutorial/ Se me hacen muy similares a la técnica que mostré en este video... Nuevamente gracias por comentar, saludos!
@AFSMG
@AFSMG 2 года назад
Hola Cesar, aplicándome viendo todos tus videos . Esta es una solución que esta muy bien y es muy clara. Pero quizás podrías hacerlo con interrupciones. Que creo es parecido a hacerlo con milis. Pero en general a mi me gusta toda la parte del programa que requiera de tiempo, hacerlo dentro de una interrupción de un timer. Ahí hago las lecturas de señales externas y las dejo en variables que luego son leídas en el loop. Solo que en esas variables, ya están filtradas . Lo que tu haces aquí con los CONT, pues de la misma manera se hace dentro de la interrupción y con eso controlas el tiempo que necesitas para cada cosa. Por ejemplo programas un interrupción cada 10 milisegundos y un contador controla el tiempo de encendido apagado de un led o la lectura de un interruptor. Igual a como lo haces solo que fuera del loop. Una pregunta: como puedo hacer una tabla con funciones y luego a través de la tabla ejecutar estas funciones? Muchas gracias. Un saludo
@cefuve
@cefuve 2 года назад
Así es Toni, con interrupciones se aliviana la carga de pensar mucho la lógica de programación, todavía no llego hasta ahí, pero sin duda será parte de un video... Respecto a las tablas de funciones, no se a que te refieres específicamente, me podrías dar más contexto? Saludos!
@AFSMG
@AFSMG 2 года назад
@@cefuve por email te lo comento
@leoharvey4112
@leoharvey4112 3 года назад
Muy bien explicado, pero tengo una pregunta...Cual es el maxmo valor con la que puedo usar delay(?)....?
@cefuve
@cefuve 3 года назад
Hola Leo, va a depender mucho de la aplicación, pero si tuviera que dar un número, diría que 100 ms podría ser un máximo, para aplicaciones muy simples... Saludos!
@reimundolopez1198
@reimundolopez1198 2 года назад
La variable, "estado led" que está leyendo con "digital read", está leyendo el estado del pin 2? o el estado del pin A5? Por qué los 2 leds utilizan la misma variable?
@cefuve
@cefuve 2 года назад
Si te fijas, en cada count le pongo int estadoLED, esto hace que la variable se cree (resetee) cada vez que entro a los if. No habría ningún problema si quieres poner estadoLED como variable global, porque finalmente para lo único que necesito esta variable es para saber si el led está encendido o apagado, e inmediatamente le reasigno el valor contrario. Saludos!
@isaaccarrillo5391
@isaaccarrillo5391 3 года назад
devolada llegue
@cefuve
@cefuve 3 года назад
Así ¿Al vuelo?
@juanpaezimbernon5127
@juanpaezimbernon5127 Год назад
Hola, buenas tardes me gustaría que me ayudarás en una duda que tengo con el tema de delay y multitarea, soy nuevo y autodidacta en arduino así que no tengo muchos conocimientos, estoy haciendo un programa en el que dentro de el hay una función que es el temporizador de una salida, es decir cuando pulso el botón me pone una salida a uno y con un delay le doy un tiempo de retardo para que quede a 1 un tiempo, que pasa, que me gustaría que si le volviera a pulsar antes de que termine ese delay la temporización se pusiera otra vez desde el principio, pero no me deja hacer esa función, crees que la multitarea valdría para este caso, muchas gracias
@cefuve
@cefuve Год назад
Hola, tendrías que estampar el tiempo del instante en que presionas el botón en una variable. Algo como: if(botón == HIGH) time_stamp = millis(); if(millis >= time_stamp + 5000){ //acción después de 5 segundos } Asi, mientras presionas el botón, se actualizará el tiempo y no entrará al segundo if. Lo hará cuando sueltes el botón. Saludos
@juanpaezimbernon5127
@juanpaezimbernon5127 Год назад
@@cefuve muchas gracias, lo probaré y te iré diciendo, Saludos
@martinyanez5851
@martinyanez5851 Год назад
hola buenas noches espero que se encuentre bien descansando , quisiera saber si usted me podría resolver esta duda que estado implementado en un proyecto , para contextualizarlo este proyecto se basa en lo siguiente, al soplar en un sensor de sonido KY-038 este me prendera un led (que antes estaba apagado y que prendimos con un !) y esto hará que active un ciclo for de muchos más leds generando un efecto bonito(el propósito del led es usarlo para prender el ciclo for y que cuando funcione uno el otro también) que durara indefinidamente hasta que yo vuelva a soplar en el sensor en consecuencia el led se apagara y el ciclo acabara , la duda esta que después de prenderse el led y el ciclo for con los demás leds yo soplo el sensor nuevamente para apagarlo pero no se apaga ni el led principal ni los demás que van con el for ,que me recomendaría hacer ? no queriendo hacer mucha molestia aquí subo el código que e estado usando int MIC = 2; // D0 de modulo a pin 2 int LED = 3; // anodo de LED a pin 3 int VALOR; // variable para almacenar valor de D0 int ESTADO; // variable para almacenar estado del LED int i; void setup(){ pinMode(MIC, INPUT); // pin 2 como entrada pinMode(LED, OUTPUT); // pin 3 como salida } void loop(){ VALOR = digitalRead(MIC); // obtiene valor de D0 if (VALOR == HIGH){ // si D0 tiene un valor alto ESTADO = digitalRead(LED); // almacena estado del led (encendido o apagado) digitalWrite(LED, !ESTADO); // escribe en LED el valor opuesto al que tenia // VALOR = !VALOR; aquí? while(!ESTADO){ // o mejor poner LED? //VALOR = !VALOR; aquí? for( i =11; i>=6; i--){ digitalWrite(i, HIGH); delay(200); } for( i =6; i
@cefuve
@cefuve Год назад
Hola Martín, por lo que veo entras al while con la variable ESTADO, pero dentro del mismo ya no vuelves a modificar la variable, solo modifica VALOR...
@martinyanez5851
@martinyanez5851 Год назад
@@cefuve ahhh ya entonces voy corroborarlo modificando ESTADO , muchas gracias por ayudarme
@cefuve
@cefuve Год назад
Claro, o pones VALOR en la condición del while... Me avisas como te va.
@martinyanez5851
@martinyanez5851 Год назад
@@cefuve Hola buenas noches espero que se encuentre bien quisiera informarle que estoy luchando linea a linea con este código y quisiera saber que acción nueva podría tomar ya que probé cambiando al final el valor del estado (prendia y no apagaba e incluso detectando la nueva señal del sensor)probé con nuevas variables tipo bool para ser más exactos en true o false pero no se si quedaron bien formuladas ya que caía en lo mismo y quisiera saber que estará errado obviamente respetando su tiempo y a sabienda que usted tampoco es un adivino o un mago, el código es este el "ultimo" int MIC = 2; int LED = 3; int VALOR; bool ESTADO; int i; void setup(){ pinMode(MIC, INPUT); pinMode(LED, OUTPUT); Serial.begin(9600); } void loop(){ VALOR = digitalRead(MIC); if( VALOR == HIGH){ ESTADO=digitalRead(LED); digitalWrite(LED,!ESTADO); while(!ESTADO){ for( i =11; i>=6; i--){ digitalWrite(i, HIGH); delay(200); } for( i =6; i
@cefuve
@cefuve Год назад
Según lo que entiendo, tendría que ser algo así: VALOR = digitalRead(MIC); if( VALOR == HIGH){ ESTADO = digitalRead(LED); digitalWrite(LED, !ESTADO); while(VALOR == HIGH){ //efecto de luces VALOR = digitalRead(MIC); if( VALOR == LOW ) VALOR = HIGH; if( VALOR == HIGH) VALOR = LOW; } } Preocúpate de calibrar bien el sensor para que solo entregué un HIGH cuando lo necesites...
@ernestopelayo1215
@ernestopelayo1215 3 года назад
Podría Funcionar para hacer unas Discrecionales/Intermitentes para auto??
@cefuve
@cefuve 3 года назад
Para lo que sea, es cosa de usar la imaginación. Saludos!
@vangeziyorum9725
@vangeziyorum9725 2 года назад
I made an ultrasonic height and weight measuring device. I wrote the codes with Arduino and arduino UNO. Normally everything works fine. But sometimes after waiting for an hour or two, I take a measurement, the device is measuring, it shows the numbers on the screen, but it does not print the result to the thermal printer. The numbers stay on the screen, then the device is reset with whatchdog. This is starting to get annoying. can you help me with this
@cefuve
@cefuve 2 года назад
You can paste your code on my page paste.cefuve.com and post to me the url... Do you try it with the interrupt? mm because, if it shows the numbers on the screen but no print on printer, the problem isn't the button, is the printer o something between printer and arduino...
@vangeziyorum9725
@vangeziyorum9725 2 года назад
@@cefuve measureHeight(); measureWeight(); delay(1000); measureHeight(); measureWeight(); delay(1000); measureHeight(); measureWeight(); delay(1000); turnOffDisplays(); delay(500); displayHeight(); displayWeight(); delay(500); turnOffDisplays(); delay(500); displayHeight(); displayWeight(); delay(500); turnOffDisplays(); delay(500); displayHeight(); displayWeight(); previousTimeButton=millis(); do { currentTimeButton=millis(); if (currentTimeButton-previousTimeButton>=buttonInterval) { //5000ms passed printtimeout=true; break; } } while(digitalRead(printPin)==HIGH); //It's time to press the button if (printtimeout==false) { print(); } printtimeout=false; // wdt_reset(); }
@cefuve
@cefuve 2 года назад
@@vangeziyorum9725 cefuve.com/paste/paste.php?id=92
@pepopepez105
@pepopepez105 3 года назад
necesito un video con tu claridad sobre el control PID
@cefuve
@cefuve 3 года назад
Hola pepo, lo estudiaré para ver que resulta... Saludos!
@pepopepez105
@pepopepez105 3 года назад
@@cefuve a ver si asi lo entiendo un poco xD
@cefuve
@cefuve 3 года назад
X2
@pepopepez105
@pepopepez105 3 года назад
@@cefuve yo soy de estirar mas el brazo que la manga, acabo de enterarme que el LQR parece que es mejor
@cefuve
@cefuve 3 года назад
Es que finalmente, la automatización, como materia, se preocupa principalmente por la eficiencia del proceso (no solo controlarlo) y ahí es donde meten un montón de teoría matemática orientada a la reducción del error... Gracias por contarme de ese método, lo voy a estudiar también. Saludos!
@benjaminparedesr20
@benjaminparedesr20 3 года назад
Filete el vídeo. Yo estoy con un proyecto de barreras de acceso para vehículos y precisamente tengo un problema con la.programacion, como podría contactarte para una ayudita
@cefuve
@cefuve 3 года назад
Hola Benjamín, en mi web están todas las formas de contacto que tengo... www.cefuve.com Saludos!
@fhisdi3762
@fhisdi3762 3 года назад
hola cefuve como estas ?. sabes quería consultarte algo y no se si quieres hacer un vídeo que el proyecto me parece interesante , me pidieron un código , para una válvula hall que indique que si el agua pasa por mas de un tiempo especifica active una salida ,o una alarma o relay , no se ni como empezar , es decir por poner un ejemplo ponte que en tu tanque de agua se bota a veces , entonces tu colocas en la tubería una válvula que te diga cuanta agua pasa y si pasa mas tiempo del programado o litros , suena una alarma hasta que tu vallas y le des a un botón y apagues , lo que no logro hacer es que el código reinicie , es decir si funciona bien en la primera llenada del tanque , la suma que lleva de litros no la borra si no que la suma a la otra llenada y entonces suena la alarma por que va sumando y nunca vuelve a cero si todo sale bien....
@cefuve
@cefuve 3 года назад
Hola, podrías pegar tu código en mi página paste.cefuve.com para revisarlo, me compartes el link que te da. Saludos!
@fhisdi3762
@fhisdi3762 3 года назад
@@cefuve ok cuando tenga un chance te mando lo que conseguí por internet por que el código para mi es algo muy estresante
@fhisdi3762
@fhisdi3762 3 года назад
@@cefuve hola cefuve te coloque el código y mi correo en la pagina que me dijiste espero te comuniques conmigo de verdad muchas gracias .
@cefuve
@cefuve 3 года назад
@@fhisdi3762 Hola, y cual es el link que te dio la página??
@cefuve
@cefuve 3 года назад
@@fhisdi3762 Aquí lo encontré... cefuve.com/paste/paste.php?id=12
@ruizvial
@ruizvial 24 дня назад
buena, estimado profesor no se dice reciclar codigo, sino reutilizar codigo.
@AngelGarcia-lg9oi
@AngelGarcia-lg9oi 2 года назад
como puedo leer entradas analogicas en "simultaneo"? abra un videotutorial de eso
@cefuve
@cefuve 2 года назад
Hola, no entiendo a que te refieres... Pones un lectura bajo la otra. A no ser que mientras tanto quieras hacer otras funciones, es así?
@profejavi9854
@profejavi9854 2 года назад
como puedo seguir recibiendo la lectura de un sensor ultrasónico después de presionar un botón.
@cefuve
@cefuve 2 года назад
Hola, va a depender del código, pero no deberías usar delay grandes. También podrías averiguar sobre las interrupciones, y en ellas leer el sensor. Saludos!
@luisfernandoalvarez5500
@luisfernandoalvarez5500 2 года назад
Ya manejas CAN BUS con ARDUINO?
@cefuve
@cefuve 2 года назад
Hola Luis, aún no trabajo con protocolos industriales. Saludos.
@MegaY0p
@MegaY0p 2 года назад
hola... la verdad no me gusta programar porque se tiene que saber muchos temas para crear un programa con cierta complejidad... no tengo nada que criticar de tus videos porque enseñas excelente, quería preguntarte de algún libro que hable de este tema... no con lenguaje c sino con Arduino que es lo que voy a utilizar... no quiero proyectos... quiero aprender bien todas las funciones... Me planteaba un programa donde al inicio del "juego" el usuario defina una cantidad de variables (habiendo un máximo y mínimo) por medio de un botón y de allí empiece una cuenta regresiva, el usuario debe decidir entre 1 variable... en ese momento Arduino estaría variando la verdadera entre el numero de variables elegidas al principio... el programa termina cuando el usuario se decide o la cuenta regresiva haya terminado. Quiero hacerlo como proyecto de fin de año... no sabría decir que utilidad le daría, pero para mi entender creo que de verdad es un reto
@cefuve
@cefuve 2 года назад
Hola Diego, según lo que me dices, más que aprenderse las funciones o como funciona arduino, necesitas aprender la lógica de programación (que es lo que intento enseñar en este curso). Lo ideal es ver muchos programas, como están hechos y que funciones cumplen, no podría nombrarte un libro, sólo practica, practica y practica. Saludos!
@samueltorres6903
@samueltorres6903 2 года назад
De esta manera el tiempo no es real, ya que se suman los "delay" al tiempo de ejecución de cada instrucción, que aunque son tiempo en micro segundos , en programas que deben tener una precisión de tiempo, esto puede generar retrasos o adelantos en tiempo que despues se notaran sin duda.
@cefuve
@cefuve 2 года назад
Así es Samuel, está técnica debe usarse solo si se puede prescindir de la precisión de tiempo, en caso contrario, ya no se podría aplicar. Gracias por tu comentario, saludos.
@guillermoestebantorresrenn3173
@guillermoestebantorresrenn3173 3 года назад
Que hay de las interrupciones?
@cefuve
@cefuve 3 года назад
Son ideales, estoy partiendo por lo básico. Lamentablemente el arduino uno tiene pocas entradas con interrupción...
@guillermoestebantorresrenn3173
@guillermoestebantorresrenn3173 3 года назад
@@cefuve Esperaré con ansias esa explicación maestro. Abrazos
@reimundolopez1198
@reimundolopez1198 2 года назад
Eso no se puede llamar multiplexado en vez de llamarlo multitarea?
@cefuve
@cefuve 2 года назад
El multiplexado distribuye varias salidas en una sola, por ende estaría un poco alejado de lo que se hace en el multitarea, pero una cosa es seguro, dentro de los microcontroladores hay multiplexores. Saludos!
@Aprendeingles_gaby
@Aprendeingles_gaby 8 месяцев назад
Se ve borroso, mejorar solo la resolución del video.
@cefuve
@cefuve 8 месяцев назад
Hola, en que parte? Yo lo veo bien, está grabado en full HD... Quizás le tienes una resolución de reproducción más baja. Como la letra es pequeña, en resoluciones más bajas (360p) se ve borroso. Saludos!
@miguelrivera8618
@miguelrivera8618 2 года назад
Que asco de presentacion no se ven ni letras ni loss números. Yio te has lucido
Далее
Multitasking usando millis() + Práctica - Arduino
2:05:03
Multitasking en Arduino - Manejando el tiempo
25:48
Просмотров 31 тыс.
Телеграмм-Колян Карелия #юмор
00:10
Smart Sigma Kid #funny #sigma #comedy
00:26
Просмотров 9 млн
Memoria EEPROM Arduino - Guarda Cualquier Cosa
13:15
Просмотров 29 тыс.
#2.1 Arduino Course - Practice: Basics Instruccions
17:45
#WeekendProjects MENU ENCODER con Arduino
1:20:42
Просмотров 31 тыс.
Телеграмм-Колян Карелия #юмор
00:10