la ultima linea de if se puede solucionar usando los else, se coloca una accion en un if y en el else se coloca otro if y así hasta el último donde hará la acción si no es igual a ninguna de las opciones. así no es necesario colocar un ultimo if así
Profe,muchas gracias por tan buena instrucción, le saluda Rubén Espinoza desde Perú , me gustaría preguntarte si es posible trabajar con varios switch case (por ejemplo tres paquetes de cases) que se ejecuten alternadamente según sea el requerimiento
Hola Rubén, Nunca se me dio el caso de programar algo de esa forma, y la verdad es que no lo he probado, pero no tiene porqué haber problema en tener varios switch anidados uno dentro de otro, siempre que se respete bien la nomenclatura del switch que está dentro del Case del otro switch. Programar de esa forma creo que hace más difícil la comprensión o legibilidad del programa, pero si te resulta más cómodo adelante. Un saludo Rubén.
@@Electroduino gracias profe por darse el tiempo de responderme, si me diera el honor de una conversación podríamos compartir algunas ideas WhatsApp +51 935 658 039
Hola Amigo , podrías decirme como usar esto en función de un menú, es decir que después de ejecutar el case seleccionado vuelva a solicitar una opción por consola al usuario y así sucesivamente y no se quede solo en el case seleccionado inicialmente ?? seria de gran ayuda , gracias, un saludo desde Colombia.
Hola Jeyson, Puedes poner el menú de selección con el switch en una función y cada opción del case llamé a otra función, y al terminar esta, llame a la función del Menú. por ejemplo.
Buenos días disculpe, switch case repite las instrucciones por cada ciclo del void loop? por ejemplo si quiero mandar un mensaje cuando esté en case 1 si al siguiente ciclo del void loop mi condición case 1 sigue igual, se vuelve a mandar el mensaje? o ya no se manda porque ya se ejecutó una vez la instrucción? Gracias de antemano
Hola Fernando, siempre que se evalúe la función SWITCH ejecutará el CASE correspondiente al valor de la variable, eso quiere decir que cuando se repita el loop volverá a enviarte el mensaje siempre que la variable siga a 1, para que no haga eso, dentro del CASE 1, al finalizar o después de enviarte el mensaje, pon la variable a 0. Si no puedes cambiar el estado de esa variable porque es critica en tu programa, crea una variable nueva que sea por ejemplo mensaje_enviado, y esa es la que evalúas antes de enviar el mensaje y la que cambias a 0 cuando ya lo ha enviado. Espero que te de una idea, saludos.
fíjate en la estructura de switch y case del vídeo por si te saltaste algo. Las variables siempre hay que declararlas, tanto si usas las instrucciones if como con switch.
hola buenas esta super el video, tengo una duda como puedo hacer mediante casos abrir carpetas de una micro sd mediante un dfplayer mini ojala me pudiese ayudar
Hola Ignacio, no se muy bien como ayudarte, te recomiendo esta página que he encontrado sobre el dfplayer mini (www.playbyte.es/electronica/arduino/dfplayer-mini-mp3), donde hay ejemplos de la librería de control y muestran los comandos para el Play pause, cambiar de canción, seleccionar la carpeta a reproducir, etc. Espero que te sirva de ayuda.
5 ปีที่แล้ว
¿para que necesitas usar el "case"? la instrucción switch es algo del lenguaje básico, en cambio, leer el contenido de una SD ya está a mas alto nivel y depende en mucho del tipo de librería que uses para hacer dicha lectura.
Hola saludos desde colombia,muchas gracias por el.video, te hago una pregunta, si tengo.un codigo que mediante un pulsador.activa un led durante 15 segundos y luego se apaga, como puedo interrumpir esa instruccion de manera permanente con el mismo pulsador?, lo intente evaluando el.estado del.pulsador (pulsador=1-pulsador), pero se.queda encendido, apreciaria tus comentarios,saludos.
Hola Julian, yo creo que tienes que evaluar que el led está encendido cuando pulsas el pulsador para que puedas ejecutar el código que lo apaga. Si no esta encendido el led, se ejecuta el código de temporización de 15 seg (como haces ahora), si está encendido el led ejecuta el código de apagado. Espero que te sirva.
@@Electroduino muchas gracias por tu respuesta, lo hare como me lo.dices, y en vez de poner un delay de 15 seg, lo voy a hacer con la funcion millis, agradezco mucho tu tiempo, saludos!!!
Hola, espero te encuentres bien, realice un boceto en base a este vídeo, se trata de la lectura de un sensor por medio de un pin Analogico, agregando un pulsador para cambiar la unidad del sensor (pase de psi a bar). El IDE lo compila y sube sin errores, pero al visualizarlo parpadea intercalando ambas lecturas. Podrás darme una mano?
Hola buenas... lo pudo solucionar? En caso contrario pudiese incorporarme su codigo para echar una ojeada... Le recomiendo en estos casos simplemente añadir una conversión, desconozco las proporciones de presión, pero hacia algo similar con la temperatura, por ejemplo pasar de °C a °F (1.8 * varsensor +32) o a Kelvin (varsensor + 273.15) y viceversa... puede encontrar dicha formula y aplicarla a su lectura, luego imprimir ese resultado en lo que desee (monitor serial, display de 7 segmentos, pantalla LCD, pantalla OLED, niveles a través de LEDS, etc) Saludos
Hola Gabriel, debe funcionar con SWITCH anidados, es decir un SWITCH dentro de un CASE de otro SWITCH, pero tienes que tener mucho cuidado de ir poniendo BREAK al final de cada CASE para que no se vuelva inestable el conjunto de condiciones generada.
Hola buenas, me podrías dar un contacto para poder hablar contigo? Tengo dudas sobre un proyecto que estoy haciendo y quería saber si igual tú sabrías la solución
no logro entender como elegir entre dos sketch o programas diferentes para un arduino , quiero elegir entre un control remoto por bluetooth para activar 16 reles o un secuenciador , alguien me ayuda ???
Muy buenos videos lo que aun no logro es aser Que mi case 1,2,3,4: empiese a funcionar con un enter si alguien me lo pudiera explicar le estaria muy agradecido
Disculpe , quisieta saber si el switch se puede utilizar en sensores de fotoresistivos o infrarojos ... Estuve haciendo algo como esto Primero declare la variable Int infrarojo; Switch (infrarojo){ Case
Profe en el ejemplo que pone, los IF que ejecutan una sola instrucción y por lo tanto no hacen falta llave, cuando se cumple la condición y ejecuta el IF, como sabe donde tiene que "SALTAR". Con el CASE se ve clarísimo porque abre una llave y puede VERSE o deducir que con el break salta hasta el cierre de llave. En el IF no me queda claro. Por ejemplo, el primer caso donde se compara a con 2, si no se cumple b = 2 y después se sale de todos os IF. Esto es así verdad? Para hacer lo mismo que el case tendría que ser así, sin embargo, no queda nada claro.
Hola Fernando. Tal y como está en el ejemplo del IF, cuando 'a' es 2 entonce 'b' es 2, sino no asigna ningún valor a 'b'. después evalúa el siguiente IF, el de 'a' igual a 3, y así sucesivamente todos los IF. No salta al final de los IF como hace en el ejemplo de los CASE y la función SWITCH, porque los IF son independientes.
@@Electroduino Entonces no hacen los mimos. Los IF, cuando se cumple la condición sigue analizando las demás condiciones hasta el final, el el SWITCH, sale en cuanto se cumple una condición. Es que creía que hacían los mismo . Muchas gracias
Apenas estoy aprendiendo así que puede estar equivocado, la errata es que le faltó un else?? if(a!=1)&&(a!=3)&&(a!=4)&&(a!=5); else b=0,c=0 ; Estoy mal?? Soy nuevo, y agradezco su aporte de videos ya que está muy buen explicados.saludos
Te falta un paréntesis que englobe a todo el if, y en el else hay dos instrucciones (separalas con punto y coma, no con coma) te faltaría unas llaves para englobar las dos, sino solo ejecutará la primera. Luego en el caso de que se cumpla el if, no ejecutará ninguna instrucción, solo en el caso de que no se cumpla.
Se puede decir que SWITCH CASE solo puedo utilizar en caso de igualdad, en ejercicios en los que necesite hacer una comparación de un intervalo de numeros (ejemplo: A
te ha faltado poner ejemplos en protoboard,asi se entendera mejor
5 ปีที่แล้ว +1
La explicación del default para hacer su equivalente en if en realidad se hace así: if (a==1) { b=0; } else if (a==2) { b=1; } else if (a==3) { b=2; } else if (a==4) { b=3; } else { // Esto sería el equivalente al default }
Muy buena observación Miguel Ángel y muchas gracias por el aporte. Yo pretendía ponerlo complicado para que vean la diferencia entre la estructura IF explicada en al vídeo anterior y lo fácil que sería hacerlo ahora con la estructura SWITCH, CASE. Saludos.
Muchas gracias, estaba buscando un video que enseñara como funcionaba Switch y por fin encontré uno que le entendí.
Exelentisimo video, dure un buen rato biendo videos pero el de usted amigo le entendi perfectamente
Vaya la facilidad con la que hacer comprender estas definiciones es fascinante, muchas gracias por hacer este tipo de videos
Gracias Bryan por tu comentario.
Hola he dado con este canal casi por Casualidad , me gusta mucho la forma detallada en la que explica los ejercicios. Muy buen canal
que buen video y que buena edicion, es dificil buscar canales asi.
Muy bien explicado, muchas gracias
Gracias a ti por comentar.
Muy buen trabajo, ganas un suscriptor, gracias por tus videos.
Excelente explicación
la ultima linea de if se puede solucionar usando los else, se coloca una accion en un if y en el else se coloca otro if y así hasta el último donde hará la acción si no es igual a ninguna de las opciones. así no es necesario colocar un ultimo if así
muy buena explicación tío, gracias!
gracias, ganaste un suscriptor
Gracias a ti por comentarlo.
@@Electroduino pregunta, puedo colocar dos variables por ejemplo:
Switch (var1 || var2)?
No, solo evalúa una variable, pero puedes hacer que la variable a evaluar sea ej. V=(var1 || var2);
Buen video, muchas gracias,resolvi dudas.
Gracias Ernesto, me alegro de que te haya servido. Un saludo.
Profe,muchas gracias por tan buena instrucción, le saluda Rubén Espinoza desde Perú , me gustaría preguntarte si es posible trabajar con varios switch case (por ejemplo tres paquetes de cases) que se ejecuten alternadamente según sea el requerimiento
Hola Rubén,
Nunca se me dio el caso de programar algo de esa forma, y la verdad es que no lo he probado, pero no tiene porqué haber problema en tener varios switch anidados uno dentro de otro, siempre que se respete bien la nomenclatura del switch que está dentro del Case del otro switch.
Programar de esa forma creo que hace más difícil la comprensión o legibilidad del programa, pero si te resulta más cómodo adelante.
Un saludo Rubén.
@@Electroduino gracias profe por darse el tiempo de responderme, si me diera el honor de una conversación podríamos compartir algunas ideas WhatsApp +51 935 658 039
Hola Amigo , podrías decirme como usar esto en función de un menú, es decir que después de ejecutar el case seleccionado vuelva a solicitar una opción por consola al usuario y así sucesivamente y no se quede solo en el case seleccionado inicialmente ?? seria de gran ayuda , gracias, un saludo desde Colombia.
Hola Jeyson, Puedes poner el menú de selección con el switch en una función y cada opción del case llamé a otra función, y al terminar esta, llame a la función del Menú. por ejemplo.
Lindo tu ingles... de arabia?
Buenos días disculpe, switch case repite las instrucciones por cada ciclo del void loop?
por ejemplo si quiero mandar un mensaje cuando esté en case 1
si al siguiente ciclo del void loop mi condición case 1 sigue igual, se vuelve a mandar el mensaje?
o ya no se manda porque ya se ejecutó una vez la instrucción?
Gracias de antemano
Hola Fernando, siempre que se evalúe la función SWITCH ejecutará el CASE correspondiente al valor de la variable, eso quiere decir que cuando se repita el loop volverá a enviarte el mensaje siempre que la variable siga a 1, para que no haga eso, dentro del CASE 1, al finalizar o después de enviarte el mensaje, pon la variable a 0. Si no puedes cambiar el estado de esa variable porque es critica en tu programa, crea una variable nueva que sea por ejemplo mensaje_enviado, y esa es la que evalúas antes de enviar el mensaje y la que cambias a 0 cuando ya lo ha enviado. Espero que te de una idea, saludos.
intente hacer un codigo iniciando en void loop en lugar de if else usando switch case y no copila que hay que declarar lo al inicio? gracias profesor
fíjate en la estructura de switch y case del vídeo por si te saltaste algo. Las variables siempre hay que declararlas, tanto si usas las instrucciones if como con switch.
hola buenas esta super el video, tengo una duda como puedo hacer mediante casos abrir carpetas de una micro sd mediante un dfplayer mini
ojala me pudiese ayudar
Hola Ignacio, no se muy bien como ayudarte, te recomiendo esta página que he encontrado sobre el dfplayer mini (www.playbyte.es/electronica/arduino/dfplayer-mini-mp3), donde hay ejemplos de la librería de control y muestran los comandos para el Play pause, cambiar de canción, seleccionar la carpeta a reproducir, etc. Espero que te sirva de ayuda.
¿para que necesitas usar el "case"? la instrucción switch es algo del lenguaje básico, en cambio, leer el contenido de una SD ya está a mas alto nivel y depende en mucho del tipo de librería que uses para hacer dicha lectura.
Hola saludos desde colombia,muchas gracias por el.video, te hago una pregunta, si tengo.un codigo que mediante un pulsador.activa un led durante 15 segundos y luego se apaga, como puedo interrumpir esa instruccion de manera permanente con el mismo pulsador?, lo intente evaluando el.estado del.pulsador (pulsador=1-pulsador), pero se.queda encendido, apreciaria tus comentarios,saludos.
Hola Julian, yo creo que tienes que evaluar que el led está encendido cuando pulsas el pulsador para que puedas ejecutar el código que lo apaga. Si no esta encendido el led, se ejecuta el código de temporización de 15 seg (como haces ahora), si está encendido el led ejecuta el código de apagado. Espero que te sirva.
@@Electroduino muchas gracias por tu respuesta, lo hare como me lo.dices, y en vez de poner un delay de 15 seg, lo voy a hacer con la funcion millis, agradezco mucho tu tiempo, saludos!!!
Hola, espero te encuentres bien, realice un boceto en base a este vídeo, se trata de la lectura de un sensor por medio de un pin Analogico, agregando un pulsador para cambiar la unidad del sensor (pase de psi a bar). El IDE lo compila y sube sin errores, pero al visualizarlo parpadea intercalando ambas lecturas. Podrás darme una mano?
Hola buenas... lo pudo solucionar? En caso contrario pudiese incorporarme su codigo para echar una ojeada...
Le recomiendo en estos casos simplemente añadir una conversión, desconozco las proporciones de presión, pero hacia algo similar con la temperatura, por ejemplo pasar de °C a °F (1.8 * varsensor +32) o a Kelvin (varsensor + 273.15) y viceversa... puede encontrar dicha formula y aplicarla a su lectura, luego imprimir ese resultado en lo que desee (monitor serial, display de 7 segmentos, pantalla LCD, pantalla OLED, niveles a través de LEDS, etc)
Saludos
Se puede hacer un case dentro de el mismo case?
Hola Gabriel, debe funcionar con SWITCH anidados, es decir un SWITCH dentro de un CASE de otro SWITCH, pero tienes que tener mucho cuidado de ir poniendo BREAK al final de cada CASE para que no se vuelva inestable el conjunto de condiciones generada.
como puedo hacer para que coja una dirección aleatoria dependiendo de la distancia de un ultrasonidos??
Hola Sergio, no entiendo muy bien la pregunta cuando dices dirección, ¿te refieres a una dirección de un array?
Hola buenas, me podrías dar un contacto para poder hablar contigo? Tengo dudas sobre un proyecto que estoy haciendo y quería saber si igual tú sabrías la solución
no logro entender como elegir entre dos sketch o programas diferentes para un arduino , quiero elegir entre un control remoto por bluetooth para activar 16 reles o un secuenciador , alguien me ayuda ???
Muy buenos videos
lo que aun no logro es aser
Que mi case 1,2,3,4: empiese a funcionar con un enter
si alguien me lo pudiera explicar le estaria muy agradecido
hay un numero máximo de case?
No.
excelente video
Disculpe , quisieta saber si el switch se puede utilizar en sensores de fotoresistivos o infrarojos ...
Estuve haciendo algo como esto
Primero declare la variable
Int infrarojo;
Switch (infrarojo){
Case
Hola Lilia, Con una estructura "Switch - Case" no se pueden comparar valores como "case
Profe en el ejemplo que pone, los IF que ejecutan una sola instrucción y por lo tanto no hacen falta llave, cuando se cumple la condición y ejecuta el IF, como sabe donde tiene que "SALTAR". Con el CASE se ve clarísimo porque abre una llave y puede VERSE o deducir que con el break salta hasta el cierre de llave. En el IF no me queda claro. Por ejemplo, el primer caso donde se compara a con 2, si no se cumple b = 2 y después se sale de todos os IF. Esto es así verdad? Para hacer lo mismo que el case tendría que ser así, sin embargo, no queda nada claro.
Hola Fernando. Tal y como está en el ejemplo del IF, cuando 'a' es 2 entonce 'b' es 2, sino no asigna ningún valor a 'b'. después evalúa el siguiente IF, el de 'a' igual a 3, y así sucesivamente todos los IF. No salta al final de los IF como hace en el ejemplo de los CASE y la función SWITCH, porque los IF son independientes.
@@Electroduino Entonces no hacen los mimos. Los IF, cuando se cumple la condición sigue analizando las demás condiciones hasta el final, el el SWITCH, sale en cuanto se cumple una condición. Es que creía que hacían los mismo . Muchas gracias
Correcto. Ojo, el SWITCH sale si se pone Break al final del CASE, sino también ejecuta el resto de condiciones.
@@Electroduino exacto, todo claro ahora. Muchas gracias y felicitaciones por el canal. No se puede explicar con mas claridad
Apenas estoy aprendiendo así que puede estar equivocado, la errata es que le faltó un else??
if(a!=1)&&(a!=3)&&(a!=4)&&(a!=5); else b=0,c=0 ;
Estoy mal?? Soy nuevo, y agradezco su aporte de videos ya que está muy buen explicados.saludos
Te falta un paréntesis que englobe a todo el if, y en el else hay dos instrucciones (separalas con punto y coma, no con coma) te faltaría unas llaves para englobar las dos, sino solo ejecutará la primera. Luego en el caso de que se cumpla el if, no ejecutará ninguna instrucción, solo en el caso de que no se cumpla.
@@Electroduino Muchas gracias ahora si comprendi aun mas su explicación, y seguire viendo sus tutoriales para seguir aprendiendo.
Se puede decir que SWITCH CASE solo puedo utilizar en caso de igualdad, en ejercicios en los que necesite hacer una comparación de un intervalo de numeros (ejemplo: A
Exacto. Si quieres comparar muchos rangos o valores de la variable, puedes usar varios bloques ese if.
te ha faltado poner ejemplos en protoboard,asi se entendera mejor
La explicación del default para hacer su equivalente en if en realidad se hace así:
if (a==1) { b=0; }
else if (a==2) { b=1; }
else if (a==3) { b=2; }
else if (a==4) { b=3; }
else {
// Esto sería el equivalente al default
}
Muy buena observación Miguel Ángel y muchas gracias por el aporte. Yo pretendía ponerlo complicado para que vean la diferencia entre la estructura IF explicada en al vídeo anterior y lo fácil que sería hacerlo ahora con la estructura SWITCH, CASE. Saludos.