SlideShare una empresa de Scribd logo
Programando: Introducción a las funciones y
funciones sin retorno
Ejecuten la orden 66…
Hoy vamos a aprender todo lo relacionado con los bloques Funciones. ¿Qué son? ¿Para qué sirven? ¿Porqué tienen tantas
palabras raras? Las respuestas a estas preguntas, a continuación:
Imaginaos que nuestro programa tiene que hacer una cosa muchas veces, por ejemplo, hacer parpadear dos leds en muchos
casos, o hacer que suene una melodía de más de 25 bloques que hemos creado. Si cada vez que quisiéramos que sonase
nuestra melodía tuviéramos que volver a escribirla, ¡acabaríamos con los ojos cuadrados de tanto bloque!
¿Y si pudiéramos de alguna forma crear la melodía una sola vez, darle un nombre a esa acción (como “Hacer sonar la
melodía”) y luego, mediante un único bloque, hacer que suene?
¡En eso consisten las funciones precisamente! Sirven para ahorrarnos tiempo y bloques.
Cuando tenemos una tarea que se repite mucho, o cuando queramos organizar mejor nuestro proyecto, crearemos una función
que realice algo cada vez que la llamemos.
Pero si queréis que las funciones os eviten dolores de cabeza en vez de dároslos, estad muy atentos, pues empezamos:
Para realizar los ejemplos de hoy, necesitarás:
 1 LED
 1 motor
 1 Zumbador
 1 Pulsador
 1 x Servo rotación continua
 Una placa Arduino
 Un cable USB
Volveré…
Lo primero que hay que explicar es que las funciones en bitbloq pueden ser de dos tipos: Funciones sin retorno y funciones con
retorno. Tranquilos, las funciones sin retorno no se van a escapar y no volver cuando las ejecutes por primera vez, “sin retorno”
significa que no retornan ningún valor al final de su ejecución.
Cuando queramos hacer una función que realice muchas operaciones matemáticas (sumar, luego restar, volver a sumar,
multiplicar, restar y multiplicar, por ejemplo) al final nos interesará que la función nos retorne que valor final ha resultado. Por
ello en este caso usaremos una función con retorno, que nos retornará el valor final de las operaciones.
Pero cuando queramos que nuestra función realice una serie de acciones que nada tienen que ver con un valor final, como
hacer sonar esa larga melodía, usaremos una función sin retorno.
El bloque “función sin retorno” y el bloque “llamar a función sin retorno”
Como hemos explicado justo antes, el bloque función sin retorno (arriba a la izquierda) sirve para agrupar una serie de bloques
y ejecutarlos cuando nosotros llamemos a la función.
Podría decirse entonces que cuando creamos una función estamos creando un mini programa y dándole un nombre, para que,
cuando lo llamemos, el programa principal “entre” en la función, la recorra entera, y salga de la función para continuar con el
programa principal(en este caso, sin retornar ningún valor).
-¡Pero esto qué es! ¿¡Dos columnas de bloques no unidos!? Pero si me dijisteis que tenían que estar todos unidos o no
funcionaría correctamente…
Esto es cierto, tienen que estar todos los bloques unidos en nuestro programa principal. Cuando ponemos un bloque de crear
una función estamos creando al lado otro pequeño programa que estará contenido dentro del programa principal.
Vamos a entender esto mucho mejor cuando analicemos el siguiente ejemplo.
Otro ejemplo con los bloques de funciones sin retorno.
Programa que hace moverse un servo si pulsamos el botón, avisando con un parpadeo y sonido.
Como a estas alturas ya seréis unos expertos con el bloque de control “Si…ejecutar” y habréis realizado más de una vez el
ejemplo de hacer una cosa si pulsamos el botón y otra si no lo pulsamos, estoy seguro de que entenderéis bastante bien el
programa si quitamos los bloques rosas que pone “Parpadeo_con_sonido” y los bloques de la derecha.
Vamos a empezar viendo la parte derecha del programa. Lo primero que vemos es el bloque “función sin retorno”. Este bloque
es el encargado de empezar a crear una función sin retorno. Cuando lo ponemos en nuestra zona de trabajo lo primero que
debemos hacer es darle un nombre (como hacíamos con las variables). Así se llamará nuestra función y por ese nombre la
llamaremos con el bloque “llamar a función sin retorno” (como vemos en la parte izquierda del programa).
Dentro del bloque “función sin retorno” podemos crear un programa que sepamos que vamos a repetir varias veces. El bloque
se irá haciendo cada vez mas grande para introducir todas los bloques que desees en tu función.
Y cuando queramos que nuestro programa principal haga lo que hemos programado en la función, por larga que sea esta, solo
necesitaremos colocar un bloque de “llamar a función sin retorno” y cambiarla de nombre como hacemos con las variables.
Como vemos en el ejemplo, cada ciclo del programa revisa si el botón esta pulsado para hacer mover el servo o pararlo, pero
además, antes del bloque del servo estamos llamando a la función, de tal forma que cada vez que pasamos por el bloque rosa
que pone “Parpadeo_con_sonido”, estamos ejecutando todos los bloques de la función, de arriba a abajo.
Dos mejor que uno
También podemos realizar programas con más de una función. ¿No os parece un programa principal mucho más bonito?
Al pulsar el botón, se ejecutará la función Parpadeo, luego la función Melodía y luego la función Parpadeo.

Más contenido relacionado

La actualidad más candente

La actualidad más candente (17)

Trabajo de informatica1
Trabajo de informatica1Trabajo de informatica1
Trabajo de informatica1
 
Resumen de mindstorms education
Resumen de mindstorms educationResumen de mindstorms education
Resumen de mindstorms education
 
Trabajo 2 periodo
Trabajo 2 periodoTrabajo 2 periodo
Trabajo 2 periodo
 
Colegio nacional nicolás esguerra
Colegio nacional nicolás esguerra Colegio nacional nicolás esguerra
Colegio nacional nicolás esguerra
 
Colegio nacional nicolas esguerra jm
Colegio nacional nicolas esguerra jmColegio nacional nicolas esguerra jm
Colegio nacional nicolas esguerra jm
 
Trabajo mindstorms
Trabajo mindstormsTrabajo mindstorms
Trabajo mindstorms
 
Resumen de mindstorms education
Resumen de mindstorms educationResumen de mindstorms education
Resumen de mindstorms education
 
Resumen de mindstorms education
Resumen de mindstorms educationResumen de mindstorms education
Resumen de mindstorms education
 
Mindstorms educationlego
Mindstorms educationlegoMindstorms educationlego
Mindstorms educationlego
 
Nxt
NxtNxt
Nxt
 
Lego num 2
Lego num 2Lego num 2
Lego num 2
 
Luz para la sesiones
Luz para la sesionesLuz para la sesiones
Luz para la sesiones
 
Daniel23
Daniel23Daniel23
Daniel23
 
Mindstorms
MindstormsMindstorms
Mindstorms
 
Manual nxt 2.0
Manual nxt 2.0Manual nxt 2.0
Manual nxt 2.0
 
Trabajo de informatica
Trabajo de informaticaTrabajo de informatica
Trabajo de informatica
 
Lego num 2
Lego num 2Lego num 2
Lego num 2
 

Destacado

1 1 encender led
1 1  encender led1 1  encender led
1 1 encender ledVisemi VI
 
1 programando los bloques de funciones pin
1  programando los bloques de funciones pin1  programando los bloques de funciones pin
1 programando los bloques de funciones pinVisemi VI
 
Programando en bitbloq
Programando en bitbloqProgramando en bitbloq
Programando en bitbloqVisemi VI
 
BQ: Construyendo nuevas herramientas para emprender, por Adán Muñoz, cofundad...
BQ: Construyendo nuevas herramientas para emprender, por Adán Muñoz, cofundad...BQ: Construyendo nuevas herramientas para emprender, por Adán Muñoz, cofundad...
BQ: Construyendo nuevas herramientas para emprender, por Adán Muñoz, cofundad...OpenExpoES
 
1 3 varios led
1 3  varios led1 3  varios led
1 3 varios ledVisemi VI
 
Constituyentes De Los Aceros
Constituyentes De Los AcerosConstituyentes De Los Aceros
Constituyentes De Los Acerosauladetecnologias
 
Guia didactica hort escolar
Guia  didactica hort escolarGuia  didactica hort escolar
Guia didactica hort escolarescolacampderros
 

Destacado (9)

1 1 encender led
1 1  encender led1 1  encender led
1 1 encender led
 
1 programando los bloques de funciones pin
1  programando los bloques de funciones pin1  programando los bloques de funciones pin
1 programando los bloques de funciones pin
 
Sessió 2
Sessió 2Sessió 2
Sessió 2
 
Programando en bitbloq
Programando en bitbloqProgramando en bitbloq
Programando en bitbloq
 
Curso arduino basico bitbloq
Curso arduino basico bitbloqCurso arduino basico bitbloq
Curso arduino basico bitbloq
 
BQ: Construyendo nuevas herramientas para emprender, por Adán Muñoz, cofundad...
BQ: Construyendo nuevas herramientas para emprender, por Adán Muñoz, cofundad...BQ: Construyendo nuevas herramientas para emprender, por Adán Muñoz, cofundad...
BQ: Construyendo nuevas herramientas para emprender, por Adán Muñoz, cofundad...
 
1 3 varios led
1 3  varios led1 3  varios led
1 3 varios led
 
Constituyentes De Los Aceros
Constituyentes De Los AcerosConstituyentes De Los Aceros
Constituyentes De Los Aceros
 
Guia didactica hort escolar
Guia  didactica hort escolarGuia  didactica hort escolar
Guia didactica hort escolar
 

Similar a 4 funcions sense retorn

4manipularbotones 121006192501-phpapp02 (1)
4manipularbotones 121006192501-phpapp02 (1)4manipularbotones 121006192501-phpapp02 (1)
4manipularbotones 121006192501-phpapp02 (1)Jose Joney Vargas Castro
 
Natalia camargo sanchez 1102 j.t
Natalia camargo sanchez 1102 j.tNatalia camargo sanchez 1102 j.t
Natalia camargo sanchez 1102 j.tnatalia2384162
 
MANUAL DE RAPTOR (PARTE 3)
MANUAL DE RAPTOR (PARTE 3)MANUAL DE RAPTOR (PARTE 3)
MANUAL DE RAPTOR (PARTE 3)Alfa Mercado
 
Colegio venecia . maria antonio 11 02
Colegio venecia . maria antonio 11 02Colegio venecia . maria antonio 11 02
Colegio venecia . maria antonio 11 02MariaLejandra17
 
Introducción a action script 3
Introducción a action script 3Introducción a action script 3
Introducción a action script 3tifannydoce
 
Guia de como usar qbasic
Guia de como usar qbasicGuia de como usar qbasic
Guia de como usar qbasicJaime Campos
 
Jowin Rojas Venecia IED
Jowin Rojas Venecia IEDJowin Rojas Venecia IED
Jowin Rojas Venecia IEDdeluxefalen
 
Lecc 1 8 windows 7 uso del entorno alumnos
Lecc 1 8 windows 7 uso del entorno alumnosLecc 1 8 windows 7 uso del entorno alumnos
Lecc 1 8 windows 7 uso del entorno alumnosmilibar3d
 
Trabajo de gestión de proyecto (1)
Trabajo de gestión de proyecto (1)Trabajo de gestión de proyecto (1)
Trabajo de gestión de proyecto (1)lzhat
 

Similar a 4 funcions sense retorn (20)

4manipularbotones 121006192501-phpapp02 (1)
4manipularbotones 121006192501-phpapp02 (1)4manipularbotones 121006192501-phpapp02 (1)
4manipularbotones 121006192501-phpapp02 (1)
 
4 manipular botones
4 manipular botones4 manipular botones
4 manipular botones
 
Natalia camargo sanchez 1102 j.t
Natalia camargo sanchez 1102 j.tNatalia camargo sanchez 1102 j.t
Natalia camargo sanchez 1102 j.t
 
Action script 3.0
Action script 3.0Action script 3.0
Action script 3.0
 
Unidad 4
Unidad 4Unidad 4
Unidad 4
 
MANUAL DE RAPTOR (PARTE 3)
MANUAL DE RAPTOR (PARTE 3)MANUAL DE RAPTOR (PARTE 3)
MANUAL DE RAPTOR (PARTE 3)
 
TP TIC
TP TICTP TIC
TP TIC
 
Actionscript
ActionscriptActionscript
Actionscript
 
Colegio venecia . maria antonio 11 02
Colegio venecia . maria antonio 11 02Colegio venecia . maria antonio 11 02
Colegio venecia . maria antonio 11 02
 
Curso de power cobol
Curso de power cobolCurso de power cobol
Curso de power cobol
 
Angie tovar (1)
Angie tovar (1)Angie tovar (1)
Angie tovar (1)
 
Introducción a action script 3
Introducción a action script 3Introducción a action script 3
Introducción a action script 3
 
Monik
MonikMonik
Monik
 
Act
ActAct
Act
 
Unidad 4
Unidad 4Unidad 4
Unidad 4
 
Guia de como usar qbasic
Guia de como usar qbasicGuia de como usar qbasic
Guia de como usar qbasic
 
Francy velandia
Francy velandiaFrancy velandia
Francy velandia
 
Jowin Rojas Venecia IED
Jowin Rojas Venecia IEDJowin Rojas Venecia IED
Jowin Rojas Venecia IED
 
Lecc 1 8 windows 7 uso del entorno alumnos
Lecc 1 8 windows 7 uso del entorno alumnosLecc 1 8 windows 7 uso del entorno alumnos
Lecc 1 8 windows 7 uso del entorno alumnos
 
Trabajo de gestión de proyecto (1)
Trabajo de gestión de proyecto (1)Trabajo de gestión de proyecto (1)
Trabajo de gestión de proyecto (1)
 

Último

Tema 14. Aplicación de Diagramas 26-05-24.pptx
Tema 14. Aplicación de Diagramas 26-05-24.pptxTema 14. Aplicación de Diagramas 26-05-24.pptx
Tema 14. Aplicación de Diagramas 26-05-24.pptxNoe Castillo
 
Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)
Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)
Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)JonathanCovena1
 
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdfAsistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdfDemetrio Ccesa Rayme
 
Presentación Revistas y Periódicos Digitales
Presentación Revistas y Periódicos DigitalesPresentación Revistas y Periódicos Digitales
Presentación Revistas y Periódicos Digitalesnievesjiesc03
 
Material-de-Apoyo-Escuela-Sabatica-02-2-2024.pptx.ppt
Material-de-Apoyo-Escuela-Sabatica-02-2-2024.pptx.pptMaterial-de-Apoyo-Escuela-Sabatica-02-2-2024.pptx.ppt
Material-de-Apoyo-Escuela-Sabatica-02-2-2024.pptx.pptAntonioaraujo810405
 
PROYECTO INTEGRADOR ARCHIDUQUE. presentacion
PROYECTO INTEGRADOR ARCHIDUQUE. presentacionPROYECTO INTEGRADOR ARCHIDUQUE. presentacion
PROYECTO INTEGRADOR ARCHIDUQUE. presentacionyorbravot123
 
Proyecto integrador Vereda Cujacal Centro.pptx
Proyecto integrador Vereda Cujacal Centro.pptxProyecto integrador Vereda Cujacal Centro.pptx
Proyecto integrador Vereda Cujacal Centro.pptxvanessaavasquez212
 
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNETPRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNETCESAR MIJAEL ESPINOZA SALAZAR
 
Lección 1: Los complementos del Verbo ...
Lección 1: Los complementos del Verbo ...Lección 1: Los complementos del Verbo ...
Lección 1: Los complementos del Verbo ...odalisvelezg
 
Módulo No. 1 Salud mental y escucha activa FINAL 25ABR2024 técnicos.pptx
Módulo No. 1 Salud mental y escucha activa FINAL 25ABR2024 técnicos.pptxMódulo No. 1 Salud mental y escucha activa FINAL 25ABR2024 técnicos.pptx
Módulo No. 1 Salud mental y escucha activa FINAL 25ABR2024 técnicos.pptxPabloPazmio14
 
Fase 1, Lenguaje algebraico y pensamiento funcional
Fase 1, Lenguaje algebraico y pensamiento funcionalFase 1, Lenguaje algebraico y pensamiento funcional
Fase 1, Lenguaje algebraico y pensamiento funcionalYasneidyGonzalez
 
Fase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría AnalíticaFase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría AnalíticaYasneidyGonzalez
 
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernándezPRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernándezRuben53283
 
Un libro sin recetas, para la maestra y el maestro Fase 3.pdf
Un libro sin recetas, para la maestra y el maestro Fase 3.pdfUn libro sin recetas, para la maestra y el maestro Fase 3.pdf
Un libro sin recetas, para la maestra y el maestro Fase 3.pdfsandradianelly
 
ensayo literario rios profundos jose maria ARGUEDAS
ensayo literario rios profundos jose maria ARGUEDASensayo literario rios profundos jose maria ARGUEDAS
ensayo literario rios profundos jose maria ARGUEDASAntoineMoltisanti
 

Último (20)

3.Conectores uno_Enfermería_EspAcademico
3.Conectores uno_Enfermería_EspAcademico3.Conectores uno_Enfermería_EspAcademico
3.Conectores uno_Enfermería_EspAcademico
 
Tema 14. Aplicación de Diagramas 26-05-24.pptx
Tema 14. Aplicación de Diagramas 26-05-24.pptxTema 14. Aplicación de Diagramas 26-05-24.pptx
Tema 14. Aplicación de Diagramas 26-05-24.pptx
 
Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)
Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)
Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)
 
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdfAsistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
 
TRABAJO CON TRES O MAS FRACCIONES PARA NIÑOS
TRABAJO CON TRES O MAS FRACCIONES PARA NIÑOSTRABAJO CON TRES O MAS FRACCIONES PARA NIÑOS
TRABAJO CON TRES O MAS FRACCIONES PARA NIÑOS
 
Presentación Revistas y Periódicos Digitales
Presentación Revistas y Periódicos DigitalesPresentación Revistas y Periódicos Digitales
Presentación Revistas y Periódicos Digitales
 
Material-de-Apoyo-Escuela-Sabatica-02-2-2024.pptx.ppt
Material-de-Apoyo-Escuela-Sabatica-02-2-2024.pptx.pptMaterial-de-Apoyo-Escuela-Sabatica-02-2-2024.pptx.ppt
Material-de-Apoyo-Escuela-Sabatica-02-2-2024.pptx.ppt
 
PPT: El fundamento del gobierno de Dios.
PPT: El fundamento del gobierno de Dios.PPT: El fundamento del gobierno de Dios.
PPT: El fundamento del gobierno de Dios.
 
PROYECTO INTEGRADOR ARCHIDUQUE. presentacion
PROYECTO INTEGRADOR ARCHIDUQUE. presentacionPROYECTO INTEGRADOR ARCHIDUQUE. presentacion
PROYECTO INTEGRADOR ARCHIDUQUE. presentacion
 
5.Deicticos Uno_Enfermería_EspanolAcademico
5.Deicticos Uno_Enfermería_EspanolAcademico5.Deicticos Uno_Enfermería_EspanolAcademico
5.Deicticos Uno_Enfermería_EspanolAcademico
 
Proyecto integrador Vereda Cujacal Centro.pptx
Proyecto integrador Vereda Cujacal Centro.pptxProyecto integrador Vereda Cujacal Centro.pptx
Proyecto integrador Vereda Cujacal Centro.pptx
 
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNETPRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
 
Lección 1: Los complementos del Verbo ...
Lección 1: Los complementos del Verbo ...Lección 1: Los complementos del Verbo ...
Lección 1: Los complementos del Verbo ...
 
Módulo No. 1 Salud mental y escucha activa FINAL 25ABR2024 técnicos.pptx
Módulo No. 1 Salud mental y escucha activa FINAL 25ABR2024 técnicos.pptxMódulo No. 1 Salud mental y escucha activa FINAL 25ABR2024 técnicos.pptx
Módulo No. 1 Salud mental y escucha activa FINAL 25ABR2024 técnicos.pptx
 
Fase 1, Lenguaje algebraico y pensamiento funcional
Fase 1, Lenguaje algebraico y pensamiento funcionalFase 1, Lenguaje algebraico y pensamiento funcional
Fase 1, Lenguaje algebraico y pensamiento funcional
 
Fase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría AnalíticaFase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría Analítica
 
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernándezPRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
 
Un libro sin recetas, para la maestra y el maestro Fase 3.pdf
Un libro sin recetas, para la maestra y el maestro Fase 3.pdfUn libro sin recetas, para la maestra y el maestro Fase 3.pdf
Un libro sin recetas, para la maestra y el maestro Fase 3.pdf
 
4.Conectores Dos_Enfermería_Espanolacademico
4.Conectores Dos_Enfermería_Espanolacademico4.Conectores Dos_Enfermería_Espanolacademico
4.Conectores Dos_Enfermería_Espanolacademico
 
ensayo literario rios profundos jose maria ARGUEDAS
ensayo literario rios profundos jose maria ARGUEDASensayo literario rios profundos jose maria ARGUEDAS
ensayo literario rios profundos jose maria ARGUEDAS
 

4 funcions sense retorn

  • 1. Programando: Introducción a las funciones y funciones sin retorno Ejecuten la orden 66… Hoy vamos a aprender todo lo relacionado con los bloques Funciones. ¿Qué son? ¿Para qué sirven? ¿Porqué tienen tantas palabras raras? Las respuestas a estas preguntas, a continuación: Imaginaos que nuestro programa tiene que hacer una cosa muchas veces, por ejemplo, hacer parpadear dos leds en muchos casos, o hacer que suene una melodía de más de 25 bloques que hemos creado. Si cada vez que quisiéramos que sonase nuestra melodía tuviéramos que volver a escribirla, ¡acabaríamos con los ojos cuadrados de tanto bloque! ¿Y si pudiéramos de alguna forma crear la melodía una sola vez, darle un nombre a esa acción (como “Hacer sonar la melodía”) y luego, mediante un único bloque, hacer que suene? ¡En eso consisten las funciones precisamente! Sirven para ahorrarnos tiempo y bloques. Cuando tenemos una tarea que se repite mucho, o cuando queramos organizar mejor nuestro proyecto, crearemos una función que realice algo cada vez que la llamemos. Pero si queréis que las funciones os eviten dolores de cabeza en vez de dároslos, estad muy atentos, pues empezamos: Para realizar los ejemplos de hoy, necesitarás:  1 LED  1 motor  1 Zumbador  1 Pulsador
  • 2.  1 x Servo rotación continua  Una placa Arduino  Un cable USB Volveré… Lo primero que hay que explicar es que las funciones en bitbloq pueden ser de dos tipos: Funciones sin retorno y funciones con retorno. Tranquilos, las funciones sin retorno no se van a escapar y no volver cuando las ejecutes por primera vez, “sin retorno” significa que no retornan ningún valor al final de su ejecución. Cuando queramos hacer una función que realice muchas operaciones matemáticas (sumar, luego restar, volver a sumar, multiplicar, restar y multiplicar, por ejemplo) al final nos interesará que la función nos retorne que valor final ha resultado. Por ello en este caso usaremos una función con retorno, que nos retornará el valor final de las operaciones. Pero cuando queramos que nuestra función realice una serie de acciones que nada tienen que ver con un valor final, como hacer sonar esa larga melodía, usaremos una función sin retorno. El bloque “función sin retorno” y el bloque “llamar a función sin retorno” Como hemos explicado justo antes, el bloque función sin retorno (arriba a la izquierda) sirve para agrupar una serie de bloques y ejecutarlos cuando nosotros llamemos a la función. Podría decirse entonces que cuando creamos una función estamos creando un mini programa y dándole un nombre, para que, cuando lo llamemos, el programa principal “entre” en la función, la recorra entera, y salga de la función para continuar con el programa principal(en este caso, sin retornar ningún valor). -¡Pero esto qué es! ¿¡Dos columnas de bloques no unidos!? Pero si me dijisteis que tenían que estar todos unidos o no funcionaría correctamente… Esto es cierto, tienen que estar todos los bloques unidos en nuestro programa principal. Cuando ponemos un bloque de crear una función estamos creando al lado otro pequeño programa que estará contenido dentro del programa principal. Vamos a entender esto mucho mejor cuando analicemos el siguiente ejemplo.
  • 3. Otro ejemplo con los bloques de funciones sin retorno. Programa que hace moverse un servo si pulsamos el botón, avisando con un parpadeo y sonido. Como a estas alturas ya seréis unos expertos con el bloque de control “Si…ejecutar” y habréis realizado más de una vez el ejemplo de hacer una cosa si pulsamos el botón y otra si no lo pulsamos, estoy seguro de que entenderéis bastante bien el programa si quitamos los bloques rosas que pone “Parpadeo_con_sonido” y los bloques de la derecha. Vamos a empezar viendo la parte derecha del programa. Lo primero que vemos es el bloque “función sin retorno”. Este bloque es el encargado de empezar a crear una función sin retorno. Cuando lo ponemos en nuestra zona de trabajo lo primero que debemos hacer es darle un nombre (como hacíamos con las variables). Así se llamará nuestra función y por ese nombre la llamaremos con el bloque “llamar a función sin retorno” (como vemos en la parte izquierda del programa). Dentro del bloque “función sin retorno” podemos crear un programa que sepamos que vamos a repetir varias veces. El bloque se irá haciendo cada vez mas grande para introducir todas los bloques que desees en tu función. Y cuando queramos que nuestro programa principal haga lo que hemos programado en la función, por larga que sea esta, solo necesitaremos colocar un bloque de “llamar a función sin retorno” y cambiarla de nombre como hacemos con las variables. Como vemos en el ejemplo, cada ciclo del programa revisa si el botón esta pulsado para hacer mover el servo o pararlo, pero además, antes del bloque del servo estamos llamando a la función, de tal forma que cada vez que pasamos por el bloque rosa que pone “Parpadeo_con_sonido”, estamos ejecutando todos los bloques de la función, de arriba a abajo. Dos mejor que uno También podemos realizar programas con más de una función. ¿No os parece un programa principal mucho más bonito? Al pulsar el botón, se ejecutará la función Parpadeo, luego la función Melodía y luego la función Parpadeo.