Algoritmos básicos para Arduino

Si te gustó, ¿Qué esperas? Compártelo 🙂Share on Facebook
Facebook
0Share on Google+
Google+
0Share on LinkedIn
Linkedin
Pin on Pinterest
Pinterest
0Tweet about this on Twitter
Twitter

En este post hablaremos de las sentencias básicas de cualquier lenguaje de programación, son universales para todos los lenguajes de programación basados en C y C++; como, por ejemplo, lenguaje Arduino, el cual utilizamos mucho en éste blog debido a que es la base de nuestras programaciones.

He aquí una lista de las funciones mas utilizadas:

  • if
  • while
  • for

También te puede interesar:

Cómo formar condicionales en programación.



¿Primero que es una función?

Una función es un bloque de código que tiene un nombre y un conjunto de estamentos
que son ejecutados cuando se llama a la función. Son funciones setup() y loop() de las
que ya se ha hablado. Las funciones de usuario pueden ser escritas para realizar tareas
repetitivas y para reducir el tamaño de un programa. Las funciones se declaran
asociadas a un tipo de valor “type”. Este valor será el que devolverá la función, por
ejemplo ‘int’ se utilizará cuando la función devuelva un dato numérico de tipo entero. Si
la función no devuelve ningún valor entonces se colocará delante la palabra “void”, que
significa “función vacía”. Después de declarar el tipo de dato que devuelve la función se
debe escribir el nombre de la función y entre paréntesis se escribirán, si es necesario, los
parámetros que se deben pasar a la función para que se ejecute.
type nombreFunción(parámetros)
{

}



if (si…)

if es un estamento que se utiliza para probar si una determinada condición se ha
alcanzado, como por ejemplo averiguar si un valor analógico está por encima de un
cierto número, y ejecutar una serie de declaraciones (operaciones) que se escriben
dentro de llaves, si es verdad. Si es falso (la condición no se cumple) el programa salta y
no ejecuta las operaciones que están dentro de las llaves, El formato para if es el
siguiente:
if (unaVariable ?? valor)
{
ejecutaInstrucciones;
}



if… else (si….. sino ..)

if… else viene a ser un estructura que se ejecuta en respuesta a la idea “si esto no se
cumple haz esto otro”. Por ejemplo, si se desea probar una entrada digital, y hacer una
cosa si la entrada fue alto o hacer otra cosa si la entrada es baja, usted escribiría que de
esta manera:
if (inputPin == HIGH) // si el valor de la entrada inputPin es alto
{
instruccionesA; //ejecuta si se cumple la condición
}
else
{
instruccionesB; //ejecuta si no se cumple la condición
}
Else puede ir precedido de otra condición de manera que se pueden establecer varias
estructuras condicionales de tipo unas dentro de las otras (anidamiento) de forma que
sean mutuamente excluyentes pudiéndose ejecutar a la vez. Es incluso posible tener un
número ilimitado de estos condicionales. Recuerde sin embargo qué sólo un conjunto de
declaraciones se llevará a cabo dependiendo de la condición probada:
if (inputPin < 500)
{
instruccionesA; // ejecuta las operaciones A
}
else if (inputPin >= 1000)
{
instruccionesB; // ejecuta las operacione B
}
else
{
instruccionesC; // ejecuta las operaciones C
}



for

La declaración for se usa para repetir un bloque de sentencias encerradas entre llaves un
número determinado de veces. Cada vez que se ejecutan las instrucciones del bucle se
vuelve a testear la condición. La declaración for tiene tres partes separadas por (;)
vemos el ejemplo de su sintaxis:
for (inicialización; condición; expresión)
{
ejecutaInstrucciones;
}
La inicialización de una variable local se produce una sola vez y la condición se testea
cada vez que se termina la ejecución de las instrucciones dentro del bucle. Si la
condición sigue cumpliéndose, las instrucciones del bucle se vuelven a ejecutar. Cuando
la condición no se cumple, el bucle termina.
El siguiente ejemplo inicia el entero i en el 0, y la condición es probar que el valor es
inferior a 20 y si es cierto i se incrementa en 1 y se vuelven a ejecutar las instrucciones
que hay dentro de las llaves:
for (int i=0; i<20; i++) // declara i, prueba que es menor que
20, incrementa i en 1
{
digitalWrite(13, HIGH); // envía un 1 al pin 13
delay(250); // espera ¼ seg.
digitalWrite(13, LOW); // envía un 0 al pin 13
delay(250); // espera ¼ de seg.
}

El siguiente ejemplo inicia el entero i en el 0, y la condición es probar que el valor es
inferior a 20 y si es cierto i se incrementa en 1 y se vuelven a ejecutar las instrucciones
que hay dentro de las llaves:
for (int i=0; i<20; i++) // declara i, prueba que es menor que
20, incrementa i en 1
{
digitalWrite(13, HIGH); // envía un 1 al pin 13
delay(250); // espera ¼ seg.
digitalWrite(13, LOW); // envía un 0 al pin 13
delay(250); // espera ¼ de seg.
}
Nota: El bucle en el lenguaje C es mucho más flexible que otros bucles encontrados en
algunos otros lenguajes de programación, incluyendo BASIC. Cualquiera de los tres
elementos de cabecera puede omitirse, aunque el punto y coma es obligatorio. También
las declaraciones de inicialización, condición y expresión puede ser cualquier estamento
válido en lenguaje C sin relación con las variables declaradas. Estos tipos de estados son
raros pero permiten disponer soluciones a algunos problemas de programación raras.



while (mientras…)

Un bucle del tipo while es un bucle de ejecución continua mientras se cumpla la
expresión colocada entre paréntesis en la cabecera del bucle. La variable de prueba
tendrá que cambiar para salir del bucle. La situación podrá cambiar a expensas de una
expresión dentro el código del bucle o también por el cambio de un valor en una entrada
de un sensor
while (unaVariable ?? valor)
{
ejecutarSentencias;
}



El siguiente ejemplo testea si la variable “unaVariable” es inferior a 200 y, si es verdad,
ejecuta las declaraciones dentro de los corchetes y continuará ejecutando el bucle hasta
que ‘unaVariable’ no sea inferior a 200.
While (unaVariable < 200) // testea si es menor que 200
{
instrucciones; // ejecuta las instrucciones entre llaves
unaVariable++; // incrementa la variable en 1
}

 



do while (hacer primero… mientras)

El bucle do while funciona de la misma manera que el bucle while, con la salvedad de
que la condición se prueba al final del bucle, por lo que el bucle siempre se ejecutará al
menos una vez.
do
{
Instrucciones;
} while (unaVariable ?? valor);
El siguiente ejemplo asigna el valor leído leeSensor() a la variable ‘x’, espera 50
milisegundos, y luego continua mientras que el valor de la ‘x’ sea inferior a 100:
do
{
x = leeSensor();
delay(50);
} while (x < 100);

Extracto de:
Arduino: Manual de Programación


DATOS DE LA FUENTE:

Datos del documento original
Arduino Notebook: A Beginner’s Reference Written
and compiled by Brian W. Evans
With information or inspiration taken from:
http://www.arduino.cc
http://www.wiring.org.co
http://www.arduino.cc/en/Booklet/HomePage
http://cslibrary.stanford.edu/101/
Including material written by:
Massimo Banzi
Hernando Barragin
David Cuartielles
Tom Igoe
Todd Kurt
David Mellis
and others
Published:
First Edition August 2007
This work is licensed under the Creative Commons
Attribution-Noncommercial-Share Alike 3.0 License.
To view a copy of this license, visit:
http://creativecommons.org/licenses/by-nc-/
Or send a letter to:
Creative Commons
171 Second Street, Suite 300
San Francisco, California, 94105, USA

Soy CEO y autor de este blog, al que me dedico como hobby.

Mi formación es Técnico en Mecatrónica Industrial, pero siempre me llamado la atención divulgación y formación. Por éso me he decidido a crear junto con mis amigos en este proyecto.

En el blog, aparte de ser autor de contenidos, me ocupo también de la gestión y coordinación.

Si te gustó, ¿Qué esperas? Compártelo 🙂Share on Facebook
Facebook
0Share on Google+
Google+
0Share on LinkedIn
Linkedin
Pin on Pinterest
Pinterest
0Tweet about this on Twitter
Twitter

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

A %d blogueros les gusta esto: