Archivos Mensuales: mayo 2013

Declaración de Funciones

Es posible declarar una función de usuario para realizar tareas repetitivas y para realizar una programación más ordenar, clara e intuitiva. Las funciones te permiten crear piezas modulares de código, de forma que se puedan realizar ciertas rutinas y retornar al área de código desde donde se realizó la llamada a dicha función

En primer lugar se declara el tipo de la función, que será el valor retornado por la función (int, byte, long, flota, void). A continuación del tipo, se declara el nombre de la función y, entre paréntesis, los parámetros que se pasan a la función. Si la función no devuelve ningún valor entonces se colocara delante la palabra “void”.

tipo nombreDeLaFuncion(parametro)

{

código;

 }

Para definir el principio y el final de un bloque de instrucciones, declaraciones y sentencias, se utiliza las llaves “{}”. Una llave de apertura “{“ siempre debe ir seguida de una llave de cierre “}”. Las llaves no balanceadas provocan errores de compilación.

Cuando Arduino ejecuta una función, busca la declaración de dicha función en algún lugar del código, y le pasa el valor de la variable “parametro” como un argumento (contenido entre los paréntesis) a la función.

Los parámetros pasados a la función, deben ser definidos también con sus tipos y nombres, de igual forma a como se definen las variables. (enlace a declaracion de variables)

Dentro de la función, los parámetros y las variables utilizadas se definen como “locales” a la función, es decir se utiliza una memoria local que sólo existe cuando la función se está ejecutando.

Las variables declaradas fuera de la función, serán consideradas como “globales”, es decir, que cualquier función puede acceder a ellas.

El comando “return” al final de la función es necesario si se desea devolver el valor calculado en la función y salirse de la función. El valor devuelto, debe ser del mismo tipo que el definido en la declaración de la función.

tipo nombreDeLaFuncion(parametro)

{

código;

return(parametro_de_vuelta);

 }

Paso de parámetros por valor o por referencia:

Los parámetros o argumentos pueden ser pasados por dos métodos:

  • Por valor
  • Por referencia

Cuando son pasados “por valor“, significa que sólo se aplica una simple operación de asignación o copiado entre las variables externas a la función y las variables locales a la función.

Cuando son pasados “por referencia“, se utiliza en el caso de que el parámetro sea de tipo estructura, como por ejemplo un vector. Con dicho método, en lugar de pasar una copia de un valor procedente del contexto de la llamada a la función, se pasa un puntero al valor de memoria que ocupa la estructura. Para indicar el paso del parámetro por referencia se utiliza el símbolo “ * ”.

tipo nombreDeLaFuncion(int *parametro)

{

código;

 }

Vehículo con Servos

Esquema Práctico:

Coche_bb

Código del Programa:

Codigo

Código fuente:

coche_blog.ino

Fotos

Coche_AnteriorVista Anterior del Proyecto

Como se puede observar, en esta cara va el porta pilas y una placa protoboard.

Coche_Posterior

Vista Posterior del Proyecto

El prototipo está realizado con unos ángulos de aluminio y un rectángulo de contrachapado

Vista en Perspectiva del Proyecto

Coche

Proyecto con Montaje Completo

Instantánea -2 2

Ficha del Proyecto:

Coche_Ficha_10

Vídeo resumen:

Anuncios

Tonos

E/S AVANZADAS

tone(). Genera una onda cuadrada de la frecuencia especificada en un pin. La duración puede ser pasada como parámetro, si no se especifica nada continua hasta que haya una llamada a noTone(). Sólo se puede generarse un tono cada vez. Si un tono está sonando en un pin diferente, la llamada a tone() no tendrá efecto. Si el tono está sonando en el mismo pin, la llamada establecerá la nueva frecuencia. El uso de la función tone() interferirá con la salida PWM

tone(pin, frecuencia)

tone(pin, frecuencia, duración)

pin:                 Pin en el que generar el tono

frecuencia:     Frecuencia del tono en hercios.

duración:    Duración del tono en milisegundos (opcional)

noTone(). Detiene la generación de la señal cuadrada que se activa al hacer uso de la función tone(). Si quieres generar tonos diferentes en múltiples pines, necesitas usar la función noTone() en el pin antes de llamar a la función tone() en el siguiente pin.

noTone(pin)

pin:                 Pin en el que generar el tono

Esquema Práctico:

Tonos

Código del Programa:

Codigo_tono

Código fuente:

https://www.dropbox.com/sh/i4xt5ncsxiujm2c/oTJ2CxvGcc/Encuentros_3_fase.ino

Ficha del Proyecto:

Tonos_Ficha_9

Vídeo resumen: